Amazon ECS CloudWatch Events IAM ロール
Amazon ECS のスケジュールされたタスクを CloudWatch Events のルールとターゲットで使用するには、ユーザーの代わりに Amazon ECS タスクを実行するためのアクセス許可が CloudWatch Events サービスに必要です。これらのアクセス権限は、CloudWatch Events IAM ロール (ecsEventsRole
) によって付与されます。
CloudWatch Events ロールは、スケジュールされたタスクを設定すると AWS Management Console で自動的に作成されます。詳細については、「スケジュールされたタスク」を参照してください。
AmazonEC2ContainerServiceEventsRole
のポリシーを次に示します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "*" ], "Condition": { "StringLike": { "iam:PassedToService": "ecs-tasks.amazonaws.com" } } } ] }
スケジュールされたタスクでタスク実行ロールの使用、タスクロール、またはタスクロール上書きが必要な場合、タスク実行ロール、タスクロール、またはタスクロール上書きごとに iam:PassRole
アクセス許可を CloudWatch Events IAM ロールに追加する必要があります。タスクの実行ロールの詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。
タスク実行ロールまたはタスクロール上書きの完全 ARN を指定します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>" ] } ] }
以下の手順を使用して、アカウントにすでに CloudWatch Events IAM ロールがあることを確認し、必要に応じて手動で作成します。
IAM コンソールで CloudWatch Events IAM ロールを確認するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [Roles] (ロール) を選択します。
-
ロールのリストで
ecsEventsRole
を検索します。ロールが見つからない場合、次の手順を使用してロールを作成します。ロールが存在する場合は、そのロールを選択して、アタッチされているポリシーを表示します。 -
[Permissions] (許可) タブで、AmazonEC2ContainerServiceEventsRole マネージドポリシーがロールに添付されていることを確認します。ポリシーがアタッチされている場合、Amazon ECS タスク実行ロールは適切に設定されています。そうでない場合、次のサブステップに従ってポリシーをアタッチします。
-
[Add Permissions] (許可の追加)、[Attach policies] (ポリシーの添付) を選択します。
-
[Filter] (フィルター) に添付する利用可能なポリシーを絞り込むには、AmazonEC2ContainerServiceEventsRole と入力します。
-
AmazonEC2ContainerServiceEventsRole ポリシーの左側にあるチェックボックスにチェックを入れ、[Attach Policy] (ポリシーの添付) を選択します。
-
-
[Trust relationships (信頼関係)] を選択します。
-
信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[Cancel] (キャンセル) を選択します。信頼関係が一致しない場合、[Edit trust policy] (信頼ポリシー編集) を選択して、ポリシーを [Policy Document] (ポリシードキュメント) ウィンドウにコピーし、[Update policy] (ポリシー更新) を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
CloudWatch Events の IAM ロール を作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [Roles]、[Create role] の順に選択します。
-
[Trusted entity type] (信頼されたエンティティタイプ) セクションで、[AWS service] (AWS サービス)、[Elastic Container Service] の順に選択します。
-
[Use case] (ユースケース) で、[Elastic Container Service Task] (Elastic Container Service タスク)を選択した後、[Next] (次) を選択します。
-
[Attach permissions policy] (許可ポリシーの添付) セクションで、以下の操作を行います。
-
[AmazonEC2ContainerServiceEventsRole] を検索し、ポリシーを選択します。
-
[Set permissions boundary - optional] (許可境界の設定 - オプション) で、[Create role without a permissions boundary] (許可境界のないロールを作成する) を選択します。
-
[Next] を選択します。
-
-
[Role details] (ロール詳細) で、次の操作を行います。
-
[Role name](ロール名) に
ecsEventsRole
を入力します。 -
[Add tags (optional)] (タグ追加 (オプション)) の場合、ポリシーに関連付けるカスタムタグを指定します。
-
-
[ロールの作成] を選択します。
-
ロールの一覧で
ecsEventsRole
を検索し、作成したロールを選択します。 -
[Permissions] (許可) タブで、[Add Permissions] (許可の追加)、[Attach policies] (ポリシーの添付) の順に選択します。
-
既存の信頼関係を、次のテキストに置き換えます。[Edit trust policy] (信頼ポリシーの編集) を選択し、ポリシーを [Policy Document] (ポリシードキュメント) ウィンドウにコピーして、[Update policy] (ポリシーの更新) を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
タスク実行ロールのアクセス許可を CloudWatch Events IAM ロールに追加するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[Policies]、[Create policy] の順に選択します。
-
[JSON] を選択し、次のポリシーを貼り付けて、[ポリシーの確認] を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>" ] } ] }
-
[名前] に
AmazonECSEventsTaskExecutionRole
と入力し、オプションで説明を入力してから、[ポリシーの作成] を選択します。 -
ナビゲーションペインで [Roles] (ロール) を選択します。
-
ロールの一覧で
ecsEventsRole
を検索し、ロールを選択してアタッチされたポリシーを表示します。 -
[ポリシーのアタッチ] を選択します。
-
[ポリシーのアタッチ] セクションで、[AmazonECSEventsTaskExecutionRole] ポリシーを選択し、[ポリシーのアタッチ] を選択します。