亚马逊 ECS CloudWatch 活动 IAM 角色 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 ECS CloudWatch 活动 IAM 角色

在您可以将 Amazon ECS 计划任务与一起使用之前 CloudWatch 活动规则和目标, CloudWatch 活动服务需要权限才能代表您运行 Amazon ECS 任务。这些权限由 CloudWatch 事件 IAM 角色 (ecsEventsRole)。

的 CloudWatch 活动角色将在中自动为您创建Amazon Web Services Management Console当您配置计划任务时。有关更多信息,请参阅计划任务

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将每个任务执行角色、任务角色或任务角色的权限替换为 CloudWatch 事件 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>" ] } ] }

正在检查亚马逊 ECS CloudWatch 活动 (ecsEventsRole) 在 IAM 控制台中

您可以手动创建角色并为容器实例附加托管 IAM 策略,以允许 Amazon ECS 在引入未来功能和增强功能时添加权限。使用以下过程检查并确定您的账户是否已拥有 Amazon ECS 容器实例 IAM 角色并且附加托管 IAM policy (如果需要)。

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles(角色)。

  3. 在搜索框中,输入 ecsEventsRole。如果角色存在,请选择角色以查看附加的策略。

  4. 权限选项卡,验证亚马逊 EC2ContainerServiceEventsRole与角色相关。

    1. 依次选择 Add Permissions(添加权限)和 Attach policies(附加策略)。

    2. 要缩小要附加的可用策略范围,对于过滤器,输入亚马逊 EC2ContainerServiceEventsRole

    3. 选中左边的复选框亚马逊 EC2ContainerServiceEventsRole策略,然后选择附加政策

  5. 选择 Trust Relationships(信任关系)。

  6. 验证信任关系是否包含以下策略。如果信任关系符合以下策略,请选择 Cancel。如果信任关系不符合,请选择 Edit trust policy(编辑信任策略),将策略复制到 Policy Document(策略文档)窗口中并选择 Update policy(更新策略)。

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

创建亚马逊 ECS CloudWatch 活动 (ecsEventsRole) 角色

为创建 IAM 角色 CloudWatch 大事记
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles(角色)和 Create role(创建角色)。

  3. Trusted entity type(可信实体类型)部分,选择 Amazon service( 服务)、Elastic Container Service

  4. 对于使用案例,选择 Elastic Container Service 任务,然后选择下一步

  5. Attach permissions policy(附加权限策略)页面上,执行以下操作:

    1. 在搜索框中输入AmazonEC2ContainerServiceEventsRole,然后选择策略。

    2. Set permissions boundary - optional(设置权限边界 - 可选)下,选择 Create role without a permissions boundary(创建没有权限边界的角色)。

    3. 选择下一步

  6. Role details(角色详细信息)下,执行以下操作:

    1. 对于角色名称,输入 ecsEventsRole

    2. 对于添加标签(可选),输入要与策略关联的任何自定义标签。

  7. 选择 Create role(创建角色)。

  8. 在角色列表中搜索 ecsEventsRole 并选择角色。

  9. 将现有信任关系替换为以下文本。在信任关系选项卡,选择编辑信任策略,将策略复制到政策文件窗口,然后选择更新政策

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

将策略附加到 ecsEventsRole 角色

将任务执行角色的权限添加到 CloudWatch 事件 IAM 角色
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/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_or_TaskRole_name>" ] } ] }
  4. 对于名称,输入 AmazonECSEventsTaskExecutionRole,也可以输入描述,然后选择创建策略

  5. 在导航窗格中,选择 Roles(角色)。

  6. 在角色列表中搜索 ecsEventsRole,然后选择该角色来查看附加的策略。

  7. 选择 Attach policy(附上策略)。

  8. 附加政策部分,选择亚马逊 ECSEventsTaskExecutionRole策略,然后选择附加政策