

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# チュートリアル: Amazon MWAA ユーザーのアクセスを DAG のサブセットに制限する
<a name="limit-access-to-dags"></a>

Amazon MWAA は IAM プリンシパルを 1 つ以上の 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 ロールを使用して、IAM プリンシパルに Amazon MWAA ウェブサーバーへのアクセス権を付与します。](#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)
+ IAM プリンシパル `Admin` は [AdministratorAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AdministratorAccess$jsonEditor) 権限を持ち、IAM ユーザー `MWAAUser` は DAG アクセスを制限できるプリンシパルです。管理者ロールの詳細については、*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 ロールを使用して、IAM プリンシパルに Amazon MWAA ウェブサーバーへのアクセス権を付与します。
<a name="limit-access-to-dags-apply-public-access"></a>

**を使用してアクセス許可を付与するには AWS マネジメントコンソール**

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. ロールリストから **ユーザー** を選択し、ページの先頭で **アクション** を選択してドロップダウンを開きます。**ロールをコピー** を選択し、**OK** を確認します。
**注記**  
**[Ops]** ロールまたは **[ビューワー]** ロールをコピーして、それぞれ許可するアクセス権を増やしたり減らしたりします。

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 マネジメントコンソール、新しいブラウザウィンドウを開き、次の URl にアクセスします。`Webserver-URL` を自分の情報に置き換えます。

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

   成功した場合、まだ `MWAAUser` が Apache Airflow UI へのアクセス許可を得ていないため、`Forbidden` のエラーページが表示されます。

1. に`Admin`サインインしたら AWS マネジメントコンソール、Amazon MWAA コンソールを再度開き、環境の Apache Airflow UI を起動します。

1. UI ダッシュボードから **[セキュリティ]** ドロップダウンを展開し、今度は **ユーザーを一覧表示** を選択します。

1. ユーザーテーブルで新しい Apache Airflow ユーザーを探し、**レコードを編集** を選択します。ユーザーの名前は、次のパターンで IAM ユーザーの名前と一致します：`user/mwaa-user`。

1. **ユーザーの編集** ページの **ロール** セクションで、作成した新しいカスタムロールを追加し、**保存** を選択します。
**注記**  
**姓** フィールドは必須ですが、スペースがあれば十分です。

   IAM `Public` プリンシパルは Apache Airflow UI にアクセスする `MWAAUser` 権限を付与し、新しいロールは 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 ドキュメンテーションウェブサイトをご覧ください。