Permissões necessárias para usar o console do Amazon ECS com o CloudFormation
Antes de usar o Console de gerenciamento da AWS para criar seus recursos, você precisará ter as permissões corretas do IAM. Para obter informações sobre como configurar primeiro as permissões para o console do Amazon ECS em geral, consulte Permissões necessárias para o console do Amazon ECS.
O console do Amazon ECS é desenvolvido pelo AWS CloudFormation e exige permissões adicionais do IAM nos seguintes casos:
-
Criar um cluster
-
Criar um serviço
-
Criação de um provedor de capacidade
É possível criar uma política para as permissões adicionais e, em seguida, anexá-las ao perfil do IAM que você usa para acessar o console. Para obter mais informações, consulte Criar políticas do IAM no Guia do usuário do IAM.
Permissões necessárias para criar um cluster
Ao criar um cluster no console, você precisa de permissões adicionais que concedam permissões para gerenciar pilhas do CloudFormation.
As permissões adicionais a seguir são necessárias:
-
cloudformation: permite que as entidades principais criem e gerenciem pilhas do CloudFormation. Isso é necessário na criação de clusters do Amazon ECS usando o Console de gerenciamento da AWS e no gerenciamento subsequente destes clusters. -
ssm: permite que o CloudFormation faça referência à AMI otimizada para o Amazon ECS mais recente. Isso é necessário ao criar clusters do Amazon ECS utilizando o Console de gerenciamento da AWS.
A política a seguir contém as permissões CloudFormation necessárias e limita as ações aos recursos criados no console do 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*/*" ] } ] }
Se você não criou o perfil de instância de contêiner do Amazon ECS (ecsInstanceRole) e está criando um cluster que usa instâncias do Amazon EC2, o console criará o perfil em seu nome.
Além disso, caso use grupos do Auto Scaling, são necessárias permissões adicionais para que o console possa adicionar tags aos grupos do Auto Scaling ao usar o recurso de ajuste de escala automático de cluster.
As permissões adicionais a seguir são necessárias:
-
autoscaling: permite que o console atribua tags ao grupo do Amazon EC2 Auto Scaling. Isso é necessário no gerenciamento de grupos do Amazon EC2 Auto Scaling quando for usado o recurso de escalabilidade automática do cluster. A tag é a gerenciada pelo ECS que o console adiciona automaticamente ao grupo para indicar que foi criada no console. -
iam: permite que as entidades principais listem funções do IAM e suas políticas anexadas. As entidades principais também podem listar perfis da instância disponíveis para as instâncias do Amazon EC2.
A política a seguir contém as permissões do IAM necessárias e limita as ações ao perfil ecsInstanceRole.
As permissões do Auto Scaling não são limitadas.
{ "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": "*" } ] }
Permissões necessárias para criar um serviço
Ao criar um serviço no console, você precisa de permissões adicionais que concedam permissões para gerenciar pilhas do CloudFormation. As permissões adicionais a seguir são necessárias:
-
cloudformation: permite que as entidades principais criem e gerenciem pilhas do CloudFormation. Isso é necessário na criação de serviços do Amazon ECS usando o Console de gerenciamento da AWS e no gerenciamento subsequente destes serviços.
A política a seguir contém as permissões necessárias e limita as ações aos recursos criados no console do Amazon ECS.
{ "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack" ], "Resource": [ "arn:*:cloudformation:*:*:stack/ECS-Console-V2-Service-*" ] } ] }