Amazon ECS 控制台所需的权限
遵循授予最低权限的最佳实践,您可以使用 AmazonECS_FullAccess
托管策略作为创建您自己的自定义策略的模板。这样,您就可以根据您的特定要求取消或添加托管策略的权限。有关更多信息,请参阅 权限详细信息。
在以下情况下,Amazon ECS 控制台由 AWS CloudFormation 提供支持,并且需要额外的 IAM 权限:
-
创建集群
-
创建服务
-
创建容量提供程序
您可以为其他权限创建策略,然后将其附加到用于访问控制台的 IAM 角色。有关更多信息,请参阅《IAM 用户指南》中的创建 IAM 策略。
创建集群所需的权限
在控制台中创建集群时,您需要额外的权限来授予您管理 AWS CloudFormation 堆栈的权限。
需要以下额外权限:
-
cloudformation
— 允许委托人创建和管理 AWS CloudFormation 堆栈。这是使用 AWS Management Console 创建 Amazon ECS 群集和后续管理这些群集时所必需的。
以下策略包含所需的 AWS CloudFormation 权限,并将操作限制为在 Amazon ECS 控制台中创建的资源。
{ "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack" ], "Resource": [ "arn:*:cloudformation:*:*:stack/Infra-ECS-Cluster-*" ] } ] }
如果您尚未创建 Amazon ECS 容器实例角色(ecsInstanceRole
),并且正在创建使用 Amazon EC2 实例的集群,则控制台将代表您创建该角色。
此外,如果您使用自动扩缩组,则需要额外的权限,以便控制台在使用集群自动扩缩功能时可以向自动扩缩组添加标签。
需要以下额外权限:
-
autoscaling
– 允许控制台标记 Amazon EC2 Auto Scaling 组。使用集群 Auto Scaling 功能时,在管理 Amazon EC2 Auto Scaling 组时需要此项。该标签是 ECS 管理的标签,控制台自动将其添加到组中,以表示它是在控制台中创建的。 -
iam
— 允许委托人列出 IAM 角色及其附加的策略。委托人还可以列出 Amazon EC2 实例可用的实例配置文件。
以下策略包含所需的 IAM 权限,并将操作限制到 ecsInstanceRole
角色。
自动扩缩权限不受限制。
{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateInstanceProfile", "iam:AddRoleToInstanceProfile", "iam:ListInstanceProfilesForRole", "iam:GetRole" ], "Resource": "arn:aws:iam::*:role/ecsInstanceRole" }, { "Effect": "Allow", "Action": "autoscaling:CreateOrUpdateTags", "Resource": "*" } ] }
创建容量提供程序所需的权限
在控制台中创建服务时,您需要额外的权限来授予您管理 AWS CloudFormation 堆栈的权限。需要以下额外权限:
-
cloudformation
— 允许委托人创建和管理 AWS CloudFormation 堆栈。这是使用 AWS Management Console 创建 Amazon ECS 容量提供程序以及随后管理这些容量提供程序时所必需的。
以下策略包含所需的权限,并将操作限制为在 Amazon ECS 控制台中创建的资源。
{ "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack" ], "Resource": [ "arn:*:cloudformation:*:*:stack/Infra-ECS-CapacityProvider-*" ] } ] }
创建服务所需的权限
在控制台中创建服务时,您需要额外的权限来授予您管理 AWS CloudFormation 堆栈的权限。需要以下额外权限:
-
cloudformation
— 允许委托人创建和管理 AWS CloudFormation 堆栈。这是使用 AWS Management Console 创建 Amazon ECS 服务和后续管理这些服务时所必需的。
以下策略包含所需的权限,并将操作限制为在 Amazon ECS 控制台中创建的资源。
{ "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack" ], "Resource": [ "arn:*:cloudformation:*:*:stack/ECS-Console-V2-Service-*" ] } ] }
创建 IAM 角色的权限
以下操作需要额外的权限才能完成操作:
-
注册外部实例 - 有关更多信息,请参阅 Amazon ECS Anywhere IAM 角色
-
注册任务定义 - 有关更多信息,请参阅 Amazon ECS 任务执行 IAM 角色
-
创建用于计划任务的 EventBridge 规则 - 有关更多信息,请参阅 Amazon ECS EventBridge IAM 角色
您可以通过先在 IAM 中创建角色来添加这些权限,然后再在 Amazon ECS 控制台中使用这些权限。如果您没有创建角色,Amazon ECS 控制台将代表您创建角色。
将外部实例注册到集群所需的权限
在向集群注册外部实例并想要创建新的外部实例(escExternalInstanceRole
)角色时,您需要额外的权限。
需要以下额外权限:
-
iam
– 允许主体创建并列出 IAM 角色及其附加的策略。 -
ssm
– 允许主体向 Systems Manager 注册外部实例。
注意
要选择现有的 escExternalInstanceRole
,您必须拥有 iam:GetRole
和 iam:PassRole
权限。
以下策略包含所需的权限,并将操作限制到 escExternalInstanceRole
角色。
{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:CreateInstanceProfile", "iam:AddRoleToInstanceProfile", "iam:ListInstanceProfilesForRole", "iam:GetRole" ], "Resource": "arn:aws:iam::*:role/escExternalInstanceRole" }, { "Effect": "Allow", "Action": ["iam:PassRole","ssm:CreateActivation"], "Resource": "arn:aws:iam::*:role/escExternalInstanceRole" } ] }
注册任务定义所需的权限
注册任务定义并想要创建新的任务执行(ecsTaskExecutionRole
)角色时,您需要额外的权限。
需要以下额外权限:
-
iam
– 允许主体创建并列出 IAM 角色及其附加的策略。
注意
要选择现有的 ecsTaskExecutionRole
,您必须拥有 iam:GetRole
权限。
以下策略包含所需的权限,并将操作限制到 ecsTaskExecutionRole
角色。
{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole" ], "Resource": "arn:aws:iam::*:role/ecsTaskExecutionRole" } ] }
为计划任务创建 EventBridge 规则所需的权限
在计划任务并想要创建新的 CloudWatch Events 角色(ecsEventsRole
)角色时,您需要额外的权限。
需要以下额外权限:
-
iam
– 允许主体创建和列出 IAM 角色及其附加策略,并允许 Amazon ECS 将角色传递给其他服务以代入该角色。
注意
要选择现有的 ecsEventsRole
,您必须拥有 iam:GetRole
和 iam:PassRole
权限。
以下策略包含所需的权限,并将操作限制到 ecsEventsRole
角色。
{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetRole", "iam: PassRole" ], "Resource": "arn:aws:iam::*:role/ecsEventsRole" } ] }