Amazon ECS EventBridge IAM ロール - Amazon Elastic Container Service

Amazon ECS EventBridge IAM ロール

Amazon ECS でスケジュールされたタスクを EventBridge のルールとターゲットで送信するには、ユーザーの代わりに Amazon ECS タスクを実行するためのアクセス許可が EventBridge サービスに必要です。これらのアクセス許可は、EventBridge IAM ロール (ecsEventsRole) によって付与されます。

AmazonEC2ContainerServiceEventsRole のポリシーを次に示します。

JSON
{ "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"} } }, { "Effect": "Allow", "Action": "ecs:TagResource", "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": ["RunTask"] } } } ] }

スケジュールされたタスクでタスク実行ロールの使用、タスクロール、またはタスクロール上書きが必要な場合、タスク実行ロール、タスクロール、またはタスクロール上書きごとに iam:PassRole アクセス許可を EventBridge IAM ロールに追加する必要があります。タスクの実行ロールの詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。

注記

タスク実行ロールまたはタスクロール上書きの完全 ARN を指定します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::111122223333:role/ecsTaskExecutionRole_or_TaskRole_name" ] } ] }

スケジュールされたタスクを設定するときに、AWS マネジメントコンソール が EventBridge ロールを作成するようにすることができます。詳細については、「Amazon EventBridge スケジューラを使用して Amazon ECS タスクをスケジュールする 」を参照してください。

Amazon ECS EventBridge ロールを作成する

すべての [ユーザー入力] は、お客様の情報で置き換えてください。

  1. IAM ロールに使用する信頼ポリシーが含まれている eventbridge-trust-policy.json という名前のファイルを作成します。ファイルには次の内容が含まれます。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 前のステップで作成した信頼ポリシーを使用して、ecsEventsRole という名前の IAM ロールを作成するには、次のコマンドを使用します。

    aws iam create-role \ --role-name ecsEventsRole \ --assume-role-policy-document file://eventbridge-trust-policy.json
  3. 次のコマンドを使用して、AWS マネージド AmazonEC2ContainerServiceEventsRoleecsEventsRole ロールにアタッチします。

    aws iam attach-role-policy \ --role-name ecsEventsRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceEventsRole

IAM コンソールの[カスタム信頼ポリシーワークフロー] (https://console.aws.amazon.com/iam/) を使用してロールを作成することもできます。詳細については、「IAM ユーザーガイド」の「カスタム信頼ポリシーを使用してロールを作成する (コンソール)」を参照してください。

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

以下の手順を使用して、タスク実行ロールのアクセス許可を EventBridge IAM ロールに追加できます。

AWS マネジメントコンソール
JSON ポリシーエディタでポリシーを作成するには
  1. AWS マネジメントコンソール にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左側のナビゲーションペインで、ポリシー を選択します。

    初めて ポリシー を選択する場合には、管理ポリシーにようこそ ページが表示されます。今すぐ始める を選択します。

  3. ページの上部で、ポリシーを作成 を選択します。

  4. ポリシーエディタ セクションで、JSON オプションを選択します。

  5. 次の JSON ポリシードキュメントを入力します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::111122223333:role/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  6. 次へ を選択します。

    注記

    いつでも VisualJSON エディタオプションを切り替えることができます。ただし、Visual エディタで 次へ に変更または選択した場合、IAM はポリシーを再構成して visual エディタに合わせて最適化することがあります。詳細については、IAM ユーザーガイドポリシーの再構成 を参照してください。

  7. 確認と作成 ページで、作成するポリシーの ポリシー名説明 (オプション) を入力します。このポリシーで定義されているアクセス許可 を確認して、ポリシーによって付与されたアクセス許可を確認します。

  8. ポリシーを作成 をクリックして、新しいポリシーを保存します。

ポリシーを作成したら、そのポリシーを EventBridge ロールにアタッチします。ポリシーをロールにアタッチする方法については、「AWS Identity and Access Management ユーザーガイド」の「ロールに対するアクセス許可を更新する」を参照してください。

AWS CLI

すべての [ユーザー入力] は、お客様の情報で置き換えてください。

  1. ev-iam-passrole.json というファイルを次の内容で作成します。

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::111122223333:role/ecsTaskExecutionRole_or_TaskRole_name" ] } ] }
  2. JSON ポリシードキュメントファイルを使用して IAM ポリシーを作成するには、次の AWS CLI コマンドを使用します。

    aws iam create-policy \ --policy-name eventsTaskExecutionPolicy \ --policy-document file://ev-iam-passrole.json
  3. 次のコマンドを使用して、作成した IAM ポリシーの ARN を取得します。

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`eventsTaskExecutionPolicy`].Arn'
  4. ポリシー ARN を使用して EventBridge の IAM ロールにポリシーをアタッチするには、次のコマンドを使用します。

    aws iam attach-role-policy \ --role-name ecsEventsRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/eventsTaskExecutionPolicy