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"] } } } ] }

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

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

建立 EventBridge 角色

所有使用者輸入取代為您自己的資訊。

  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-trust-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 ,並在 https://https://console.aws.amazon.com/iam/ 開啟 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

所有使用者輸入取代為您自己的資訊。

  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 命令,使用 JSON 政策文件檔案建立 IAM 政策。

    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