

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

# Amazon Managed Service for Apache FlinkはどのようにIAMと協力しますか。
<a name="security_iam_service-with-iam"></a>





Amazon MSF では、次のさまざまなコンテキストで IAM を使用します。
+ [アプリケーションのアクセス許可](#security_iam_application_permissions): IAM 認証を使用する Amazon S3、Amazon Kinesis Data Streams、Amazon DynamoDB などの外部リソースへのアプリケーションによるアクセスを制御します。
+ [アプリケーション管理とライフサイクル制御のアクセス許可](#security_iam_application_management): アプリケーションライフサイクルを制御する [CreateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_CreateApplication.html)、[StartApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StartApplication.html)、[UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html) などの Amazon MSF API アクションの使用を制御します。IAM ポリシーステートメントの `Action` 要素で指定できるすべての Amazon MSF API アクションの完全なリストについては、「*サービス認可リファレンス*」の「[Actions defined by Amazon Kinesis Analytics V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalyticsv2.html#amazonkinesisanalyticsv2-actions-as-permissions)」を参照してください。

**Topics**
+ [アプリケーションのアクセス許可](#security_iam_application_permissions)
+ [アプリケーション管理とライフサイクル制御のアクセス許可](#security_iam_application_management)
+ [Managed Service for Apache Flinkのアイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies)
+ [Managed Service for Apache Flink 内のリソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies)
+ [Managed Service for Apache Flinでのアクセスコントロールリスト (ACLs)](#security_iam_service-with-iam-acls)
+ [Managed Service for Apache Flinkのサービスロール](#security_iam_service-with-iam-roles-service)
+ [Managed Service for Apache Flinkのサービスにリンクされたロール](#security_iam_service-with-iam-roles-service-linked)

## アプリケーションのアクセス許可
<a name="security_iam_application_permissions"></a>

アプリケーション設定の一部として、アプリケーションに割り当てられた IAM ロールを使用し、Amazon MSF アプリケーションの IAM アクセス許可を制御します。この IAM ロールにより、承認に IAM が使用される他のサービス (Amazon S3、Kinesis Data Streams、DynamoDB など) にアクセスするためのアプリケーションのアクセス許可が特定されます。

**警告**  
サービスロールのアクセス許可を変更すると、Amazon MSF の機能が損なわれる可能性があります。アプリケーションが Amazon S3 バケットからアプリケーションコードをダウンロードし、Amazon CloudWatch にログを送信するアクセス許可を削除しないように注意してください。

[リソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies)を使用したアプリケーションへのアクセス許可の割り当ては、サポートされていません。アクセスするリソースにアタッチされたポリシーには、Amazon MSF アプリケーションをプリンシパルとして指定することはできません。

**Topics**
+ [アプリケーションコードとアプリケーションログへのアクセス許可](#security_iam_permissions_access_application_code)
+ [サービス間の混乱した代理の防止](#security_iam_cross_service_confused_deputy)

### アプリケーションコードとアプリケーションログへのアクセス許可
<a name="security_iam_permissions_access_application_code"></a>

また、Amazon MSF はアプリケーション IAM ロールを使用して Amazon S3 バケットにアップロードされたアプリケーションコードにアクセスし、アプリケーションログを Amazon CloudWatch Logs に書き込みます。

を使用してアプリケーションを作成または更新するとき AWS マネジメントコンソール、アプリケーション設定で**必要なポリシーを使用して IAM ロール <role-name> を作成/更新**を選択すると、Amazon MSF は必要なアクセス許可を Amazon S3 および CloudWatch Logs に割り当てる IAM ロールを自動的に作成および変更します。

IAM ロールを手動で作成するか、自動化ツールを使用してアプリケーションを作成および管理する場合、アプリケーション IAM ロールに次のアクセス許可を追加する必要があります。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadCode",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{path-to-application-code}}"
            ]
        },
        {
            "Sid": "ListCloudwatchLogGroups",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:*"
            ]
        },
        {
            "Sid": "ListCloudwatchLogStreams",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:/aws/kinesis-analytics/{{application-name}}:log-stream:*"
            ]
        },
        {
            "Sid": "PutCloudwatchLogs",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:/aws/kinesis-analytics/{{application-name}}:log-stream:kinesis-analytics-log-stream"
            ]
        }
    ]
}
```

------

### サービス間の混乱した代理の防止
<a name="security_iam_cross_service_confused_deputy"></a>

Amazon MSF アプリケーションが別の を呼び出すと AWS のサービス、より詳細なアクセス許可を提供できます。例えば、IAM ロールが複数のアプリケーションで再利用されている場合、アプリケーションはアクセスすべきでないリソースにアクセスする可能性があります。これは「[混乱した代理の問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)」と呼ばれます。アクセスされたリソースが特定の Amazon MSF アプリケーションへのアクセスを制限する方法の詳細については、「[サービス間の混乱した代理の防止](iam-cross-service-confused-deputy-prevention.md)」を参照してください。

## アプリケーション管理とライフサイクル制御のアクセス許可
<a name="security_iam_application_management"></a>

[CreateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_CreateApplication.html)、[StartApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StartApplication.html)、[UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html) などのアプリケーションとそのライフサイクルを管理するアクションは、アクションを実行する IAM ユーザー、IAM グループ、Amazon MSF API の AWS Lambda 呼び出しなどのリソースに関連付けられたアイデンティティベースのポリシーによって制御されます。

**注記**  
下位互換性の理由により、Amazon MSF アプリケーションのライフサイクルを制御する API および SDK は Amazon Kinesis Analytics V2 と呼ばれます。

Amazon MSF アプリケーションにアタッチされたリソースベースのポリシーを使用したアプリケーションライフサイクルアクションのアクセス許可の割り当ては、サポートされていません。アプリケーション IAM ロールは、アプリケーションライフサイクルアクションへのアクセスを制御するために使用されません。アプリケーションロールにアプリケーションライフサイクルのアクセス許可を追加しないでください。

次のテーブルには、Amazon MSF アプリケーションライフサイクルアクションで使用できる IAM 機能が一覧表示されています。


| IAM 機能 | Managed Service for Apache Flink | 
| --- | --- | 
| [アイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies) |  あり | 
| [リソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies) | なし | 
| [ポリシーアクション](#security_iam_service-with-iam-id-based-policies-actions) |  あり | 
| [ポリシーリソース](#security_iam_service-with-iam-id-based-policies-resources) |  あり | 
| [ポリシー条件キー](#security_iam_service-with-iam-id-based-policies-conditionkeys) | あり | 
| [ACL](#security_iam_service-with-iam-acls) | なし | 
| [ABAC (ポリシー内のタグ)](#security_iam_service-with-iam-tags) |  あり | 
| [一時的な認証情報](#security_iam_service-with-iam-roles-tempcreds) |  はい | 
| [クロスサービスプリンシパル許可](#security_iam_service-with-iam-principal-permissions) |  はい | 
| [サービスロール](#security_iam_service-with-iam-roles-service) | いいえ | 
| [サービスリンクロール](#security_iam_service-with-iam-roles-service-linked) | いいえ | 
+ Managed Service for Apache Flink およびその他の がほとんどの IAM 機能と AWS のサービス 連携する方法の概要については、[AWS のサービス 「IAM ユーザーガイド」の「IAM と連携する ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。 **
+ IAM 許可ポリシーに使用できるサービス固有のリソース、アクション、条件コンテキストキーの詳細については、「*サービス認可リファレンス*」の「[Actions, resources, and condition keys for Amazon Kinesis Analytics V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalyticsv2.html)」を参照してください。

**Topics**
+ [ポリシーアクション](#security_iam_service-with-iam-id-based-policies-actions)
+ [ポリシーリソース](#security_iam_service-with-iam-id-based-policies-resources)
+ [ポリシー条件キー](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [ABAC](#security_iam_service-with-iam-tags)
+ [一時的な認証情報](#security_iam_service-with-iam-roles-tempcreds)
+ [プリンシパルアクセス権限](#security_iam_service-with-iam-principal-permissions)

### アプリケーションライフサイクルポリシーのアクション
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**ポリシーアクションのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

JSON ポリシーの `Action` 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

Amazon MSF のポリシーアクションは、アクションの前に `kinesisanalytics` プレフィックスを使用します。Amazon MSF API および SDK は `Amazon Kinesis Analytics V2` プレフィックスを使用します。

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。次の例では、Amazon MSF ポリシーアクションを指定する構文が示されます。

```
"Action" : [
   "kinesisanalytics:{{action1}}",
   "kinesisanalytics:{{action2}}"
]
```

ワイルドカード (\*) を使用して複数のアクションを指定することもできます。例えば、`Describe` という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

```
"Action": "kinesisanalytics:Describe*"
```

IAM ポリシーステートメントの `Action` 要素で指定できるすべての Amazon MSF API アクションの完全なリストを確認するには、「[Actions defined by Amazon Kinesis Analytics V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalyticsv2.html#amazonkinesisanalyticsv2-actions-as-permissions)」を参照してください。

Amazon MSF のアイデンティティベースポリシーの例を確認するには、「[アイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

### アプリケーションライフサイクルポリシーのリソース
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**ポリシーリソースのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件**下で**アクション**を実行できるかということです。

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (\*) を使用します。

```
"Resource": "*"
```

Amazon MSF アプリケーションライフサイクルアクションのアクセス許可は、**アプリケーションごとに** 定義されます。IAM ポリシーの `Resource` JSON 要素は、アクセス許可が適用される Amazon MSF アプリケーションを定義します。

アプリケーション ARN を指定するか、ワイルドカードを使用してアプリケーションのグループを指定することで、1 つのアプリケーションにアクセス許可を割り当てることができます。次の例では、`Resource` 要素の構文が示されます。

```
"Resouce" : "arn:{{partition}}:kinesisanalytics:{{Region}}:{{account}}:application/{{application-name}}
```

アクセス許可を割り当てて、ワイルドカードを使用してアプリケーションのサブセットを制御することができます。例えば、アクセス許可を割り当てて、名前が特定のプレフィックスで始まるすべてのアプリケーションを制御することができます。

```
"Resouce" : "arn:{{partition}}:kinesisanalytics:{{Region}}:{{account}}:application/{{application-name-prefix*}}
```

### アプリケーションライフサイクルポリシーの条件キー
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**サービス固有のポリシー条件キーのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

`Condition` 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、*「IAM ユーザーガイド*」の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

条件キーを使用して、Amazon MSF アプリケーションライフサイクルアクションへのアクセス許可を制御できます。Managed Service for Apache Flink の条件キーのリストについては、「[サービス認可リファレンス](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskinesisanalytics.html#awskinesisanalytics-policy-keys)」の「*Condition Keys for Amazon Managed Service for Apache Flink*」を参照してください。条件キーを使用できるアクションとリソースについては、「[Amazon Managed Service for Apache Flink によって定義されたアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskinesisanalytics.html#awskinesisanalytics-actions-as-permissions)」を参照してください。

### Managed Service for Apache Flink の属性ベースのアクセス制御 (ABAC)
<a name="security_iam_service-with-iam-tags"></a>

**ABAC (ポリシー内のタグ) のサポート:** あり

条件キーを使用すると、属性に基づいてアクセス許可を定義する認可戦略である属性ベースのアクセス制御 (ABAC) を実装できます。では AWS、これらの属性は*タグ*と呼ばれます。タグは、IAM エンティティ (ユーザーまたはロール) および多くの AWS リソースにアタッチできます。エンティティとリソースのタグ付けは、ABAC の最初のステップです。その後、プリンシパルのタグがアクセスしようとしているリソースのタグと一致したら、オペレーションを許可するために ABAC ポリシーを設計します。

ABAC は、急成長する環境やポリシー管理が煩雑になる状況で役立ちます。

タグに基づいてアクセスを管理するには、`aws:ResourceTag/key-name`、`aws:RequestTag/key-name`、または `aws:TagKeys` の条件キーを使用して、ポリシーの [条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を提供します。サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値は**あり**です。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「**部分的**」になります。
+ ABAC の詳細については、「[ABAC 認可で属性に基づいてアクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」を参照してください。
+ ABAC を設定する手順を含むチュートリアルを表示するには、[「IAM チュートリアル: タグに基づいて AWS リソースにアクセスするためのアクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)」を参照してください。

### 一時的な認証情報を使用する
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**一時的な認証情報のサポート:** あり

Amazon MSF アプリケーションライフサイクルアクションは、一時的な認証情報をサポートします。

ユーザー名とパスワード以外の AWS マネジメントコンソール 方法で にサインインする場合は、一時的な認証情報を使用します。たとえば、会社のシングルサインオン (SSO) リンク AWS を使用して にアクセスすると、そのプロセスによって一時的な認証情報が自動的に作成されます。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えの詳細については、「[ユーザーから IAM ロールに切り替える (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)」を参照してください。

一時的な認証情報は、 AWS CLI または AWS API を使用して手動で作成できます。その後、これらの一時的な認証情報を使用して AWSにアクセスできます。長期のアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、「[IAM の一時的セキュリティ認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」を参照してください。

### クロスサービスプリンシパル許可
<a name="security_iam_service-with-iam-principal-permissions"></a>

**転送アクセスセッション (FAS) のサポート:** あり

Amazon MSF アプリケーションライフサイクルアクションは、クロスサービスプリンシパルのアクセス許可をサポートします。

IAM ユーザーまたはロールを使用して でアクションを実行すると AWS、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。転送アクセスセッション (FAS) は、 を呼び出すプリンシパルのアクセス許可と AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストをリクエストする を使用します。FAS リクエストは、サービスが他の AWS のサービス またはリソースとのやり取りを完了する必要があるリクエストを受け取った場合にのみ行われます。この場合、両方のアクションを実行するためのアクセス許可が必要です。FAS リクエストを行う際のポリシーの詳細については、「[転送アクセスセッション](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)」を参照してください。

## Managed Service for Apache Flinkのアイデンティティベースのポリシー
<a name="security_iam_service-with-iam-id-based-policies"></a>

**アイデンティティベースのポリシーのサポート:** あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「*IAM ユーザーガイド*」の「[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「*IAM ユーザーガイド*」の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

### Managed Service for Apache Flink のアイデンティティベースのポリシーの例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Managed Service for Apache Flink ID ベースのポリシーの例は、「[Amazon Managed Service for Apache Flink のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」でご確認ください。

## Managed Service for Apache Flink 内のリソースベースのポリシー
<a name="security_iam_service-with-iam-resource-based-policies"></a>

現在、Amazon Managed Service for Apache Flink はリソースベースのアクセス制御をサポートしていません。

## Managed Service for Apache Flinでのアクセスコントロールリスト (ACLs)
<a name="security_iam_service-with-iam-acls"></a>

**ACL のサポート:** なし 

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするためのアクセス許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

## Managed Service for Apache Flinkのサービスロール
<a name="security_iam_service-with-iam-roles-service"></a>

**サービスロールのサポート:** あり

 サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド**の [AWS のサービスに許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を参照してください。

**警告**  
サービスロールの許可を変更すると、 Managed Service for Apache Flinkの機能が破損する可能性があります。Managed Service for Apache Flink が指示する場合以外は、サービスロールを編集しないでください。

## Managed Service for Apache Flinkのサービスにリンクされたロール
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**サービスリンクロールのサポート:** あり

 サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

サービスにリンクされたロールの作成または管理の詳細については、「[IAM と提携するAWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。表の「**サービスリンクロール**」列に `Yes` と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、**[はい]** リンクを選択します。