

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

# Amazon MWAA 環境へのアクセス
<a name="access-policies"></a>

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

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

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

 フェデレーテッドアイデンティティに許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーテッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールについては、*IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。IAM Identity Center を使用する場合は、許可セットを設定します。アイデンティティが認証後にアクセスできるものを制御するため、IAM Identity Center は、権限セットを IAM のロールに関連付けます。アクセス許可セットの詳細については、*AWS IAM アイデンティティセンター User Guide* の [Permission sets](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) を参照してください。

 アカウントの IAM ロールを使用して、アカウントのリソースにアクセスするための別のアクセス AWS アカウント 許可を付与できます。例については、[「IAM ユーザーガイド」の「IAM チュートリアル: IAM ロール AWS アカウント を使用して 全体でアクセスを委任](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)する」を参照してください。 **

**Topics**
+ [

## 仕組み
](#access-policies-how)
+ [

## コンソールを通じたアクセスポリシー: AmazonMWAAFullConsoleAccess
](#console-full-access)
+ [

## API とコンソールのフルアクセスポリシー: AmazonMWAAFullApiAccess
](#full-access-policy)
+ [

## 読み取り専用コンソールアクセスポリシー: AmazonMWAAReadOnlyAccess
](#mwaa-read-only)
+ [

## Apache Airflow UI アクセスポリシー: AmazonMWAAWebServerAccess
](#web-ui-access)
+ [

## Apache Airflow Rest API アクセスポリシー: AmazonMWAARestAPIAccess
](#rest-api-access)
+ [

## Apache Airflow CLI ポリシー: AmazonMWAAAirflowCliAccess
](#cli-access)
+ [

## JSON ポリシーの作成
](#access-policy-iam-console-create)
+ [

## 開発者グループにポリシーをアタッチするユースケースの例
](#access-policy-use-case)
+ [

## 次のステップ
](#access-policy-next-up)

## 仕組み
<a name="access-policies-how"></a>

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

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

このトピックの JSON ポリシーを使用して IAM の Apache Airflow ユーザー用のポリシーを作成し、そのポリシーを IAM のユーザー、グループ、またはロールにアタッチできます。
+ [AmazonMWAAFullConsoleAccess](#console-full-access) — このポリシーを使用して、Amazon MWAA コンソールで環境を構成するためのアクセス許可を付与します。
+ [AmazonMWAAFullAPIAccess](#full-access-policy) — このポリシーを使用して、環境の管理に使用されるすべての Amazon MWAA API へのアクセス権を付与します。
+ [AmazonMWAAreadOnlyAccess](#mwaa-read-only) — このポリシーを使用して、Amazon MWAA コンソール で環境によって使用されているリソースへのアクセスを許可します。
+ [AmazonMWAAWebServerAccess](#web-ui-access) — このポリシーを使用して Apache Airflow ウェブサーバーへのアクセス権を付与します。
+ [AmazonMWAAAirflowCLIAccess](#cli-access) — このポリシーを使用して、Apache Airflow CLI コマンドを実行するためのアクセス権を付与します。

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

## コンソールを通じたアクセスポリシー: AmazonMWAAFullConsoleAccess
<a name="console-full-access"></a>

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

**注記**  
コンソールを通じたアクセスポリシーには、`iam:PassRole` を実行するためのアクセス許可が含まれている必要があります。これにより、ユーザーは [サービスにリンクされたロール](mwaa-slr.md) と [実行ロール](mwaa-create-role.md) を Amazon MWAA に渡すことができます。Amazon MWAA は、ユーザーに代わって他の AWS サービスを呼び出す各ロールを引き受けます。次の例では、`iam:PassedToService` 条件キーを使用して、ロールを渡すことができるサービスとして Amazon MWAA サービスプリンシパル (`airflow.amazonaws.com`) を指定します。  
の詳細については`iam:PassRole`、*IAM ユーザーガイド*[の「 AWS サービスにロールを渡すアクセス許可をユーザーに付与](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)する」を参照してください。

[保管時の暗号化](encryption.md#encryption-at-rest) に [AWS 所有のキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) を使用して Amazon MWAA 環境を作成、管理する場合は、次のポリシーを使用してください。

### の使用 AWS 所有のキー
<a name="collapsible-full-console-access-aws-owned-key"></a>

------
#### [ JSON ]

****  

```
{
    "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::111122223333:policy/service-role/MWAA-Execution-Policy*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateRole"
            ],
            "Resource": "arn:aws:iam::111122223333: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/*"
            ]
        }
    ]
}
```

------

保管時の暗号化に[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)を使用して Amazon MWAA 環境を作成、管理する場合は、次のポリシーを使用してください。カスタマーマネージドキーを使用するには、IAM プリンシパルに、アカウントに保存されているキーを使用して AWS KMS リソースにアクセスするアクセス許可が必要です。

### カスタマーマネージドキーを使用する
<a name="collapsible-full-console-access-cust-key"></a>

------
#### [ JSON ]

****  

```
{
    "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::111122223333:policy/service-role/MWAA-Execution-Policy*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateRole"
            ],
            "Resource": "arn:aws:iam::111122223333: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:*:111122223333: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
<a name="full-access-policy"></a>

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

**注記**  
API フルアクセスポリシーには、`iam:PassRole` を実行するアクセス許可が含まれている必要があります。これにより、ユーザーは [サービスにリンクされたロール](mwaa-slr.md) と [実行ロール](mwaa-create-role.md) を Amazon MWAA に渡すことができます。Amazon MWAA は、ユーザーに代わって他の AWS サービスを呼び出す各ロールを引き受けます。次の例では、`iam:PassedToService` 条件キーを使用して、ロールを渡すことができるサービスとして Amazon MWAA サービスプリンシパル (`airflow.amazonaws.com`) を指定します。  
の詳細については`iam:PassRole`、*IAM ユーザーガイド*[の「 AWS サービスにロールを渡すアクセス許可をユーザーに付与](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)する」を参照してください。

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

### の使用 AWS 所有のキー
<a name="collapsible-full-api-access-cust-key"></a>

------
#### [ JSON ]

****  

```
{
   "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 リソースにアクセスするアクセス許可が必要です。

### カスタマーマネージドキーを使用する
<a name="collapsible-full-api-access-cust-key"></a>

------
#### [ JSON ]

****  

```
{
    "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:*:111122223333: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
<a name="mwaa-read-only"></a>

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

------
#### [ JSON ]

****  

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

------

## Apache Airflow UI アクセスポリシー: AmazonMWAAWebServerAccess
<a name="web-ui-access"></a>

ユーザーが Apache Airflow UI にアクセスする必要がある場合、`AmazonMWAAWebServerAccess` アクセス許可ポリシーへのアクセスが必要になることがあります。ユーザーは、Amazon MWAA コンソールで環境にアクセスしたり、Amazon MWAA API を使用してアクションを実行したりすることはできません。`{airflow-role}` で `Admin`、`Op`、`User`、`Viewer` または `Public` ロールを指定して、ウェブトークンのユーザーのアクセスレベルをカスタマイズします。詳細については、*Apache Airflow リファレンスガイド* の [デフォルトロール](https://airflow.apache.org/docs/apache-airflow/1.10.6/security.html?highlight=ldap#default-roles) を参照してください。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "airflow:CreateWebLoginToken",
            "Resource": [
             "arn:aws:airflow:us-east-1:111122223333:role/{your-environment-name}/{airflow-role}"
            ]
        }
    ]
}
```

------

**注記**  
Amazon MWAA は、5 つの[デフォルトの Apache Airflow ロールベースのアクセスコントロール (RBAC) ロール](https://airflow.apache.org/docs/apache-airflow/stable/security/access-control.html?highlight=roles)と IAM 統合を提供します。カスタム Apache Airflow ロールの使用詳細については、[チュートリアル: Amazon MWAA ユーザーのアクセスを DAG のサブセットに制限する](limit-access-to-dags.md) を参照してください。
このポリシーの `Resource` フィールドを使用して、Amazon MWAA 環境の Apache Airflow ロールベースのアクセスコントロールのロールを指定できます。ただし、ポリシーの `Resource` フィールドでは Amazon MWAA 環境 ARN (Amazon リソースネーム) をサポートしていません。


## Apache Airflow Rest API アクセスポリシー: AmazonMWAARestAPIAccess
<a name="rest-api-access"></a>

Apache Airflow REST API にアクセスするには、IAM ポリシーで `airflow:InvokeRestApi` アクセス許可を付与する必要があります。次のポリシーサンプルで、`Admin`、`Op`、`User`、`Viewer` または `{airflow-role}` の `Public` ロールを指定して、ユーザーアクセスのレベルをカスタマイズします。詳細については、*Apache Airflow リファレンスガイド* の [デフォルトロール](https://airflow.apache.org/docs/apache-airflow/1.10.6/security.html?highlight=ldap#default-roles) を参照してください。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowMwaaRestApiAccess",
            "Effect": "Allow",
            "Action": "airflow:InvokeRestApi",
            "Resource": [
            "arn:aws:airflow:us-east-1:111122223333:role/{your-environment-name}/{airflow-role}"
            ]
        }
    ]
}
```

------

**注記**  
プライベートウェブサーバーの設定中に、仮想プライベートクラウド (VPC) の外部から `InvokeRestApi` アクションを呼び出すことはできません。`aws:SourceVpc` キーを使用して、このオペレーションに、より詳細なアクセスコントロールを適用できます。詳細については、[aws:SourceVpc](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpc) を参照してください。
このポリシーの `Resource` フィールドを使用して、Amazon MWAA 環境の Apache Airflow ロールベースのアクセスコントロールのロールを指定できます。ただし、ポリシーの `Resource` フィールドでは Amazon MWAA 環境 ARN (Amazon リソースネーム) をサポートしていません。

## Apache Airflow CLI ポリシー: AmazonMWAAAirflowCliAccess
<a name="cli-access"></a>

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "airflow:CreateCliToken"
            ],
            "Resource": "arn:aws:airflow:us-east-1:111122223333:environment/${EnvironmentName}"
        }
    ]
}
```

------

## JSON ポリシーの作成
<a name="access-policy-iam-console-create"></a>

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

**JSON ポリシーを作成する方法**

1. IAM コンソールで、[ポリシーページ](https://console.aws.amazon.com/iam/home#/policies) を開きます。

1. **ポリシーを作成** を選択します。

1. **JSON** タブを選択します。

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

1. **ポリシーの確認** を選択します。

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

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

1. **ポリシーを作成** を選択します。

## 開発者グループにポリシーをアタッチするユースケースの例
<a name="access-policy-use-case"></a>

Apache Airflow 開発チームのすべての開発者にアクセス許可を適用するため、`AirflowDevelopmentGroup` というIAM のグループを使用しているとしましょう。これらのユーザーは `AmazonMWAAFullConsoleAccess`、`AmazonMWAAAirflowCliAccess` および `AmazonMWAAWebServerAccess` の権限ポリシーにアクセスする必要があります。このセクションでは、IAM でグループを作成し、ポリシーを作成してアタッチし、そのグループを IAM ユーザーに関連付ける方法について説明します。この手順では、[AWSが所有するキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)を使用する場合を想定しています。

**AmazonMWAAFullConsoleAccess ポリシーを作成する手順**

1. [AmazonMWAAFullConsoleAccess アクセスポリシー](./samples/AmazonMWAAFullConsoleAccess.zip) をダウンロードします。

1. IAM コンソールで、[ポリシーページ](https://console.aws.amazon.com/iam/home#/policies) を開きます。

1. **ポリシーを作成** を選択します。

1. **JSON** タブを選択します。

1. `AmazonMWAAFullConsoleAccess` の JSON ポリシーを貼り付けます。

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

   1. *123456789012* – AWS アカウント ID ( など`0123456789`)

   1. *\$1your-kms-id\$1* — カスタマーマネージドキーの固有識別子。保存時の暗号化にカスタマーマネージドキーを使用する場合にのみ適用されます。

1. **ポリシーの確認** を選択します。

1. **名前** に `AmazonMWAAFullConsoleAccess` と入力します。

1. **ポリシーを作成** を選択します。

**AmazonMWAAWebServerAccess ポリシーを作成する手順**

1. [AmazonMWAAWebServerAccess アクセスポリシー](./samples/AmazonMWAAWebServerAccess.zip) をダウンロードします。

1. IAM コンソールで、[ポリシーページ](https://console.aws.amazon.com/iam/home#/policies)を開きます。

1. **ポリシーを作成** を選択します。

1. **JSON** タブを選択します。

1. `AmazonMWAAWebServerAccess` の JSON ポリシーを貼り付けます。

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

   1. *us-east-1* — Amazon MWAA 環境のリージョン (`us-east-1` など)

   1. *123456789012* – AWS アカウント ID ( など`0123456789`)

   1. *\$1your-environment-name\$1* — Amazon MWAA 環境名 (`MyAirflowEnvironment` など)

   1. *\$1airflow-role\$1* — `Admin` Apache Airflow の[デフォルトロール](https://airflow.apache.org/docs/apache-airflow/1.10.6/security.html?highlight=ldap#default-roles)

1. **ポリシーの確認** を選択します。

1. **名前** に `AmazonMWAAWebServerAccess` と入力します。

1. **ポリシーを作成** を選択します。

**AmazonMWAAAirflowCliAccess ポリシーを作成する手順**

1. [AmazonMWAAAirflowCliAccess アクセスポリシー](./samples/AmazonMWAAAirflowCliAccess.zip) をダウンロードしてください。

1. IAM コンソールで、[ポリシーページ](https://console.aws.amazon.com/iam/home#/policies) を開きます。

1. **ポリシーを作成** を選択します。

1. **JSON** タブを選択します。

1. `AmazonMWAAAirflowCliAccess` の JSON ポリシーを貼り付けます。

1. **ポリシーの確認** を選択します。

1. **名前** に `AmazonMWAAAirflowCliAccess` と入力します。

1. **ポリシーを作成** を選択します。

**グループを作成するには**

1. IAM コンソールで、[グループページ](https://console.aws.amazon.com/iam/home#/groups)を開きます。

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

1. **次のステップ** をクリックします。

1. **フィルター** に `AmazonMWAA` を入力して結果を絞り込みます。

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

1. **次のステップ** をクリックします。

1. **グループを作成** を選択します。

**ユーザーに関連付ける手順**

1. IAM コンソールで、[ユーザーページ](https://console.aws.amazon.com/iam/home#/users) を開きます。

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

1. **グループ** を選択します。

1. **グループにユーザーを追加** を選択します。

1. **AirflowDevelopmentGroup** を選択します。

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

## 次のステップ
<a name="access-policy-next-up"></a>
+ [Apache Airflow へのアクセス](access-airflow-ui.md) で Apache Airflow UI にアクセスするトークンを生成する方法について説明します。
+ IAM ポリシーの作成の詳細については、[IAM ポリシーの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html) を参照してください。