Amazon ECS 基础设施 IAM 角色
Amazon ECS 基础设施 IAM 角色允许 Amazon ECS 代表您管理集群中的基础设施资源,并在以下情况使用:
-
您想将 Amazon EBS 卷附加到您的 Fargate 或 EC2 启动类型 Amazon ECS 任务。基础设施角色允许 Amazon ECS 为您的任务管理 Amazon EBS 卷。
-
您想使用传输层安全性协议(TLS)加密您的 Amazon ECS Service Connect 服务之间的流量。
当 Amazon ECS 担任此角色代表您采取行动时,这些事件将在 AWS CloudTrail 中可见。如果 Amazon ECS 使用该角色来管理附加到任务的 Amazon EBS 卷,则 CloudTrail 日志 roleSessionName
将为 ECSTaskVolumesForEBS
。如果此角色用于加密您的 Service Connect 服务之间的流量,则 CloudTrail 日志 roleSessionName
将为 ECSServiceConnectForTLS
。您可以使用此名称通过筛选用户名在 CloudTrail 控制台中搜索事件。
Amazon ECS 提供了若干托管式策略,其中包含卷挂载和 TLS 所需的权限。有关更多信息,请参阅《AWS 托管式策略参考指南》中的 AmazonECSInfrastructureRolePolicyForVolumes 和 AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity。
创建 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" } ] }
-
使用您在上一步中创建的信任策略,并使用以下 AWS CLI 命令创建一个名为
ecsInfrastructureRole
的角色。aws iam create-role \ --role-name
ecsInfrastructureRole
\ --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
-
根据您的使用案例,将 AWS 托管的
AmazonECSInfrastructureRolePolicyForVolumes
或AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity
策略附加到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
和更新用户权限的更多信息,请参阅《AWS Identity and Access Management 用户指南》中的向用户授予权限以将角色传递给 AWS 服务和更改 IAM 用户的权限。