本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS EventBridge IAM 角色
在搭配 EventBridge 規則與目標使用 Amazon ECS 排程任務之前,需先授予 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 管理主控台 建立 EventBridge 角色。如需詳細資訊,請參閱使用 Amazon EventBridge 排程器排程 Amazon ECS 任務 。
建立 EventBridge 角色
將所有 user input 取代為自己的資訊。
-
建立名為 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 User Guide 中的 Creating a role using custom trust policies (console)。
將政策連接至 ecsEventsRole 角色
您可以透過如下程序,將任務執行角色的許可新增至 EventBridge IAM 角色。
- AWS 管理主控台
-
若要使用 JSON 政策編輯器來建立政策
登入 AWS 管理主控台 並開啟位於 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::111122223333:role/<ecsTaskExecutionRole_or_TaskRole_name>"]
}
]
}
-
選擇下一步。
您可以隨時切換視覺化與 JSON 編輯器選項。不過,如果您進行變更或在視覺化編輯器中選擇下一步,IAM 就可能會調整您的政策結構,以便針對視覺化編輯器進行最佳化。如需詳細資訊,請參閱《IAM 使用者指南》中的調整政策結構。
-
在檢視與建立頁面上,為您正在建立的政策輸入政策名稱與描述 (選用)。檢視此政策中定義的許可,來查看您的政策所授予的許可。
-
選擇 Create policy (建立政策) 儲存您的新政策。
建立政策後,請將政策連接至 EventBridge 角色。如需有關如何將政策連接至角色的資訊,請參閱 AWS Identity and Access Management User Guide 中的 Update permissions for a role。
- AWS CLI
將所有 user input 取代為自己的資訊。
-
建立稱為 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