Amazon MWAA環境へのアクセス - Amazon Managed Workflows for Apache Airflow

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

Amazon MWAA環境へのアクセス

Amazon Managed Workflows for Apache Airflow を使用するには、必要なアクセス許可を持つアカウントとIAMエンティティを使用する必要があります。このトピックでは、Amazon Managed Workflows for Apache Airflow 環境の Apache Airflow 開発チームおよび Apache Airflow ユーザーにアタッチできるアクセスポリシーについて説明します。

Amazon MWAAリソースにアクセスするには、一時的な認証情報を使用し、グループとロールでフェデレーティッド ID を設定することをお勧めします。ベストプラクティスとして、ポリシーをIAMユーザーに直接アタッチすることは避け、代わりにグループまたはロールを定義して AWS リソースへの一時的なアクセスを提供します。

IAM ロールは、特定のアクセス許可を持つアカウントで作成できる IAM ID です。IAM ロールは、 AWS アイデンティティが実行できることとできないことを決定するアクセス許可ポリシーを持つアイデンティティであるという点で、 IAM ユーザーと似ています AWS。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。また、ロールには標準の長期認証情報 (パスワードやアクセスキーなど) も関連付けられません。代わりに、ロールを引き受けると、ロールセッション用の一時的なセキュリティ認証情報が提供されます。

フェデレーテッドアイデンティティに許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーティッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールの詳細については、「 ユーザーガイド」の「サードパーティー ID プロバイダー (フェデレーション) のロールを作成する」を参照してください。 IAM IAM Identity Center を使用する場合は、アクセス許可セットを設定します。ID が認証後にアクセスできる内容を制御するために、IAMIdentity Center はアクセス許可セットを のロールに関連付けますIAM。アクセス許可セットの詳細については、「AWS IAM Identity Center User Guide」の「Permission sets」を参照してください。

アカウントの IAMロールを使用して、アカウントのリソースにアクセスするための別のアクセス AWS アカウント 許可を付与できます。例については、「 ユーザーガイド」の「チュートリアル: IAMロール AWS アカウント を使用した 間のアクセスの委任」を参照してください。 IAM

仕組み

Amazon MWAA環境で使用されるリソースとサービスには、すべての AWS Identity and Access Management (IAM) エンティティがアクセスできるわけではありません。Apache Airflow ユーザーにこれらのリソースへのアクセス許可を付与するポリシーを作成する必要があります。例えば、Apache Airflow 開発チームにアクセス権を付与する必要があります。

Amazon MWAAはこれらのポリシーを使用して、ユーザーが AWS コンソールまたは環境APIsで使用される でアクションを実行するために必要なアクセス許可を持っているかどうかを検証します。

このトピックのJSONポリシーを使用して、 で Apache Airflow ユーザーのポリシーを作成しIAM、そのポリシーを のユーザー、グループ、またはロールにアタッチできますIAM。

  • AmazonMWAAFullConsoleAccess – このポリシーを使用して、Amazon MWAAコンソールで環境を設定するアクセス許可を付与します。

  • AmazonMWAAFullApiAccess – このポリシーを使用して、環境の管理MWAAAPIsに使用されるすべての Amazon へのアクセスを許可します。

  • AmazonMWAAReadOnlyAccess – このポリシーを使用して、Amazon MWAAコンソールで環境で使用されるリソースを表示するための へのアクセスを許可します。

  • AmazonMWAAWebServerAccess – このポリシーを使用して、Apache Airflow ウェブサーバーへのアクセスを許可します。

  • AmazonMWAAAirflowCliAccess – このポリシーを使用して、Apache Airflow CLI コマンドを実行するためのアクセスを許可します。

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

フルコンソールアクセスポリシー: AmazonMWAAFullConsoleAccess

Amazon MWAAコンソールで環境を設定する必要がある場合、ユーザーはアクセスAmazonMWAAFullConsoleAccess許可ポリシーにアクセスする必要がある場合があります。

注記

コンソールを通じたアクセスポリシーには、iam:PassRole を実行するためのアクセス許可が含まれている必要があります。これにより、ユーザーはサービスにリンクされたロール実行ロールを Amazon に渡すことができますMWAA。Amazon は、ユーザーに代わって他の AWS サービスを呼び出すために、各ロールをMWAA引き受けます。次の例では、 iam:PassedToService条件キーを使用して、ロールを渡すことができるサービスとして Amazon MWAAサービスプリンシパル (airflow.amazonaws.com) を指定します。

の詳細についてはiam:PassRole、「 IAMユーザーガイド」の「 AWS サービスにロールを渡すアクセス許可をユーザーに付与する」を参照してください。

保管時の暗号化AWS 所有のキーに を使用して Amazon MWAA環境を作成および管理する場合は、次のポリシーを使用します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:CreatePolicy" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:policy/service-role/MWAA-Execution-Policy*" }, { "Effect":"Allow", "Action":[ "iam:AttachRolePolicy", "iam:CreateRole" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:role/service-role/AmazonMWAA*" }, { "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA" }, { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:ListBucketVersions" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:PutObject", "s3:GetEncryptionConfiguration" ], "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":[ "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup" ], "Resource":"arn:aws:ec2:*:*:security-group/airflow-security-group-*" }, { "Effect":"Allow", "Action":[ "kms:ListAliases" ], "Resource":"*" }, { "Effect":"Allow", "Action":"ec2:CreateVpcEndpoint", "Resource":[ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface" ], "Resource":[ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }

保管時の暗号化にカスタマーマネージドキーを使用して Amazon MWAA環境を作成および管理する場合は、次のポリシーを使用します。カスタマーマネージドキーを使用するには、プリンIAMシパルに、アカウントに保存されているキーを使用して AWS KMS リソースにアクセスするアクセス許可が必要です。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:CreatePolicy" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:policy/service-role/MWAA-Execution-Policy*" }, { "Effect":"Allow", "Action":[ "iam:AttachRolePolicy", "iam:CreateRole" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:role/service-role/AmazonMWAA*" }, { "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA" }, { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:ListBucketVersions" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:PutObject", "s3:GetEncryptionConfiguration" ], "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":[ "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup" ], "Resource":"arn:aws:ec2:*:*:security-group/airflow-security-group-*" }, { "Effect":"Allow", "Action":[ "kms:ListAliases" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:ListGrants", "kms:CreateGrant", "kms:RevokeGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource":"arn:aws:kms:*:YOUR_ACCOUNT_ID:key/YOUR_KMS_ID" }, { "Effect":"Allow", "Action":"ec2:CreateVpcEndpoint", "Resource":[ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface" ], "Resource":[ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }

フルAPIおよびコンソールアクセスポリシー: AmazonMWAAFullApiAccess

環境の管理MWAAAPIsに使用されるすべての Amazon にアクセスする必要がある場合、ユーザーはAmazonMWAAFullApiAccessアクセス許可ポリシーにアクセスする必要がある場合があります。Apache Airflow UI にアクセスするための許可は付与されません。

注記

フルAPIアクセスポリシーには、 を実行するためのアクセス許可が含まれている必要がありますiam:PassRole。これにより、ユーザーはサービスにリンクされたロール実行ロールを Amazon に渡すことができますMWAA。Amazon は、ユーザーに代わって他の AWS サービスを呼び出すために、各ロールをMWAA引き受けます。次の例では、 iam:PassedToService条件キーを使用して、ロールを渡すことができるサービスとして Amazon MWAAサービスプリンシパル (airflow.amazonaws.com) を指定します。

の詳細についてはiam:PassRole、「 IAMユーザーガイド」の「 AWS サービスにロールを渡すアクセス許可をユーザーに付与する」を参照してください。

保管時の暗号化 AWS 所有のキー に を使用して Amazon MWAA環境を作成および管理する場合は、次のポリシーを使用します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA" }, { "Effect":"Allow", "Action":[ "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:GetEncryptionConfiguration" ], "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":"ec2:CreateVpcEndpoint", "Resource":[ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface" ], "Resource":[ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }

保管時の暗号化にカスタマーマネージドキーを使用して Amazon MWAA環境を作成および管理する場合は、次のポリシーを使用します。カスタマーマネージドキーを使用するには、プリンIAMシパルに、アカウントに保存されているキーを使用して AWS KMS リソースにアクセスするアクセス許可が必要です。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA" }, { "Effect":"Allow", "Action":[ "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:ListGrants", "kms:CreateGrant", "kms:RevokeGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource":"arn:aws:kms:*:YOUR_ACCOUNT_ID:key/YOUR_KMS_ID" }, { "Effect":"Allow", "Action":[ "s3:GetEncryptionConfiguration" ], "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":"ec2:CreateVpcEndpoint", "Resource":[ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface" ], "Resource":[ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }

読み取り専用コンソールアクセスポリシー: AmazonMWAAReadOnlyAccess

Amazon MWAAコンソール環境の詳細ページで環境で使用されるリソースを表示する必要がある場合、ユーザーはアクセスAmazonMWAAReadOnlyAccess許可ポリシーにアクセスする必要がある場合があります。ユーザーが新しい環境を作成したり、既存の環境を編集したり、Apache Airflow UI を表示したりすることはできません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "airflow:ListEnvironments", "airflow:GetEnvironment", "airflow:ListTagsForResource" ], "Resource": "*" } ] }

Apache Airflow UI アクセスポリシー: AmazonMWAAWebServerAccess

Apache Airflow UI にアクセスする必要がある場合、AmazonMWAAWebServerAccess ユーザーはアクセス権限ポリシーにアクセスする必要がある場合があります。Amazon MWAAコンソールで環境を表示したり、Amazon MWAA APIs を使用してアクションを実行したりすることはできません。{airflow-role}AdminOpUserViewer または 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}/{airflow-role}" ] } ] }
注記

Apache Airflow Rest API アクセスポリシー: AmazonMWAARestAPIAccess

Apache Airflow にアクセスするにはAPI、IAMポリシーで REST アクセスairflow:InvokeRestApi許可を付与する必要があります。次のポリシーサンプルで、AdminOpUserViewer または {airflow-role}Public ロールを指定して、ユーザーアクセスのレベルをカスタマイズします。詳細については、Apache Airflow リファレンスガイドの「デフォルトロール」を参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowMwaaRestApiAccess", "Effect": "Allow", "Action": "airflow:InvokeRestApi", "Resource": [ "arn:aws:airflow:{your-region}:YOUR_ACCOUNT_ID:role/{your-environment-name}/{airflow-role}" ] } ] }
注記
  • プライベートウェブサーバーの設定中に、Virtual Private Cloud () の外部からInvokeRestApiアクションを呼び出すことはできませんVPC。aws:SourceVpc キーを使用して、このオペレーションに、より詳細なアクセスコントロールを適用できます。詳細については、「aws:SourceVpc

  • このポリシーの Resourceフィールドを使用して、Amazon MWAA環境の Apache Airflow ロールベースのアクセスコントロールロールを指定できます。ただし、ポリシーの Resourceフィールドで Amazon MWAA環境 ARN (Amazon リソースネーム) はサポートされていません。

Apache Airflow CLIポリシー: AmazonMWAAAirflowCliAccess

Apache Airflow CLI コマンド ( など) を実行する必要がある場合、ユーザーはアクセスAmazonMWAAAirflowCliAccess許可ポリシーにアクセスする必要がある場合がありますtrigger_dag。Amazon MWAAコンソールで環境を表示したり、Amazon MWAA APIs を使用してアクションを実行したりすることはできません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "airflow:CreateCliToken" ], "Resource": "arn:aws:airflow:${Region}:${Account}:environment/${EnvironmentName}" } ] }

JSON ポリシーの作成

JSON ポリシーを作成し、 IAMコンソールのユーザー、ロール、またはグループにポリシーをアタッチできます。次の手順では、 でJSONポリシーを作成する方法について説明しますIAM。

JSON ポリシーを作成するには
  1. IAM コンソールでポリシーページを開きます。

  2. [Create policy] を選択します。

  3. [JSON] タブを選択します。

  4. JSON ポリシーを追加します。

  5. [ポリシーの確認] を選択します。

  6. [名前][説明] (オプション) のテキストフィールドに値を入力します。

    たとえば、ポリシーには AmazonMWAAReadOnlyAccess という名前を付けることができます。

  7. [Create policy] を選択します。

開発者グループにポリシーをアタッチするユースケースの例

というIAM名前の のグループを使用してAirflowDevelopmentGroup、Apache Airflow 開発チームのすべての開発者にアクセス許可を適用するとします。これらのユーザーは AmazonMWAAFullConsoleAccessAmazonMWAAAirflowCliAccess および AmazonMWAAWebServerAccess の権限ポリシーにアクセスする必要があります。このセクションでは、 でグループを作成しIAM、これらのポリシーを作成してアタッチし、そのグループを IAM ユーザーに関連付ける方法について説明します。この手順では、AWS が所有するキーを使用する場合を想定しています。

A mazonMWAAFullConsoleAccess ポリシーを作成するには
  1. A mazonMWAAFullConsoleAccess アクセスポリシーをダウンロードします。

  2. IAM コンソールでポリシーページを開きます。

  3. [Create policy] を選択します。

  4. [JSON] タブを選択します。

  5. のJSONポリシーを貼り付けますAmazonMWAAFullConsoleAccess

  6. 以下の値を置き換えます。

    1. {your-account-id} – AWS アカウント ID ( など0123456789

    2. {your-kms-id} – カスタマーマネージドキーの一意の識別子。保管時の暗号化にカスタマーマネージドキーを使用する場合にのみ適用されます。

  7. [ポリシーの確認] を選択します。

  8. [名前]AmazonMWAAFullConsoleAccess と入力します。

  9. [Create policy] を選択します。

A mazonMWAAWebServerAccess ポリシーを作成するには
  1. A mazonMWAAWebServerAccess アクセスポリシーをダウンロードします。

  2. IAM コンソールでポリシーページを開きます。

  3. [Create policy] を選択します。

  4. [JSON] タブを選択します。

  5. のJSONポリシーを貼り付けますAmazonMWAAWebServerAccess

  6. 以下の値を置き換えます。

    1. {your-region} – Amazon MWAA環境のリージョン ( などus-east-1

    2. {your-account-id} – AWS アカウント ID ( など0123456789

    3. {your-environment-name} – Amazon MWAA環境名 ( などMyAirflowEnvironment

    4. {airflow-role}Admin Apache Airflow のデフォルトロール

  7. [ポリシーの確認] を選択します。

  8. [名前]AmazonMWAAWebServerAccess と入力します。

  9. [Create policy] を選択します。

A mazonMWAAAirflowCliAccess ポリシーを作成するには
  1. A mazonMWAAAirflowCliAccess アクセスポリシーをダウンロードします。

  2. IAM コンソールでポリシーページを開きます。

  3. [Create policy] を選択します。

  4. [JSON] タブを選択します。

  5. のJSONポリシーを貼り付けますAmazonMWAAAirflowCliAccess

  6. [ポリシーの確認] を選択します。

  7. [名前]AmazonMWAAAirflowCliAccess と入力します。

  8. [Create policy] を選択します。

グループを作成するには
  1. IAM コンソールでグループページを開きます。

  2. AirflowDevelopmentGroup の名前を入力します。

  3. [次のステップ] をクリックします。

  4. [フィルター]AmazonMWAA を入力して結果を絞り込みます。

  5. 作成した 3 つのポリシーを選択します。

  6. Next Step](次のステップ) をクリックします。

  7. [グループを作成] を選択します。

ユーザーに関連付ける手順
  1. IAM コンソールでユーザーページを開きます。

  2. ユーザーを選択します。

  3. [グループ] を選択します。

  4. [グループにユーザーを追加] を選択します。

  5. AirflowDevelopmentGroup を選択します。

  6. 続いて、[グループに追加] を選択します。

次のステップ

  • Apache Airflow へのアクセス で Apache Airflow UI にアクセスするトークンを生成する方法について説明します。

  • IAM ポリシーの作成の詳細については、「ポリシーの作成IAM」を参照してください。