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

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

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

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

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

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

Amazon ECS 提供托管式策略,其中包含管理负载均衡器所需的权限。有关更多信息,请参阅《AWS 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. 使用您在上一步中创建的信任策略,并使用以下 AWS CLI 命令创建一个名为 ecsInfrastructureRoleForLoadBalancers 的角色。

    aws iam create-role \ --role-name ecsInfrastructureRoleForLoadBalancers \ --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
  3. 将 AWS 托管 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 和更新用户权限的更多信息,请参阅《AWS Identity and Access Management 用户指南》中的向用户授予权限以将角色传递给 AWS 服务更改 IAM 用户的权限