Amazon ECS CloudWatch Events IAM ロール - Amazon ECS

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 管理ポリシーをアタッチします。

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

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

  3. 検索ボックスに「ecsEventsRole」と入力します。ロールが存在する場合は、そのロールを選択して、アタッチされているポリシーを表示します。

  4. [アクセス許可] タブで、[AmazonEC2ContainerServiceEventsRole] がロールにアタッチされていることを確認します。

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

    2. アタッチ可能なポリシーを絞り込むには、[フィルター] に、「AmazonEC2ContainerServiceEventsRole」と入力します。

    3. [AmazonEC2ContainerServiceEventsRole] ポリシーの左側にあるチェックボックスをオンにした後、[ポリシーをアタッチ] を選択します。

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

  6. 信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[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 ロール を作成するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

  4. [ユースケース] で、[Elastic Container Service タスク] を選択した後、[次へ] を選択します。

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

    1. 検索ボックスに「AmazonEC2ContainerServiceEventsRole」と入力し、ポリシーを選択します。

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

    3. [Next] (次へ) をクリックします。

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

    1. [ロール名] には、「ecsEventsRole」と入力します。

    2. [タグの追加 (オプション)] では、ポリシーに関連付けるカスタムタグを入力します。

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

  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": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ecsEventsRole ロールへのポリシーのアタッチ

タスク実行ロールのアクセス許可を 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. ナビゲーションペインで [ロール] を選択します。

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

  7. [ポリシーのアタッチ] を選択します。

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