チュートリアル: Amazon MWAA ユーザーのアクセスを DAG のサブセットに制限する - Amazon Managed Workflows for Apache Airflow

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

チュートリアル: Amazon MWAA ユーザーのアクセスを DAG のサブセットに制限する

Amazon MWAA は IAM プリンシパルを 1 つ以上の Apache Airflow の「デフォルトロール」にマッピングすることで、環境へのアクセスを管理します。次のチュートリアルでは、個々の Amazon MWAA ユーザーが特定の DAG または一連の DAG の表示と操作のみに制限する方法を示しています。

注記

このチュートリアルのステップは、IAM ロールを想定できる限り、フェデレーションアクセスを使用して完了できます。

前提条件

このチュートリアルのステップを完了するには、以下が必要です。

  • 複数の DAG を使用する Amazon MWAA 環境

  • アクセスAdministratorAccess許可Adminを持つ IAM プリンシパル、および DAG アクセスを制限できるプリンシパルMWAAUserとしての IAM ユーザー 。管理者ロールの詳細については、「IAM ユーザーガイド」の「管理者ジョブ機能」を参照してください。

    注記

    アクセス許可ポリシーを IAM ユーザーに直接アタッチしないでください。Amazon MWAA リソースに一時的にアクセスするために引き受けることができる IAM ロールの設定をお勧めします。

  • AWS Command Line Interface バージョン 2 がインストールされました。

ステップ 1:デフォルトの Public Apache Airflow ロールを使用して、IAM プリンシパルに Amazon MWAA ウェブサーバーへのアクセス権を付与します。

を使用してアクセス許可を付与するには AWS Management Console
  1. Admin ロールを使用して AWS アカウントにサインインし、IAM コンソール を開きます。

  2. 左側のナビゲーションペインで [ユーザー] を選択し、ユーザーテーブルから Amazon MWAA IAM ユーザーを選択します。

  3. ユーザー詳細ページの [概要][アクセス許可] タブを選択し、[アクセス許可ポリシー] を選択してカードを展開し、[アクセス許可の追加] を選択します。

  4. [権限の付与] セクションで、[既存のポリシーの直接添付] を選択し、[ポリシーの作成] を選択して、独自のカスタム権限ポリシーを作成して添付します。

  5. [ポリシーの作成] ページで [JSON] を選択し、次の JSON アクセス権限ポリシーをコピーしてポリシーエディターに貼り付けます。このポリシーは、デフォルトの Public Apache Airflow ロールを持つユーザーにウェブサーバーアクセスを許可します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "airflow:CreateWebLoginToken", "Resource": [ "arn:aws:airflow:YOUR_REGION:YOUR_ACCOUNT_ID:role/YOUR_ENVIRONMENT_NAME/Public" ] } ] }

ステップ 2:新しい Apache Airflow カスタムロールを作成する

Apache Airflow UI を使用して新しいロールを作成するには
  1. 管理者の IAM ロールを使用して、「Amazon MWAA コンソール」を開き、環境の Apache Airflow UI を起動します。

  2. 上部のナビゲーションペインで [セキュリティ] にカーソルを合わせてドロップダウンリストを開き、[ロールを一覧表示] を選択してデフォルトの Apache Airflow ロールを表示します。

  3. ロールリストから [ユーザー] を選択し、ページ上部の [アクション] を選択してドロップダウンを開きます。[ロールをコピー] を選択し、[OK] を確認します。

    注記

    [Ops] ロールまたは [ビューワー] ロールをコピーして、それぞれ許可するアクセス権を増やしたり減らしたりします。

  4. テーブルで作成した新しいロールを探し、[レコードを編集] を選択します。

  5. [ロールを編集] ページで以下を実行します。

    • [名前] には、テキストフィールドにロールの新しい名前を入力します。例えば Restricted です。

    • アクセス許可 のリストでcan read on DAGsと を削除しcan edit on DAGs、アクセス許可を付与する DAGs のセットの読み取りおよび書き込みアクセス許可を追加します。たとえば、DAG である example_dag.py の場合、can read on DAG:example_dagcan edit on DAG:example_dag を追加してください。

    [保存] を選択します。これで、Amazon MWAA 環境で使用可能な DAG のサブセットへのアクセスを制限する新しいロールができたはずです。これで、既存の Apache Airflow ユーザーにこのロールを割り当てることができるようになりました。

ステップ 3:作成したロールを Amazon MWAA ユーザーに割り当てます。

新しいロールを割り当てるには
  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"
  2. MWAAUserサインインしたら AWS Management Console、新しいブラウザウィンドウを開き、次の URl にアクセスします。Webserver-URL を自分の情報に置き換えます。

    https://<Webserver-URL>/home

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

  3. Adminサインインしたら AWS Management Console、Amazon MWAA コンソールを再度開き、環境の Apache Airflow UI を起動します。

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

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

  6. [ユーザーの編集] ページの [ロール] セクションで、作成した新しいカスタムロールを追加し、[保存] を選択します。

    注記

    [姓] フィールドは必須ですが、スペースがあれば十分です。

    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 ドキュメンテーションウェブサイトをご覧ください。