本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS EventBridge IAM 角色
在您可以將 Amazon ECS 排程任務與 EventBridge 規則和目標搭配使用之前,EventBridge 服務需要代表您執行 Amazon ECS 任務的許可。這些許可由 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 角色」。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"arn:aws:iam::111122223333
:role/ecsTaskExecutionRole_or_TaskRole_name
"
]
}
]
}
設定排程任務時,您可以選擇讓 為您 AWS Management Console 建立 EventBridge 角色。如需詳細資訊,請參閱使用 Amazon EventBridge 排程器來排程 Amazon ECS 任務 。
建立 EventBridge 角色
將所有使用者輸入
取代為您自己的資訊。
-
建立名為 eventbridge-trust-policy.json
的檔案,其中包含用於 IAM 角色的信任政策。檔案應包含以下內容:
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
使用以下命令,ecsEventsRole
使用您在上一個步驟中建立的信任政策來建立名為 的 IAM 角色。
aws iam create-role \
--role-name ecsEventsRole
\
--assume-role-policy-document file://eventbridge-trust-policy.json
-
使用下列命令將 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 政策編輯器來建立政策
登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/iam/ 的 IAM 主控台。
-
在左側的導覽窗格中,選擇 Policies (政策)。
如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)。
-
在頁面頂端,選擇 Create policy (建立政策)。
-
在政策編輯器中,選擇 JSON 選項。
-
輸入下列 JSON 政策文件:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>"]
}
]
}
-
選擇下一步。
您可以隨時切換視覺化與 JSON 編輯器選項。不過,如果您進行變更或在視覺化編輯器中選擇下一步,IAM 就可能會調整您的政策結構,以便針對視覺化編輯器進行最佳化。如需詳細資訊,請參閱 IAM 使用者指南中的調整政策結構。
-
在檢視與建立頁面上,為您正在建立的政策輸入政策名稱與描述 (選用)。檢視此政策中定義的許可,來查看您的政策所授予的許可。
-
選擇 Create policy (建立政策) 儲存您的新政策。
建立政策之後,請將政策連接至 EventBridge 角色。如需有關如何將政策連接至角色的資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的更新角色的許可。
- AWS CLI
將所有使用者輸入
取代為您自己的資訊。
-
建立稱為 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
"
]
}
]
}
-
使用以下 AWS CLI 命令,使用 JSON 政策文件檔案建立 IAM 政策。
aws iam create-policy \
--policy-name eventsTaskExecutionPolicy
\
--policy-document file://ev-iam-passrole.json
-
擷取您使用下列命令建立之 IAM 政策的 ARN。
aws iam list-policies --scope Local --query 'Policies[?PolicyName==`eventsTaskExecutionPolicy
`].Arn'
-
使用以下命令,使用政策 ARN 將政策連接至 EventBridge IAM 角色。
aws iam attach-role-policy \
--role-name ecsEventsRole
\
--policy-arn arn:aws:iam:111122223333:aws:policy/eventsTaskExecutionPolicy