适用于负载均衡器的 Amazon ECS 基础设施 IAM 角色 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

适用于负载均衡器的 Amazon ECS 基础设施 IAM 角色

适用于负载均衡器的 Amazon ECS 基础设施 IAM 角色允许 Amazon ECS 代表您管理集群中的负载均衡器资源,并在以下情况使用:

  • 您想要将 Amazon ECS 与蓝绿部署配合使用。基础设施角色允许 Amazon ECS 为您的部署管理负载均衡器资源。

  • 在部署操作期间,您需要使用 Amazon ECS 来创建、修改或删除负载均衡器资源,例如目标组和侦听器。

当 Amazon ECS 担任此角色代表您采取行动时,这些事件将在 Amazon CloudTrail 中可见。如果 Amazon ECS 使用该角色为蓝绿部署管理负载均衡器资源,则 CloudTrail 日志 roleSessionName 将为 ECSNetworkingWithELBecs-service-scheduler。您可以使用此名称通过筛选用户名在 CloudTrail 控制台中搜索事件。

Amazon ECS 提供托管式策略,其中包含管理负载均衡器所需的权限。有关更多信息,请参阅《Amazon Managed Policy Reference Guide》中的 AmazonECSInfrastructureRolePolicyForLoadBalancers

创建适用于负载均衡器的 Amazon ECS 基础设施角色

将所有用户输入替换为您自己的信息。

  1. 创建一个名为 ecs-infrastructure-trust-policy.json 的文件,其中包含要用于 IAM 角色的信任策略。该文件应包含以下内容:

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToECSForInfrastructureManagement", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 使用您在上一步中创建的信任策略,并使用以下 Amazon CLI 命令创建一个名为 ecsInfrastructureRoleForLoadBalancers 的角色。

    aws iam create-role \ --role-name ecsInfrastructureRoleForLoadBalancers \ --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
  3. 将 Amazon 托管 AmazonECSInfrastructureRolePolicyForLoadBalancers 策略 附加到 ecsInfrastructureRoleForLoadBalancers 角色。

    aws iam attach-role-policy \ --role-name ecsInfrastructureRoleForLoadBalancers \ --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForLoadBalancers

您也可以使用 IAM 控制台的自定义信任策略工作流程来创建该角色。有关更多信息,请参阅《IAM 用户指南》中的使用自定义信任策略创建角色(控制台)

重要

如果 Amazon ECS 使用该基础设施角色来为蓝绿部署管理负载均衡器资源,在删除或修改角色前,请确保完成以下事项:

  • 在进行主动部署时,不会删除该角色。

  • 该角色的信任策略不会被修改为删除 Amazon ECS 访问权限(ecs.amazonaws.com)。

  • 在进行主动部署时,不会移除托管式策略 AmazonECSInfrastructureRolePolicyForLoadBalancers

在主动的蓝绿部署期间删除或修改角色可能会导致部署失败,并可能使您的服务处于不一致的状态。

创建该文件后,您必须向用户授予将该角色传递给 Amazon ECS 的权限。

授予将基础设施角色传递给 Amazon ECS 的权限

要使用适用于负载均衡器的 ECS 基础设施 IAM 角色,您必须授予用户将该角色传递给 Amazon ECS 的权限。将以下 iam:PassRole 权限附加到您的用户。将 ecsInfrastructureRoleForLoadBalancers 替换为您创建的基础设施角色的名称。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Action": "iam:PassRole", "Effect": "Allow", "Resource": ["arn:aws:iam::*:role/ecsInfrastructureRoleForLoadBalancers"], "Condition": { "StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"} } } ] }

有关 iam:Passrole 和更新用户权限的更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的向用户授予权限以将角色传递给 Amazon 服务更改 IAM 用户的权限