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>" ] } ] }
IAM コンソールでの Amazon ECS CloudWatch Events (ecsEventsRole
) の確認
Amazon ECS インスタンスのロールは、Amazon ECS コンソールの初回実行時に自動的に作成されます。ただし、機能や機能強化が今後導入されたときに Amazon ECS がそれらに対するアクセス許可を追加できるように、手動でロールを作成し、その IAM 管理ポリシーをコンテナインスタンスにアタッチすることができます。次の手順に従って、アカウントにすでに Amazon ECS container インスタンスの IAM ロールが存在するかどうかを確認し、必要に応じて IAM 管理ポリシーをアタッチします。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [Roles (ロール) ] を選択します。
-
検索ボックスに「
ecsEventsRole
」と入力します。ロールが存在する場合は、そのロールを選択して、アタッチされているポリシーを表示します。 -
[アクセス許可] タブで、[AmazonEC2ContainerServiceEventsRole] がロールにアタッチされていることを確認します。
-
[Add Permissions] (許可の追加)、[Attach policies] (ポリシーの添付) を選択します。
-
アタッチ可能なポリシーを絞り込むには、[フィルター] に、「AmazonEC2ContainerServiceEventsRole」と入力します。
-
[AmazonEC2ContainerServiceEventsRole] ポリシーの左側にあるチェックボックスをオンにした後、[ポリシーをアタッチ] を選択します。
-
-
[Trust relationships (信頼関係)] を選択します。
-
信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[Cancel] (キャンセル) を選択します。信頼関係が一致しない場合、[Edit trust policy] (信頼ポリシー編集) を選択して、ポリシーを [Policy Document] (ポリシードキュメント) ウィンドウにコピーし、[Update policy] (ポリシー更新) を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Amazon ECS CloudWatch Events (ecsEventsRole
) ロールの作成
CloudWatch Events の IAM ロール を作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [Roles]、[Create role] の順に選択します。
-
[Trusted entity type] (信頼されたエンティティタイプ) セクションで、[AWS service]、[Elastic Container Service] の順に選択します。
-
[ユースケース] で、[Elastic Container Service タスク] を選択した後、[次へ] を選択します。
-
[Attach permissions policy] (許可ポリシーの添付) セクションで、以下の操作を行います。
-
検索ボックスに「
AmazonEC2ContainerServiceEventsRole
」と入力し、ポリシーを選択します。 -
[Set permissions boundary - optional] (許可境界の設定 - オプション) で、[Create role without a permissions boundary] (許可境界のないロールを作成する) を選択します。
-
[Next] (次へ) をクリックします。
-
-
[Role details] (ロール詳細) で、次の操作を行います。
-
[ロール名] には、「
ecsEventsRole
」と入力します。 -
[タグの追加 (オプション)] では、ポリシーに関連付けるカスタムタグを入力します。
-
-
[Create role] (ロールの作成) を選択します。
-
ロールの一覧で
ecsEventsRole
を検索し、そのロールを選択します。 -
[Permissions] (許可) タブで、[Add Permissions] (許可の追加)、[Attach policies] (ポリシーの添付) の順に選択します。
-
既存の信頼関係を、次のテキストに置き換えます。[Edit trust policy] (信頼ポリシーの編集) を選択し、ポリシーを [Policy Document] (ポリシードキュメント) ウィンドウにコピーして、[Update policy] (ポリシーの更新) を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
ecsEventsRole
ロールへのポリシーのアタッチ
タスク実行ロールのアクセス許可を 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
」と入力し、説明を入力 (任意) してから、[ポリシーを作成] を選択します。 -
ナビゲーションペインで [ロール] を選択します。
-
ロールの一覧で
ecsEventsRole
を検索し、そのロールを選択してアタッチされているポリシーを表示します。 -
[ポリシーのアタッチ] を選択します。
-
[ポリシーのアタッチ] セクションで、[AmazonECSEventsTaskExecutionRole] ポリシーを選択してから、[ポリシーをアタッチ] を選択します。