Amazon ECS EventBridge IAM角色 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS EventBridge IAM角色

在您可以將 Amazon ECS排程任務與 EventBridge 規則和目標搭配使用之前, EventBridge 服務需要許可才能代表您執行 Amazon ECS任務。這些許可由 EventBridge IAM角色 () 提供ecsEventsRole

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

如果您的排程任務需要使用任務執行角色、任務角色或任務角色覆寫,則必須將 EventBridge IAM每個任務執行角色、任務角色或任務角色覆寫的iam:PassRole許可新增至角色。如需任務執行角色的詳細資訊,請參閱「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>"] } ] }

您可以在設定排程任務時,選擇讓 為您 AWS Management Console 建立 EventBridge 角色。如需詳細資訊,請參閱使用 Amazon EventBridge Scheduler 排程 Amazon ECS任務

建立 EventBridge 角色

取代全部 user input 使用您自己的資訊。

  1. 建立名為 的檔案eventbridge-trust-policy.json,其中包含要用於IAM角色的信任政策。檔案應包含以下內容:

    { "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-policy.json
  3. 使用下列命令 將 AWS 受管 AmazonEC2ContainerServiceEventsRole連接至ecsEventsRole角色。

    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 Management Console
使用JSON政策編輯器建立政策
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在左側的導覽窗格中,選擇 Policies (政策)

    如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)

  3. 在頁面頂端,選擇 Create policy (建立政策)

  4. 政策編輯器區段中,選擇 JSON選項。

  5. 輸入下列JSON政策文件:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  6. 選擇 Next (下一步)

    注意

    您可以隨時在視覺化JSON編輯器選項之間切換。不過,如果您在視覺化編輯器中進行變更或選擇下一步, IAM可能會重組您的政策,以將其最佳化為視覺化編輯器。如需詳細資訊,請參閱 IAM 使用者指南 中的政策重組

  7. 檢視與建立頁面上,為您在建立的政策輸入政策名稱描述 (選用)。檢視此政策中定義的許可,來查看您的政策所授予的許可。

  8. 選擇 Create policy (建立政策) 儲存您的新政策。

建立政策後,請將政策連接至 EventBridge 角色。如需有關如何將政策連接至角色的資訊,請參閱 AWS Identity and Access Management 使用者指南 中的修改角色許可政策 (主控台)

AWS CLI

取代全部 user input 使用您自己的資訊。

  1. 建立稱為 ev-iam-passrole.json 的檔案,其中具有以下內容。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  2. 使用以下 AWS CLI 命令,使用IAM政策文件檔案建立JSON政策。

    aws iam create-policy \ --policy-name eventsTaskExecutionPolicy \ --policy-document file://ev-iam-passrole.json
  3. 擷取您使用以下命令建立ARNIAM的政策。

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`eventsTaskExecutionPolicy`].Arn'
  4. 使用以下命令,使用政策 將 EventBridge IAM政策連接至角色ARN。

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