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 角色
将所有用户输入
替换为您自己的信息。
-
创建一个名为
eventbridge-trust-policy.json
的文件,其中包含要用于 IAM 角色的信任策略。该文件应包含以下内容:{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
使用以下命令创建一个 IAM 角色,该角色使用您在上一步中创建的信任策略命名为
ecsEventsRole
。aws iam create-role \ --role-name
ecsEventsRole
\ --assume-role-policy-document file://eventbridge-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/
将策略附加到 ecsEventsRole
角色
您可以使用以下过程将任务执行角色的权限添加到 EventBridge IAM 角色。