

# 适用于负载均衡器的 Amazon ECS 基础设施 IAM 角色
<a name="AmazonECSInfrastructureRolePolicyForLoadBalancers"></a>

适用于负载均衡器的 Amazon ECS 基础设施 IAM 角色允许 Amazon ECS 代表您管理集群中的负载均衡器资源，并在以下情况使用：
+ 您想要将 Amazon ECS 与蓝绿部署配合使用。基础设施角色允许 Amazon ECS 为您的部署管理负载均衡器资源。
+ 在部署操作期间，您需要使用 Amazon ECS 来创建、修改或删除负载均衡器资源，例如目标组和侦听器。

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

Amazon ECS 提供托管式策略，其中包含管理负载均衡器所需的权限。有关更多信息，请参阅《Amazon 托管式策略参考指南》**中的 [AmazonECSInfrastructureRolePolicyForLoadBalancers](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AmazonECSInfrastructureRolePolicyForLoadBalancers.html)。

## 创建适用于负载均衡器的 Amazon ECS 基础设施角色
<a name="create-infrastructure-role-loadbalancers"></a>

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

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" 
       } 
     ] 
   }
   ```

------

1. 使用您在上一步中创建的信任策略，并使用以下 Amazon CLI 命令创建一个名为 `ecsInfrastructureRoleForLoadBalancers` 的角色。

   ```
   aws iam create-role \
         --role-name ecsInfrastructureRoleForLoadBalancers \
         --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
   ```

1. 将 Amazon 托管 `AmazonECSInfrastructureRolePolicyForLoadBalancers` 策略 附加到 `ecsInfrastructureRoleForLoadBalancers` 角色。

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

您也可以使用 IAM 控制台的**自定义信任策略**工作流程来创建该角色。有关更多信息，请参阅《IAM 用户指南》**中的[使用自定义信任策略创建角色（控制台）](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

**重要**  
如果 Amazon ECS 使用该基础设施角色来为蓝绿部署管理负载均衡器资源，在删除或修改角色前，请确保完成以下事项：  
在进行主动部署时，不会删除该角色。
该角色的信任策略不会被修改为删除 Amazon ECS 访问权限（`ecs.amazonaws.com`）。
在进行主动部署时，不会移除托管式策略 `AmazonECSInfrastructureRolePolicyForLoadBalancers`。
在主动的蓝绿部署期间删除或修改角色可能会导致部署失败，并可能使您的服务处于不一致的状态。

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

## 授予将基础设施角色传递给 Amazon ECS 的权限
<a name="pass_infrastructure_role_to_service_loadbalancers"></a>

要使用适用于负载均衡器的 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 服务](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_use_passrole.html)和[更改 IAM 用户的权限](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_users_change-permissions.html)。