本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon ECS EventBridge IAM 角色
在使用带有 EventBridge 规则和目标的 Amazon ECS 计划任务之前,该 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>"] } ] }
在配置计划任务时,您可以选择让 EventBridge 角色为您 AWS Management Console 创建。有关更多信息,请参阅Amazon ECS 调度任务。
创建 Amazon ECS EventBridge (ecsEventsRole
) 角色
用您自己的信息替换所有用户输入
。
-
创建一个名为
eventbridge-trust-policy.json
的文件,其中包含要用于 IAM 角色的信任策略。该文件应包含以下内容:{ "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-policy.json
-
使用以下命令
AmazonEC2ContainerServiceEventsRole
将 AWS 托管附加到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 角色添加任务执行角色的权限。