Amazon MWAA 環境へのアクセス
Amazon Managed Workflows for Apache Airflow を使用するには、アカウントと、必要な権限を持つ IAM エンティティを使用する必要があります。このトピックでは、Amazon Managed Workflows for Apache Airflow 環境において、Apache Airflow 開発チームと Apache Airflow ユーザーにアタッチできるアクセスポリシーについて説明します。
Amazon MWAA リソースにアクセスするには、一時的な認証情報を使用し、グループとロールを用いてフェデレーティッドアイデンティティを構成することを推奨します。ベストプラクティスとして、IAM ユーザーに直接ポリシーをアタッチすることは避けてください。代わりに、AWS リソースへの一時的なアクセスを提供するグループまたはロールを定義します。
IAM ロール は、特定の許可があり、アカウントで作成できるもう 1 つの IAM アイデンティティです。IAM ロールは、ID が AWS で実行できることとできないことを決定する許可ポリシーを持つ AWS ID であるという点で IAM ユーザーと似ています。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。また、ロールには標準の長期認証情報 (パスワードやアクセスキーなど) も関連付けられません。代わりに、ロールを引き受けると、ロールセッション用の一時的なセキュリティ認証情報が提供されます。
フェデレーテッドアイデンティティに許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーテッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールについては、IAM ユーザーガイド の サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する を参照してください。IAM Identity Center を使用する場合は、許可セットを設定します。アイデンティティが認証後にアクセスできるものを制御するため、IAM Identity Center は、権限セットを IAM のロールに関連付けます。アクセス許可セットの詳細については、AWS IAM Identity Center User Guide の Permission sets を参照してください。
アカウントの IAM ロールを使用して、アカウントのリソースにアクセスするための別の AWS アカウント 許可を付与できます。この例については、IAM ユーザーガイド の IAM チュートリアル: AWS アカウント 間の IAM ロールを使用したアクセス許可の委任 を参照してください。
セクション
仕組み
Amazon MWAA 環境で使用されるリソースやサービスには、すべての AWS Identity and Access Management (IAM) エンティティからアクセスできるわけではありません。Apache Airflow ユーザーにこれらのリソースへのアクセス許可を付与するポリシーを作成する必要があります。例えば、Apache Airflow 開発チームにアクセス権を付与する必要があります。
Amazon MWAA はこれらのポリシーを使用して、ユーザーが AWS コンソールまたは環境で用いられる API を通してアクションを実行するのに必要なアクセス権限を持っているかどうかを検証します。
このトピックの JSON ポリシーを使用して IAM の Apache Airflow ユーザー用のポリシーを作成し、そのポリシーを IAM のユーザー、グループ、またはロールにアタッチできます。
-
AmazonMWAAFullConsoleAccess — このポリシーを使用して、Amazon MWAA コンソールで環境を構成するためのアクセス許可を付与します。
-
AmazonMWAAFullAPIAccess — このポリシーを使用して、環境の管理に使用されるすべての Amazon MWAA API へのアクセス権を付与します。
-
AmazonMWAAreadOnlyAccess — このポリシーを使用して、Amazon MWAA コンソール で環境によって使用されているリソースへのアクセスを許可します。
-
AmazonMWAAWebServerAccess — このポリシーを使用して Apache Airflow ウェブサーバーへのアクセス権を付与します。
-
AmazonMWAAAirflowCLIAccess — このポリシーを使用して、Apache Airflow CLI コマンドを実行するためのアクセス権を付与します。
アクセス権限を付与するにはユーザー、グループ、またはロールにアクセス許可を追加します。
-
AWS IAM Identity Center のユーザーとグループ:
アクセス許可セットを作成します。AWS IAM Identity Center ユーザーガイド の 権限設定を作成する の手順に従ってください。
-
IAM 内で、ID プロバイダーによって管理されているユーザー:
ID フェデレーションのロールを作成します。詳細については IAM ユーザーガイド の サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する を参照してください。
-
IAM ユーザー:
-
ユーザーが担当できるロールを作成します。手順については IAM ユーザーガイド の IAM ユーザーのロールの作成 を参照してください。
-
(お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。IAM ユーザーガイド の ユーザー (コンソール) へのアクセス許可の追加 の指示に従います。
-
コンソールを通じたアクセスポリシー: AmazonMWAAFullConsoleAccess
Amazon MWAA コンソールで環境を構成する必要がある場合、ユーザーは AmazonMWAAFullConsoleAccess アクセス許可ポリシーにアクセスする必要がある場合があります。
注記
コンソールを通じたアクセスポリシーには、iam:PassRole を実行するためのアクセス許可が含まれている必要があります。これにより、ユーザーは サービスにリンクされたロール と 実行ロール を Amazon MWAA に渡すことができます。Amazon MWAA は、ユーザーに代わって他の AWS サービスを呼び出すために各ロールを引き受けます。次の例では、iam:PassedToService 条件キーを使用して、ロールを渡すことができるサービスとして Amazon MWAA サービスプリンシパル (airflow.amazonaws.com) を指定します。
iam:PassRole に関する詳細については、IAM ユーザーガイドの AWS サービスにロールを渡すアクセス許可をユーザーに付与する を参照してください。
保管時の暗号化 に AWS 所有のキー を使用して Amazon MWAA 環境を作成、管理する場合は、次のポリシーを使用してください。
保管時の暗号化にカスタマーマネージドキーを使用して Amazon MWAA 環境を作成、管理する場合は、次のポリシーを使用してください。カスタマーマネージドキーを使用するには、IAM プリンシパルに、お使いのアカウント内に保存されているキーを使用して AWS KMS リソースにアクセスする権限が必要です。
API とコンソールのフルアクセスポリシー: AmazonMWAAFullApiAccess
環境の管理に使用されるすべての Amazon MWAA API にアクセスする必要がある場合、AmazonMWAAFullApiAccess ユーザーはアクセス許可ポリシーにアクセスする必要がある場合があります。Apache Airflow UI にアクセスするための許可は付与されません。
注記
API フルアクセスポリシーには、iam:PassRole を実行するアクセス許可が含まれている必要があります。これにより、ユーザーは サービスにリンクされたロール と 実行ロール を Amazon MWAA に渡すことができます。Amazon MWAA は、ユーザーに代わって他の AWS サービスを呼び出すために各ロールを引き受けます。次の例では、iam:PassedToService 条件キーを使用して、ロールを渡すことができるサービスとして Amazon MWAA サービスプリンシパル (airflow.amazonaws.com) を指定します。
iam:PassRole に関する詳細については、IAM ユーザーガイドの AWS サービスにロールを渡すアクセス許可をユーザーに付与する を参照してください。
保管時の暗号化のために AWS 所有のキー を使用して Amazon MWAA 環境を作成、管理する場合は、次のポリシーを使用してください。
保存時の暗号化のためにカスタマーマネージドキーを使用して Amazon MWAA 環境を作成、管理する場合は、次のポリシーを使用してください。カスタマーマネージドキーを使用するには、IAM プリンシパルに、お使いのアカウント内に保存されているキーを使用して AWS KMS リソースにアクセスする権限が必要です。
読み取り専用コンソールアクセスポリシー: AmazonMWAAReadOnlyAccess
ユーザーは、Amazon MWAA コンソールの環境詳細ページで環境で使用されるリソースにアクセスする必要がある場合、AmazonMWAAReadOnlyAccess アクセス許可ポリシーにアクセスする必要がある場合があります。ユーザーが新しい環境を作成したり、既存の環境を編集したり、Apache Airflow UI にアクセスすることはできません。
Apache Airflow UI アクセスポリシー: AmazonMWAAWebServerAccess
ユーザーが Apache Airflow UI にアクセスする必要がある場合、AmazonMWAAWebServerAccess アクセス許可ポリシーへのアクセスが必要になることがあります。ユーザーは、Amazon MWAA コンソールで環境にアクセスしたり、Amazon MWAA API を使用してアクションを実行したりすることはできません。{airflow-role} で Admin、Op、User、Viewer または Public ロールを指定して、ウェブトークンのユーザーのアクセスレベルをカスタマイズします。詳細については、Apache Airflow リファレンスガイド の デフォルトロール
注記
-
Amazon MWAA は、5 つのデフォルトの Apache Airflow ロールベースのアクセスコントロール (RBAC) ロール
と IAM 統合を提供します。カスタム Apache Airflow ロールの使用詳細については、チュートリアル: Amazon MWAA ユーザーのアクセスを DAG のサブセットに制限する を参照してください。 -
このポリシーの
Resourceフィールドを使用して、Amazon MWAA 環境の Apache Airflow ロールベースのアクセスコントロールのロールを指定できます。ただし、ポリシーのResourceフィールドでは Amazon MWAA 環境 ARN (Amazon リソースネーム) をサポートしていません。
Apache Airflow Rest API アクセスポリシー: AmazonMWAARestAPIAccess
Apache Airflow REST API にアクセスするには、IAM ポリシーで airflow:InvokeRestApi アクセス許可を付与する必要があります。次のポリシーサンプルで、Admin、Op、User、Viewer または {airflow-role} の Public ロールを指定して、ユーザーアクセスのレベルをカスタマイズします。詳細については、Apache Airflow リファレンスガイド の デフォルトロール
注記
プライベートウェブサーバーの設定中に、仮想プライベートクラウド (VPC) の外部から
InvokeRestApiアクションを呼び出すことはできません。aws:SourceVpcキーを使用して、このオペレーションに、より詳細なアクセスコントロールを適用できます。詳細については、aws:SourceVpc を参照してください。-
このポリシーの
Resourceフィールドを使用して、Amazon MWAA 環境の Apache Airflow ロールベースのアクセスコントロールのロールを指定できます。ただし、ポリシーのResourceフィールドでは Amazon MWAA 環境 ARN (Amazon リソースネーム) をサポートしていません。
Apache Airflow CLI ポリシー: AmazonMWAAAirflowCliAccess
ユーザーは、Apache Airflow CLI コマンド (trigger_dag など) を実行する必要がある場合、AmazonMWAAAirflowCliAccess アクセス許可ポリシーにアクセスする必要がある場合があります。ユーザーは、Amazon MWAA コンソールで環境にアクセスしたり、Amazon MWAA API を使用してアクションを実行したりすることはできません。
JSON ポリシーの作成
JSON ポリシーを作成し、IAM コンソールでそのポリシーをユーザー、ロール、またはグループにアタッチできます。IAM での JSON ポリシーの作成方法については、以下のステップで示します。
JSON ポリシーを作成する方法
-
IAM コンソールで、ポリシーページ
を開きます。 -
ポリシーを作成 を選択します。
-
JSON タブを選択します。
-
JSON ポリシーを追加します。
-
ポリシーの確認 を選択します。
-
名前 と 説明 (オプション) のテキストフィールドに値を入力します。
例えば、ポリシーには
AmazonMWAAReadOnlyAccessという名前を付けることができます。 -
ポリシーを作成 を選択します。
開発者グループにポリシーをアタッチするユースケースの例
Apache Airflow 開発チームのすべての開発者にアクセス許可を適用するため、AirflowDevelopmentGroup というIAM のグループを使用しているとしましょう。これらのユーザーは AmazonMWAAFullConsoleAccess、AmazonMWAAAirflowCliAccess および AmazonMWAAWebServerAccess の権限ポリシーにアクセスする必要があります。このセクションでは、IAM でグループを作成し、ポリシーを作成してアタッチし、そのグループを IAM ユーザーに関連付ける方法について説明します。この手順では、AWSが所有するキーを使用する場合を想定しています。
AmazonMWAAFullConsoleAccess ポリシーを作成する手順
-
AmazonMWAAFullConsoleAccess アクセスポリシー をダウンロードします。
-
IAM コンソールで、ポリシーページ
を開きます。 -
ポリシーを作成 を選択します。
-
JSON タブを選択します。
-
AmazonMWAAFullConsoleAccessの JSON ポリシーを貼り付けます。 -
以下の値を置き換えます。
-
123456789012– AWS アカウント ID (0123456789など) -
{your-kms-id}— カスタマーマネージドキーの固有識別子。保存時の暗号化にカスタマーマネージドキーを使用する場合にのみ適用されます。
-
-
ポリシーの確認 を選択します。
-
名前 に
AmazonMWAAFullConsoleAccessと入力します。 -
ポリシーを作成 を選択します。
AmazonMWAAWebServerAccess ポリシーを作成する手順
-
AmazonMWAAWebServerAccess アクセスポリシー をダウンロードします。
-
IAM コンソールで、ポリシーページ
を開きます。 -
ポリシーを作成 を選択します。
-
JSON タブを選択します。
-
AmazonMWAAWebServerAccessの JSON ポリシーを貼り付けます。 -
以下の値を置き換えます。
-
us-east-1— Amazon MWAA 環境のリージョン (us-east-1など) -
123456789012– AWS アカウント ID (0123456789など) -
{your-environment-name}— Amazon MWAA 環境名 (MyAirflowEnvironmentなど) -
{airflow-role}—AdminApache Airflow のデフォルトロール
-
-
ポリシーの確認 を選択します。
-
名前 に
AmazonMWAAWebServerAccessと入力します。 -
ポリシーを作成 を選択します。
AmazonMWAAAirflowCliAccess ポリシーを作成する手順
-
AmazonMWAAAirflowCliAccess アクセスポリシー をダウンロードしてください。
-
IAM コンソールで、ポリシーページ
を開きます。 -
ポリシーを作成 を選択します。
-
JSON タブを選択します。
-
AmazonMWAAAirflowCliAccessの JSON ポリシーを貼り付けます。 -
ポリシーの確認 を選択します。
-
名前 に
AmazonMWAAAirflowCliAccessと入力します。 -
ポリシーを作成 を選択します。
グループを作成するには
-
IAM コンソールで、グループページ
を開きます。 -
AirflowDevelopmentGroupの名前を入力します。 -
次のステップ をクリックします。
-
フィルター に
AmazonMWAAを入力して結果を絞り込みます。 -
作成した 3 つのポリシーを選択します。
-
次のステップ をクリックします。
-
グループを作成 を選択します。
ユーザーに関連付ける手順
-
IAM コンソールで、ユーザーページ
を開きます。 -
ユーザーを選択します。
-
グループ を選択します。
-
グループにユーザーを追加 を選択します。
-
AirflowDevelopmentGroup を選択します。
-
続いて、グループに追加] を選択します。
次のステップ
-
Apache Airflow へのアクセス で Apache Airflow UI にアクセスするトークンを生成する方法について説明します。
-
IAM ポリシーの作成の詳細については、IAM ポリシーの作成 を参照してください。