チュートリアル: Amazon MWAA ユーザーのアクセスを DAG のサブセットに制限する
Amazon MWAA は IAM プリンシパルを 1 つ以上の Apache Airflow の デフォルトロール
注記
このチュートリアルのステップは、IAM ロールを想定できる限り、フェデレーションアクセスを使用して完了できます。
トピック
前提条件
このチュートリアルのステップを完了するには、以下のものが必要です。
-
IAM プリンシパル
Adminは AdministratorAccess権限を持ち、IAM ユーザー MWAAUserは DAG アクセスを制限できるプリンシパルです。管理者ロールの詳細については、IAM ユーザーガイド の 管理者ジョブ機能 を参照してください。注記
アクセス許可ポリシーを IAM ユーザーに直接アタッチしないでください。Amazon MWAA リソースに一時的にアクセスするために引き受けることができる IAM ロールの設定をお勧めします。
-
AWS Command Line Interface バージョン 2 がインストールされています。
ステップ 1:デフォルトの Public Apache Airflow ロールを使用して、IAM プリンシパルに Amazon MWAA ウェブサーバーへのアクセス権を付与します。
AWS マネジメントコンソール を使用して許可を与えるには
-
Adminロールを持つ AWS アカウント アカウントにサインインし、 IAM コンソールを開きます。 -
左側のナビゲーションペインで ユーザー を選択し、ユーザーテーブルから Amazon MWAA IAM ユーザーを選択します。
-
ユーザー詳細ページの 概要 で アクセス許可 タブを選択し、アクセス許可ポリシー を選択してカードを展開し、アクセス許可の追加 を選択します。
-
アクセス許可の付与 セクションで、既存のポリシーの直接添付 を選択し、ポリシーの作成 を選択して、独自のカスタム権限ポリシーを作成して添付します。
-
ポリシーの作成 ページで JSON を選択し、次の JSON アクセス許可ポリシーをコピーしてポリシーエディターに貼り付けます。このポリシーは、デフォルトの
PublicApache Airflow ロールを持つユーザーにウェブサーバーアクセスを許可します。
ステップ 2:新しい Apache Airflow カスタムロールを作成する
Apache Airflow UI を使用して新しいロールを作成するには
-
管理者の IAM ロールを使用して、Amazon MWAA コンソール
を開き、環境の Apache Airflow UI を起動します。 -
上部のナビゲーションペインで セキュリティ にカーソルを合わせてドロップダウンリストを開き、ロールを一覧表示 を選択してデフォルトの Apache Airflow ロールにアクセスします。
-
ロールリストから ユーザー を選択し、ページの先頭で アクション を選択してドロップダウンを開きます。ロールをコピー を選択し、OK を確認します。
注記
[Ops] ロールまたは [ビューワー] ロールをコピーして、それぞれ許可するアクセス権を増やしたり減らしたりします。
-
テーブルで作成した新しいロールを探し、レコードを編集 を選択します。
-
ロールを編集 ページで以下を実行します。
-
名前 には、テキストフィールドにロールの新しい名前を入力します。例えば、
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 ユーザーに割り当てます。
新しいロールを割り当てるには
-
MWAAUserの アクセス資格情報を使用して、以下の CLI コマンドを実行して環境のウェブサーバー URL を取得してください。aws mwaa get-environment --nameYOUR_ENVIRONMENT_NAME| jq '.Environment.WebserverUrl'成功すると、次の出力が表示されます。
"ab1b2345-678a-90a1-a2aa-34a567a8a901.c13.us-west-2.airflow.amazonaws.com"
-
AWS マネジメントコンソール に
MWAAUserでサインインした状態で、新しいブラウザウィンドウを開いて次の URL にアクセスしてください。Webserver-URLを自分の情報に置き換えます。https://<Webserver-URL>/home成功した場合、まだ
MWAAUserが Apache Airflow UI へのアクセス許可を得ていないため、Forbiddenのエラーページが表示されます。 -
Adminに AWS マネジメントコンソール でサインインしたら、Amazon MWAA コンソールを再度開き、環境の Apache Airflow UI を起動してください。 -
UI ダッシュボードから [セキュリティ] ドロップダウンを展開し、今度は ユーザーを一覧表示 を選択します。
-
ユーザーテーブルで新しい Apache Airflow ユーザーを探し、レコードを編集 を選択します。ユーザーの名前は、次のパターンで IAM ユーザーの名前と一致します:
user/。mwaa-user -
ユーザーの編集 ページの ロール セクションで、作成した新しいカスタムロールを追加し、保存 を選択します。
注記
姓 フィールドは必須ですが、スペースがあれば十分です。
IAM
Publicプリンシパルは Apache Airflow UI にアクセスするMWAAUser権限を付与し、新しいロールは DAG を確認するために必要な追加の権限を付与します。
重要
Apache Airflow UI を使用して追加された IAM によって承認されていない 5 つのデフォルトロール (Admin など) は、次回のユーザーログイン時に削除されます。
次のステップ
-
Amazon MWAA 環境へのアクセス管理の詳細と、環境ユーザーに使用できる JSON IAM ポリシーのサンプルを確認するには、Amazon MWAA 環境へのアクセス を参照してください。
関連リソース
-
アクセスコントロール
(Apache Airflow ドキュメント) — デフォルトの Apache Airflow ロールの詳細については、Apache Airflow ドキュメンテーションウェブサイトをご覧ください。