Amazon ECS CloudWatch Events IAM ロール - Amazon Elastic Container Service

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 ロールを確認するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで [Roles] (ロール) を選択します。

  3. ナビゲーションペインで [Roles] (ロール) を選択します。

  4. ロールのリストで ecsEventsRole を検索します。ロールが見つからない場合、次の手順を使用してロールを作成します。ロールが存在する場合は、そのロールを選択して、アタッチされているポリシーを表示します。

  5. [Permissions] (許可) タブで、AmazonEC2ContainerServiceEventsRole マネージドポリシーがロールに添付されていることを確認します。ポリシーがアタッチされている場合、Amazon ECS タスク実行ロールは適切に設定されています。そうでない場合、次のサブステップに従ってポリシーをアタッチします。

    1. [Add Permissions] (許可の追加)、[Attach policies] (ポリシーの添付) を選択します。

    2. [Filter] (フィルター) に添付する利用可能なポリシーを絞り込むには、AmazonEC2ContainerServiceEventsRole と入力します。

    3. AmazonEC2ContainerServiceEventsRole ポリシーの左側にあるチェックボックスにチェックを入れ、[Attach Policy] (ポリシーの添付) を選択します。

  6. [Trust relationships (信頼関係)] を選択します。

  7. 信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[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 ロール を作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで [Roles]、[Create role] の順に選択します。

  3. [Trusted entity type] (信頼されたエンティティタイプ) セクションで、[AWS service] ( のサービス)、Elastic Container Service を選択します。

  4. [Use case] (ユースケース) で、[Elastic Container Service Task] (Elastic Container Service タスク)を選択した後、[Next] (次) を選択します。

  5. [Attach permissions policy] (許可ポリシーの添付) セクションで、以下の操作を行います。

    1. [AmazonEC2ContainerServiceEventsRole] を検索し、ポリシーを選択します。

    2. [Set permissions boundary - optional] (許可境界の設定 - オプション) で、[Create role without a permissions boundary] (許可境界のないロールを作成する) を選択します。

    3. [Next] を選択します。

  6. [Role details] (ロール詳細) で、次の操作を行います。

    1. [Role name](ロール名) に ecsEventsRole を入力します。

    2. [Add tags (optional)] (タグ追加 (オプション)) の場合、ポリシーに関連付けるカスタムタグを指定します。

  7. [ロールの作成] を選択します。

  8. ロールの一覧で ecsEventsRole を検索し、作成したロールを選択します。

  9. [Permissions] (許可) タブで、[Add Permissions] (許可の追加)、[Attach policies] (ポリシーの添付) の順に選択します。

  10. 既存の信頼関係を、次のテキストに置き換えます。[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 ロールに追加するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[Policies]、[Create policy] の順に選択します。

  3. [JSON] を選択し、次のポリシーを貼り付けて、[ポリシーの確認] を選択します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>" ] } ] }
  4. [名前] に AmazonECSEventsTaskExecutionRole と入力し、オプションで説明を入力してから、[ポリシーの作成] を選択します。

  5. ナビゲーションペインで [Roles] (ロール) を選択します。

  6. ロールの一覧で ecsEventsRole を検索し、ロールを選択してアタッチされたポリシーを表示します。

  7. [Attach policies] (ポリシーの添付) を選択します。

  8. [ポリシーのアタッチ] セクションで、[AmazonECSEventsTaskExecutionRole] ポリシーを選択し、[ポリシーのアタッチ] を選択します。