Amazon ECS 基础设施 IAM 角色
Amazon ECS 基础设施 IAM 角色允许 Amazon ECS 代表您管理集群中的基础设施资源,并在以下情况使用:
-
您想将 Amazon EBS 卷附加到您的 Fargate 或 EC2 启动类型 Amazon ECS 任务。基础设施角色允许 Amazon ECS 为您的任务管理 Amazon EBS 卷。
-
您想使用传输层安全性协议(TLS)加密您的 Amazon ECS Service Connect 服务之间的流量。
-
您想要创建 Amazon VPC Lattice 目标组。
当 Amazon ECS 担任此角色代表您采取行动时,这些事件将在 Amazon CloudTrail 中可见。如果 Amazon ECS 使用该角色来管理附加到任务的 Amazon EBS 卷,则 CloudTrail 日志 roleSessionName
将为 ECSTaskVolumesForEBS
。如果此角色用于加密您的 Service Connect 服务之间的流量,则 CloudTrail 日志 roleSessionName
将为 ECSServiceConnectForTLS
。如果该角色用于为 VPC Lattice 创建目标组,则 CloudTrail 日志 roleSessionName
将是 ECSNetworkingWithVPCLattice
。您可以使用此名称通过筛选用户名在 CloudTrail 控制台中搜索事件。
Amazon ECS 提供了若干托管式策略,其中包含卷挂载和 TLS 所需的权限。有关更多信息,请参阅《Amazon Managed Policy Reference Guide》中的 AmazonECSInfrastructureRolePolicyForVolumes、AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity 和 AmazonECSInfrastructureRolePolicyForVpcLattice。
创建 Amazon ECS 基础设施角色
将所有用户输入
替换为您自己的信息。
-
创建一个名为
ecs-infrastructure-trust-policy.json
的文件,其中包含要用于 IAM 角色的信任策略。该文件应包含以下内容:{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToECSForInfrastructureManagement", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
使用您在上一步中创建的信任策略,并使用以下 Amazon CLI 命令创建一个名为
ecsInfrastructureRole
的角色。aws iam create-role \ --role-name
ecsInfrastructureRole
\ --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
-
根据具体应用场景,将由 Amazon 托管的
AmazonECSInfrastructureRolePolicyForVolumes
、AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity
或AmazonECSInfrastructureRolePolicyForVpcLattice
策略附加到ecsInfrastructureRole
角色。aws iam attach-role-policy \ --role-name
ecsInfrastructureRole
\ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForVolumesaws iam attach-role-policy \ --role-name
ecsInfrastructureRole
\ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity
您也可以使用 IAM 控制台的自定义信任策略工作流程来创建该角色。有关更多信息,请参阅《IAM 用户指南》中的使用自定义信任策略创建角色(控制台)。
重要
如果 Amazon ECS 使用 ECS 基础设施角色来管理附加到您的任务的 Amazon EBS 卷,则请在停止使用 Amazon EBS 卷的任务之前确保满足以下条件。
-
该角色未被删除。
-
该角色的信任策略不会被修改为删除 Amazon ECS 访问权限(
ecs.amazonaws.com
)。 -
托管策略
AmazonECSInfrastructureRolePolicyForVolumes
未被删除。如果您必须修改角色的权限,则请至少保留ec2:DetachVolume
、ec2:DeleteVolume
和ec2:DescribeVolumes
用于卷删除。
在停止带有附加 Amazon EBS 卷的任务之前删除或修改角色将导致任务陷入 DEPROVISIONING
状态,并且关联的 Amazon EBS 卷无法删除。Amazon ECS 将定期自动重试以停止任务并删除该卷,直到恢复必要的权限。您可以使用 DescribeTasks API 查看任务的卷附加状态和关联的状态原因。
创建该文件后,您必须向用户授予将该角色传递给 Amazon ECS 的权限。
授予将基础设施角色传递给 Amazon ECS 的权限
要使用 ECS 基础设施 IAM 角色,您必须授予用户将该角色传递给 Amazon ECS 的权限。将以下 iam:PassRole
权限附加到您的用户。将 ecsInfrastructureRole
替换为您创建的基础设施角色的名称。
{ "Version": "2012-10-17", "Statement": [ { "Action": "iam:PassRole", "Effect": "Allow", "Resource": ["arn:aws:iam::*:role/
ecsInfrastructureRole
"], "Condition": { "StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"} } } ] }
有关 iam:Passrole
和更新用户权限的更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的向用户授予权限以将角色传递给 Amazon 服务和更改 IAM 用户的权限。