

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

# 튜토리얼: DAG의 하위 집합에 대한 Amazon MWAA 사용자 액세스 제한
<a name="limit-access-to-dags"></a>

Amazon MWAA는 IAM 보안 주체를 하나 이상의 Apache Airflow [기본 역할](https://airflow.apache.org/docs/apache-airflow/stable/security/access-control.html#default-roles)에 매핑하여 환경에 대한 액세스를 관리합니다. 다음 튜토리얼을 사용하여 개별 Amazon MWAA 사용자가 특정 DAG 또는 DAG 세트만 액세스하고 상호 작용하도록 제한하세요.

**참고**  
IAM 역할을 가정할 수 있는 한, 이 튜토리얼의 단계는 페더레이션 액세스를 사용하여 완료할 수 있습니다.

**Topics**
+ [사전 조건](#limit-access-to-dags-prerequisites)
+ [1단계: 기본 `Public` Apache Airflow 역할을 사용하여 Amazon MWAA 웹 서버에 IAM 보안 주체에 대한 액세스 권한을 제공합니다.](#limit-access-to-dags-apply-public-access)
+ [2단계: 새 Apache Airflow 사용자 지정 역할 생성](#limit-access-to-dags-create-new-airflow-role)
+ [3단계: 생성한 역할을 Amazon MWAA 사용자에게 할당합니다](#limit-access-to-dags-assign-role)
+ [다음 단계](#limit-access-to-dags-next-up)
+ [관련 리소스](#limit-access-to-dags-related-resources)

## 사전 조건
<a name="limit-access-to-dags-prerequisites"></a>

이 튜토리얼을 완료하려면 다음이 필요합니다.
+ [여러 DAG가 있는 Amazon MWAA 환경](get-started.md)
+ [AdministratorAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AdministratorAccess$jsonEditor) 권한이 있는 IAM 보안 주체 `Admin`와(과) DAG 액세스를 제한할 수 있는 보안 주체인 IAM 사용자 `MWAAUser`. 관리자 역할에 대한 자세한 내용은 *IAM 사용 설명서*의 [관리자 직무 기능](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator)을 참조하세요.
**참고**  
권한 정책을 IAM 사용자에게 직접 연결하지 마세요. 사용자가 Amazon MWAA 리소스에 임시로 액세스할 수 있도록 위임할 수 있는 IAM 역할을 설정하시기 바랍니다.
+ [AWS Command Line Interface 버전 2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install)가 설치되었습니다.

## 1단계: 기본 `Public` Apache Airflow 역할을 사용하여 Amazon MWAA 웹 서버에 IAM 보안 주체에 대한 액세스 권한을 제공합니다.
<a name="limit-access-to-dags-apply-public-access"></a>

**를 사용하여 권한을 부여하려면 AWS Management Console**

1. `Admin` 역할을 AWS 계정 사용하여에 로그인하고 [IAM 콘솔](https://console.aws.amazon.com/iam/)을 엽니다.

1. 왼쪽의 탐색 창에서 **사용자**를 선택한 후 사용자 테이블에서 Amazon MWAA IAM 사용자를 선택합니다.

1. 사용자 세부 정보 페이지의 **요약**에서 **권한** 탭을 선택한 다음 **권한 정책**을 선택하여 카드를 확장하고 **권한 추가**를 선택합니다.

1. **권한 설정** 섹션에서 **기존 정책 직접 연결**을 선택한 후 **정책 생성**을 선택하여 사용자 지정 권한 정책을 생성하고 연결합니다.

1. **정책 생성** 페이지에서 **JSON**을 선택한 후, 정책 편집기에 다음 JSON 권한 정책을 복사하여 붙여넣습니다. 이 정책은 기본 `Public` Apache Airflow 역할을 가진 사용자에게 웹 서버 액세스 권한을 부여합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "airflow:CreateWebLoginToken",
               "Resource": [
               "arn:aws:airflow:{{us-east-1}}:{{111122223333}}:role/{{YOUR_ENVIRONMENT_NAME}}/Public"
               ]
           }
       ]
   }
   ```

------

## 2단계: 새 Apache Airflow 사용자 지정 역할 생성
<a name="limit-access-to-dags-create-new-airflow-role"></a>

**Apache Airflow UI를 사용하여 새 역할을 만들려면**

1. 관리자 IAM 역할을 사용하여 [Amazon MWAA 콘솔](https://console.aws.amazon.com/mwaa/home)을 열고 사용자 환경의 Apache Airflow UI를 시작합니다.

1. 상단의 탐색 창에서 **보안**에 마우스오버하여 드롭다운 목록을 연 다음 **역할 목록**을 선택하여 기본 Apache Airflow 역할에 액세스합니다.

1. 역할 목록에서 **사용자**를 선택한 다음 페이지 시작 부분에서 **작업**을 선택하여 드롭다운을 엽니다. **역할 복사**를 선택하고 **확인**을 클릭합니다
**참고**  
**Ops** 또는 **Viewer** 역할을 복사하여 각각 액세스 권한을 늘리거나 줄일 수 있습니다.

1. 테이블에서 생성한 새 역할을 찾아 **레코드 편집**을 선택합니다.

1. **역할 전환** 페이지에서 다음을 수행합니다.
   + **이름**의 텍스트 필드에 역할의 새 이름을 입력합니다. 예를 들어 **Restricted**입니다.
   + **권한** 목록에서 `can read on DAGs`와 `can edit on DAGs`를 제거한 다음, 액세스를 제공하려는 DAG 세트에 대한 읽기 및 쓰기 권한을 추가합니다. 예를 들어 DAG `example_dag.py`의 경우 **`can read on DAG:{{example_dag}}`** 및 **`can edit on DAG:{{example_dag}}`**을(를) 추가합니다.

   **저장**을 선택합니다. 이제 Amazon MWAA 환경에서 사용할 수 있는 DAG의 하위 집합에 대한 액세스를 제한하는 새 역할이 생겼습니다. 모든 기존 Apache Airflow 사용자에게 이 역할을 할당할 수 있습니다.

## 3단계: 생성한 역할을 Amazon MWAA 사용자에게 할당합니다
<a name="limit-access-to-dags-assign-role"></a>

**새 역할을 할당하려면**

1. `MWAAUser`에 대한 액세스 보안 인증을 사용하여 다음 CLI 명령을 실행하고 환경의 웹 서버 URL을 검색합니다.

   ```
   aws mwaa get-environment --name {{YOUR_ENVIRONMENT_NAME}} | jq '.Environment.WebserverUrl'
   ```

   성공하면 다음과 같은 결과가 출력됩니다.

   ```
   "ab1b2345-678a-90a1-a2aa-34a567a8a901.c13.us-west-2.airflow.amazonaws.com"
   ```

1. 에 `MWAAUser` 로그인한 상태에서 새 브라우저 창을 AWS Management Console열고 다음 URl에 액세스합니다. `Webserver-URL`를 자신의 정보로 대체합니다.

   ```
   https://{{<Webserver-URL>}}/home
   ```

   성공하면 `MWAAUser`에게 아직 Apache Airflow UI에 대한 액세스 권한이 부여되지 않았으므로 `Forbidden` 오류 페이지가 표시됩니다.

1. 에 `Admin` 로그인한 상태에서 Amazon MWAA 콘솔을 다시 AWS Management Console열고 환경의 Apache Airflow UI를 시작합니다.

1. UI 대시보드에서 **보안** 드롭다운을 확장하고 이번에는 **사용자 목록**을 선택합니다.

1. 사용자 테이블에서 새 Apache Airflow 사용자를 찾아 **레코드 편집**을 선택합니다. 사용자의 이름은 `user/{{mwaa-user}}`의 패턴으로 IAM 사용자 이름과 일치합니다.

1. **사용자 편집** 페이지의 **역할** 섹션에서 생성한 새 사용자 지정 역할을 추가한 다음 **저장**을 선택합니다.
**참고**  
**성** 필드는 필수이지만 스페이스를 입력해도 충분합니다.

   IAM `Public` 보안 주체는 `MWAAUser`이(가) Apache Airflow UI에 액세스할 수 있는 권한을 부여하는 반면, 새 역할은 DAG를 보는 데 필요한 추가 권한을 제공합니다.

**중요**  
Apache Airflow UI를 사용하여 추가한 IAM에서 승인하지 않은 5가지 기본 역할(예:`Admin`)은 다음 사용자 로그인 시 제거됩니다.

## 다음 단계
<a name="limit-access-to-dags-next-up"></a>
+ Amazon MWAA 환경 액세스 관리에 대해 자세히 알아보고 환경 사용자를 위해 사용할 수 있는 샘플 JSON IAM 정책을 보려면 [Amazon MWAA 환경 액세스](access-policies.md) 섹션을 참조하세요.

## 관련 리소스
<a name="limit-access-to-dags-related-resources"></a>
+ [액세스 제어](https://airflow.apache.org/docs/apache-airflow/stable/security/access-control.html) (Apache Airflow 설명서) — Apache Airflow 설명서 웹사이트에서 기본 Apache Airflow 역할에 대해 자세히 알아봅니다.