Função do IAM de instância de contêiner do Amazon ECS
As instâncias de contêiner do Amazon ECS, incluindo instâncias do Amazon EC2 e externas, executam o agente de contêiner do Amazon ECS e exigem uma função do IAM para o serviço saber que o agente pertence a você. Para poder iniciar instâncias de contêiner e registrá-las em um cluster, você deve criar uma função do IAM para as instâncias de contêiner usarem. A função é criada na conta que você usa para fazer login no console ou executar os comandos da AWS CLI
Importante
Se você estiver registrando instâncias externas em seu cluster, a função do IAM usada também exigirá permissões do Systems Manager. Para ter mais informações, consulte Perfil do IAM para o Amazon ECS Anywhere.
O Amazon ECS fornece a política AmazonEC2ContainerServiceforEC2Role
gerenciada do IAM que contém as permissões necessárias para usar o conjunto completo de recursos do Amazon ECS. Essa política gerenciada pode ser anexada a uma função do IAM e associada às instâncias de contêiner. Como alternativa, você pode usar a política gerenciada como guia quando criar uma política personalizada para ser usada. A função de instância de contêiner fornece permissões necessárias para que o agente de contêiner do Amazon ECS e o daemon do Docker chamem APIs da AWS em seu nome. Para obter mais informações sobre a política gerenciada, consulte AmazonEC2ContainerServiceforEC2Role.
O Amazon ECS oferece suporte à inicialização de instâncias de contêiner com maior densidade de ENI usando tipos de instâncias do Amazon EC2 compatíveis. Ao usar esse recurso, recomendamos criar dois perfis da instância de contêiner. Habilite a configuração da conta awsvpcTrunking
em um perfil e use esse perfil em tarefas que exigem truncamento de ENI. Para obter mais informações sobre a configuração da conta awsvpcTrunking
, consulte Acesso aos recursos do Amazon ECS com as configurações de conta.
Criar o perfil da instância de contêiner
Importante
Se você estiver registrando instâncias externas em seu cluster, consulte Perfil do IAM para o Amazon ECS Anywhere.
É possível criar manualmente o perfil e anexar a política do IAM gerenciada para instâncias de contêiner para permitir que o Amazon ECS adicione permissões para recursos e aprimoramentos futuros à medida que sejam introduzidos. Use o procedimento a seguir para anexar a política do IAM gerenciada, se necessário.
Depois de criar o perfil, adicione a ele outras permissões para os atributos a seguir.
Atributo | Permissões adicionais |
---|---|
O Amazon ECR tem a imagem do container |
|
Fazer com que o CloudWatch Logs monitore instâncias de contêiner | |
Hospedar arquivos de configuração no bucket do Amazon S3 |
Permissões do Amazon ECR
O perfil de instância de contêiner do Amazon ECS que você usa com as instâncias de contêiner deve ter as seguintes permissões de política do IAM para o Amazon ECR.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Se você usa a política gerenciada AmazonEC2ContainerServiceforEC2Role
para suas instâncias de contêiner, sua função tem as permissões apropriadas. Para verificar se a função oferece suporte ao Amazon ECR, consulte Função do IAM da instância de contêiner do Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.
Acesso somente leitura ao Amazon S3
Armazenar informações de configuração em um bucket privado no Amazon S3 e conceder acesso somente leitura à função do IAM de instância de contêiner é uma maneira segura e conveniente de permitir a configuração da instância de contêiner no momento da inicialização. É possível armazenar uma cópia do arquivo ecs.config
em um bucket privado, usar os dados de usuário do Amazon EC2 para instalar a AWS CLI e copiar as informações de configuração em /etc/ecs/ecs.config
quando a instância for inicializada.
Para obter mais informações sobre como criar um arquivo ecs.config
, armazená-lo no Amazon S3 e inicializar instâncias com essa configuração, consulte Armazenamento da configuração da instância de contêiner do Amazon ECS no Amazon S3.
É possível usar o comando da AWS CLI a seguir para permitir o acesso somente leitura do Amazon S3 ao perfil da instância de contêiner. Substitua ecsInstanceRole
pelo nome do perfil criado.
aws iam attach-role-policy \ --role-name
ecsInstanceRole
\ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
Também é possível usar o console do IAM para adicionar o acesso somente leitura do Amazon S3 (AmazonS3ReadOnlyAccess
) ao perfil. Para obter mais informações, consulte Atualizar permissões para um perfil no Guia do usuário do AWS Identity and Access Management.
Monitorar permissões de instâncias de contêiner
Para que as instâncias de contêiner possam enviar dados de log ao CloudWatch Logs, você deve criar uma política do IAM para permitir que as instâncias de contêiner usem as APIs do CloudWatch Logs e anexar esta política a ecsInstanceRole
.