

# Amazon ECS 控制台所需的 Amazon CloudFormation 权限
<a name="cloudformation-console-permissions"></a>

在使用Amazon Web Services 管理控制台创建资源之前，您需要确保拥有正确的 IAM 权限。要首先了解如何为 Amazon ECS 控制台设置权限，请参阅 [Amazon ECS 控制台所需的权限](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/console-permissions.html)。

在以下情况下，Amazon ECS 控制台由 Amazon CloudFormation 提供支持，并且需要额外的 IAM 权限：
+ 创建集群
+ 创建服务
+ 创建容量提供程序

您可以为其他权限创建策略，然后将其附加到用于访问控制台的 IAM 角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建 IAM 策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)。

## 创建集群所需的权限
<a name="create-cluster"></a>

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

 需要以下额外权限：
+ `cloudformation`— 允许委托人创建和管理 Amazon CloudFormation 堆栈。这是使用 Amazon Web Services 管理控制台 创建 Amazon ECS 集群和后续管理这些集群时所必需的。
+ `ssm` – 允许 Amazon CloudFormation 引用最新的 Amazon ECS 优化型 AMI。这在使用 Amazon Web Services 管理控制台 创建 Amazon ECS 集群时为必需。

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

------
#### [ JSON ]

****  

```
{
  "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 组。使用集群自动扩缩功能时，在管理 Amazon EC2 Auto Scaling 组时需要此项。该标签是 ECS 管理的标签，控制台自动将其添加到组中，以表示它是在控制台中创建的。
+ `iam`— 允许委托人列出 IAM 角色及其附加的策略。委托人还可以列出 Amazon EC2 实例可用的实例配置文件。

以下策略包含所需的 IAM 权限，并将操作限制到 `ecsInstanceRole` 角色。

自动扩缩权限不受限制。

------
#### [ JSON ]

****  

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

------

## 创建服务所需的权限
<a name="create-service-permissions"></a>

在控制台中创建服务时，您需要额外的权限来授予您管理 Amazon CloudFormation 堆栈的权限。需要以下额外权限：
+ `cloudformation`— 允许委托人创建和管理 Amazon CloudFormation 堆栈。这是使用 Amazon Web Services 管理控制台 创建 Amazon ECS 服务和后续管理这些服务时所必需的。

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

------
#### [ JSON ]

****  

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

------