Amazon Elastic Container Service
开发人员指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

CloudWatch Events IAM 角色

CloudWatch Events 服务需要先获得代表您运行 Amazon ECS 任务的权限,然后您才能将 Amazon ECS 计划任务用于 CloudWatch Events 规则和目标。这些权限由 CloudWatch Events IAM 角色 (ecsEventsRole) 提供。

当您配置计划任务时,系统会在 AWS 管理控制台 中自动为您创建 CloudWatch Events 角色。有关更多信息,请参阅 排定的任务 (cron)

AmazonEC2ContainerServiceEventsRole 策略如下所示。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "*" ] } ] }

如果您的计划任务需要使用任务执行角色,或者需要使用任务角色覆盖,则您必须为每个任务执行角色或对于 CloudWatch 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_name>" ] } ] }

您可以使用以下过程检查您的账户是否已经拥有 CloudWatch Events IAM 角色,并根据需要手动创建。

在 IAM 控制台中检查 CloudWatch Events IAM 角色

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Roles

  3. 在角色列表中搜索 ecsEventsRole。如果该角色不存在,请使用下一个过程创建该角色。如果角色存在,请选择角色以查看附加的策略。

  4. 选择 Permissions

  5. 托管策略部分,确保将 AmazonEC2ContainerServiceEventsRole 托管策略附加到角色。如果附加该策略,则将正确配置 Amazon ECS 服务角色。否则,请执行以下子步骤来附加策略。

    1. 选择 Attach Policy

    2. 对于 Filter,键入 AmazonEC2ContainerServiceEventsRole 以缩小要附加的可用策略的范围。

    3. 选中 AmazonEC2ContainerServiceEventsRole 策略左侧的框并选择附加策略

  6. 选择 Trust Relationships,然后选择 Edit Trust Relationship

  7. 验证信任关系是否包含以下策略。如果信任关系符合以下策略,请选择 Cancel。如果信任关系不符合,请将策略复制到 Policy Document 窗口中并选择 Update Trust Policy

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

创建用于 CloudWatch Events 的 IAM 角色

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Roles,然后选择 Create role

  3. 选择受信任实体的类型部分,选择 Elastic Container Service。对于选择您的使用案例,选择 Elastic Container Service 任务。选择 Next: Permissions

  4. 附加权限策略部分,选择 AmazonEC2ContainerServiceEventsRole 策略,然后选择下一步:审核

  5. 对于角色名称,键入 ecsEventsRole 来命名角色,也可输入描述,然后选择创建角色

  6. 审核您的角色信息,然后选择创建角色

添加任务执行角色的权限到 CloudWatch Events IAM 角色

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 PoliciesCreate policy

  3. 选择 JSON,粘贴以下策略,然后选择 查看策略

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_name>" ] } ] }
  4. 对于名称,键入 AmazonECSEventsTaskExecutionRole,也可输入描述,然后选择创建策略

  5. 在导航窗格中,选择 Roles

  6. 搜索角色列表,找到 ecsEventsRole,选择该角色来查看附加的策略。

  7. 选择 Attach policy

  8. 附加策略部分,选择 AmazonECSEventsTaskExecutionRole 策略,然后选择附加策略