Amazon ECS 控制台所需的 CloudFormation 权限 - Amazon Elastic Container Service

Amazon ECS 控制台所需的 CloudFormation 权限

在使用AWS 管理控制台创建资源之前,您需要确保拥有正确的 IAM 权限。要首先了解如何为 Amazon ECS 控制台设置权限,请参阅 Amazon ECS 控制台所需的权限

在以下情况下,Amazon ECS 控制台由 AWS CloudFormation 提供支持,并且需要额外的 IAM 权限:

  • 创建集群

  • 创建服务

  • 创建容量提供程序

您可以为其他权限创建策略,然后将其附加到用于访问控制台的 IAM 角色。有关更多信息,请参阅《IAM 用户指南》中的创建 IAM 策略

创建集群所需的权限

在控制台中创建集群时,您需要额外的权限来授予您管理 CloudFormation 堆栈的权限。

需要以下额外权限:

  • cloudformation— 允许委托人创建和管理 CloudFormation 堆栈。这是使用 AWS 管理控制台 创建 Amazon ECS 群集和后续管理这些群集时所必需的。

  • ssm – 允许 CloudFormation 引用最新的 Amazon ECS 优化型 AMI。这在使用 AWS 管理控制台 创建 Amazon ECS 集群时为必需。

以下策略包含所需的 CloudFormation 权限,并将操作限制为在 Amazon ECS 控制台中创建的资源。

{ "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack" ], "Resource": [ "arn:*:cloudformation:*:*:stack/Infra-ECS-Cluster-*" ] }, { "Effect": "Allow", "Action": "ssm:GetParameters", "Resource": [ "arn:aws:ssm:*:*:parameter/aws/service/ecs/optimized-ami/amazon-linux-2*/*", "arn:aws:ssm:*:*:parameter/aws/service/ecs/optimized-ami/amazon-linux-2023*/*" ] } ] }

如果您尚未创建 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": "*" } ] }

创建服务所需的权限

在控制台中创建服务时,您需要额外的权限来授予您管理 CloudFormation 堆栈的权限。需要以下额外权限:

  • cloudformation— 允许委托人创建和管理 CloudFormation 堆栈。这是使用 AWS 管理控制台 创建 Amazon ECS 服务和后续管理这些服务时所必需的。

以下策略包含所需的权限,并将操作限制为在 Amazon ECS 控制台中创建的资源。

{ "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack" ], "Resource": [ "arn:*:cloudformation:*:*:stack/ECS-Console-V2-Service-*" ] } ] }