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

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

Amazon MWAA 環境へのアクセス

Amazon Managed Workflows for Apache Airflow (MWAA) を使用するには、必要なアクセス許可を持つアカウント、ユーザー、またはロールを使用する必要があります。このページでは、Apache Airflow 開発チームと Apache Airflow ユーザーに、Apache Airflow 用 Amazon マネージド型ワークフロー (MWAA) 環境にアタッチできるアクセスポリシーについて説明します。

使用方法

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 UI にアクセスする必要がある場合、このアクセス権限ポリシーへのアクセスが必要になる場合があります。

  • AmazonMWAAAirflowCliAccess— Apache Airflow CLI コマンドを実行するには、このアクセス権限ポリシーへのアクセスが必要になる場合があります。

このページのサンプルポリシーにはプレースホルダーが含まれています。たとえば、次のように置き換えます。YOUR_ACCOUNT_IDをアカウント ID として0123456789

完全なコンソールアクセスポリシー: AmazonMWAAFullConsoleAccess

ユーザはAmazonMWAAFullConsoleAccessAmazon MWAA コンソールで環境を設定する必要がある場合のアクセス権限ポリシー。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "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: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":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:AttachRolePolicy", "iam:CreateRole" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:role/service-role/AmazonMWAA*" }, { "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/*" ] } ] }

完全な API とコンソールのアクセスポリシー: AmazonMWAAFullApiAccess

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

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "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":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "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

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

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

Apache エアフロー UI アクセスポリシー: AmazonMWAAWebServerAccess

ユーザはAmazonMWAAWebServerAccessApache Airflow にアクセスする必要がある場合は、のアクセス権限ポリシーを使用します。Amazon MWAA コンソールで環境を表示したり、Amazon MWAA API を使用してアクションを実行したりすることはできません。[] を指定します。Admin,Op,User,ViewerまたはPublicでの役割{airflow-role}をクリックして、Web トークンのユーザーのアクセスレベルをカスタマイズします。詳細については、次を参照してください。デフォルトロール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}" ] } ] }
注記

Amazon MWAA は、5 つの IAM との統合を提供しますデフォルトの Apache Airflow ロールベースのアクセスコントロール (RBAC) ロール。カスタム Apache Airflow ロールでの作業の詳細については、「」を参照してください。チュートリアル: Amazon MWAA ユーザーのアクセスを DAG のサブセットに制限する

Apache エアフロー CLI ポリシー: AmazonMWAAAirflowCliAccess

ユーザはAmazonMWAAAirflowCliAccessApache Airflow CLIコマンドを実行する必要がある場合の権限ポリシー (trigger_dag). Amazon MWAA コンソールで環境を表示したり、Amazon MWAA API を使用してアクションを実行したりすることはできません。

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

JSON ポリシーを作成する

JSON ポリシーを作成し、IAM コンソールでユーザー、ロール、またはグループにポリシーをアタッチできます。IAM で JSON ポリシーを作成する方法については、以下のステップで示します。

JSON ポリシーを作成するには

  1. を開く[ポリシー] ページIAM コンソールから。

  2. [Create policy] (ポリシーを作成) を選択します。

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

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

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

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

    たとえば、ポリシーにという名前を指定します。AmazonMWAAReadOnlyAccess

  7. [Create policy] (ポリシーを作成) を選択します。

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

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

AmazonMWAA を作成するにはFullConsoleAccess 政策

  1. のダウンロードAmazonMWAAFullConsoleAccess アクセスポリシー

  2. を開く[ポリシー] ページIAM コンソールから。

  3. [Create policy] (ポリシーを作成) を選択します。

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

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

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

    1. {your-account-id}— あなたAWSアカウント ID (など0123456789)

    2. {your-kms-id}aws/airflowの識別子AWS所有キーキーキー

  7. [ポリシーの確認

  8. タイプAmazonMWAAFullConsoleAccess[Name] (名前)

  9. [Create policy] (ポリシーを作成) を選択します。

AmazonMWAA を作成するにはWebServerAccess 政策

  1. のダウンロードAmazonMWAAWebServerAccess アクセスポリシー

  2. を開く[ポリシー] ページIAM コンソールから。

  3. [Create policy] (ポリシーを作成) を選択します。

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

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

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

    1. {あなたの地域}— Amazon MWAA 環境のリージョン (などus-east-1)

    2. {your-account-id}— あなたAWSアカウント ID (など0123456789)

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

    4. {airflow-role}AdminApache Airflowデフォルトロール

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

  8. タイプAmazonMWAAWebServerAccess[Name] (名前)

  9. [Create policy] (ポリシーを作成) を選択します。

AmazonMWAA を作成するにはAirflowCliAccess 政策

  1. のダウンロードAmazonMWAAAirflowCliAccess アクセスポリシー

  2. を開く[ポリシー] ページIAM コンソールから。

  3. [Create policy] (ポリシーを作成) を選択します。

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

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

  6. [ポリシーの確認

  7. タイプAmazonMWAAAirflowCliAccess[Name] (名前)

  8. [Create policy] (ポリシーを作成) を選択します。

グループを作成するには

  1. を開く[グループ] ページIAM コンソールから。

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

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

  4. タイプAmazonMWAA結果を絞り込むにはフィルタ

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

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

  7. Create Group を選択します。

ユーザーに関連付けるには

  1. を開く[User SIAM コンソールから。

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

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

  4. 選択ユーザーをグループに追加

  5. AirflowDevelopmentGroup を選択します。

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

次のステップ