

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Apache Airflow 변수에 AWS Secrets Manager 암호 키 사용
<a name="samples-secrets-manager-var"></a>

다음 샘플에서는 Amazon Managed Workflows for Apache Airflow에서 Apache Airflow 변수에 대한 암호 키를 가져오기 위해 AWS Secrets Manager를 직접적으로 호출합니다. [AWS Secrets Manager 보안 암호를 사용하여 Apache Airflow 연결 구성](connections-secrets-manager.md)의 단계를 완료했다고 가정합니다.

**Topics**
+ [버전](#samples-secrets-manager-var-version)
+ [사전 조건](#samples-secrets-manager-var-prereqs)
+ [권한](#samples-secrets-manager-var-permissions)
+ [요구 사항](#samples-hive-dependencies)
+ [코드 샘플](#samples-secrets-manager-var-code)
+ [다음 단계](#samples-secrets-manager-var-next-up)

## 버전
<a name="samples-secrets-manager-var-version"></a>

이 페이지의 코드 예제는 [Python 3.10](https://peps.python.org/pep-0619/)의 **Apache Airflow v2** 및 [Python 3.11](https://peps.python.org/pep-0664/)의 **Apache Airflow v3**에서 사용할 수 있습니다.

## 사전 조건
<a name="samples-secrets-manager-var-prereqs"></a>

이 페이지의 이 샘플 코드를 사용하려면 다음 항목이 필요합니다.
+ [AWS Secrets Manager 보안 암호를 사용하여 Apache Airflow 연결 구성](connections-secrets-manager.md)에 나열된 바와 같은 Apache Airflow 구성 옵션인 Secrets Manager 백엔드.
+ [AWS Secrets Manager 보안 암호를 사용하여 Apache Airflow 연결 구성](connections-secrets-manager.md)에 나열된 바와 같은 Secrets Manager의 Apache Airflow 변수 문자열.

## 권한
<a name="samples-secrets-manager-var-permissions"></a>
+ [AWS Secrets Manager 보안 암호를 사용하여 Apache Airflow 연결 구성](connections-secrets-manager.md)에 나열된 바와 같은 Secrets Manager 권한.

## 요구 사항
<a name="samples-hive-dependencies"></a>

이 코드 예제를 Apache Airflow v2 이상에 사용하려면 추가 종속성이 필요하지 않습니다. [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)를 사용하여 Apache Airflow를 설치합니다.

## 코드 샘플
<a name="samples-secrets-manager-var-code"></a>

다음 단계는 Secrets Manager를 호출하여 암호를 가져오는 DAG 코드를 만드는 방법을 설명합니다.

1. 명령 프롬프트에서 DAG 코드가 저장된 디렉터리로 이동합니다. 예:

   ```
   cd dags
   ```

1. 다음 코드 샘플의 내용을 복사하고 로컬에서 `secrets-manager-var.py`로 저장합니다.

   ```
   from airflow import DAG
   from airflow.operators.python_operator import PythonOperator
   from airflow.models import Variable
   from airflow.utils.dates import days_ago
   from datetime import timedelta
   import os
   DAG_ID = os.path.basename(__file__).replace(".py", "")
   DEFAULT_ARGS = {
       'owner': 'airflow',
       'depends_on_past': False,
       'email': ['airflow@example.com'],
       'email_on_failure': False,
       'email_on_retry': False,
   }
   def get_variable_fn(**kwargs):
       my_variable_name = Variable.get("test-variable", default_var="undefined")
       print("my_variable_name: ", my_variable_name)
       return my_variable_name
   with DAG(
       dag_id=DAG_ID,
       default_args=DEFAULT_ARGS,
       dagrun_timeout=timedelta(hours=2),
       start_date=days_ago(1),
       schedule_interval='@once',
       tags=['variable']
   ) as dag:
       get_variable = PythonOperator(
           task_id="get_variable",
           python_callable=get_variable_fn,
           provide_context=True
       )
   ```

## 다음 단계
<a name="samples-secrets-manager-var-next-up"></a>
+ 이 예제의 DAG 코드를 [DAG 추가 또는 업데이트](configuring-dag-folder.md)에서 Amazon S3 버킷의 `dags` 폴더에 업로드하는 방법을 알아봅니다.