Função do IAM do ECS Anywhere
Quando você registra um servidor on-premises ou uma máquina virtual (VM) no seu cluster, o servidor ou a VM precisará de um perfil do IAM para se comunicar com as APIs da AWS. Você precisa criar essa função do IAM apenas uma vez para cada conta da AWS. No entanto, essa função do IAM deve ser associada a cada servidor ou VM que você registra em um cluster. Essa função é a função ECSAnywhereRole
. É possível criar essa função manualmente. Como alternativa, o Amazon ECS pode criar a função em seu nome quando você registrar uma instância externa no AWS Management Console.
A AWS fornece duas políticas do IAM gerenciadas que podem ser usadas na criação da função do IAM do ECS Anywhere, as políticas AmazonSSMManagedInstanceCore
e AmazonEC2ContainerServiceforEC2Role
. A política AmazonEC2ContainerServiceforEC2Role
inclui permissões que, provavelmente, fornecem mais acesso do que você precisa. Portanto, dependendo do seu caso de uso específico, recomendamos que você crie uma política personalizada adicionando apenas as permissões desta política que você precisa que constem dela. .
Verificação do ECS Anywhere (ecsAnywhereRole
) no console do IAM
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, selecione Roles (Funções).
-
Na caixa de pesquisa, insira
ecsAnywhereRole
. Se o perfil existir, selecione-o para exibir as políticas anexadas. -
Na guia Permissões, verifique se AmazonEC2ContainerServiceforEC2Role e AmazonSSMManagedInstanceCore estão anexados ao perfil.
-
Escolha Add Permissions (Adicionar permissões), Attach policies (Anexar políticas).
-
Para restringir as políticas disponíveis para anexação, em Filtrar, digite AmazonEC2ContainerServiceforEC2Role e AmazonSSMManagedInstanceCore.
-
Marque a caixa à esquerda da política AmazonEC2ContainerServiceforEC2Role e AmazonSSMManagedInstanceCore e escolha Anexar política.
-
-
Escolha Trust relationships (Relações de confiança).
-
Verifique se o relacionamento de confiança contém a seguinte política: Se o relacionamento de confiança corresponder à política abaixo, escolha Cancel. Se o relacionamento de confiança não corresponder, escolha Edit trust policy (Editar política confiável), copie a política para a janela Policy Document (Documento da política) e escolha Update Policy (Atualizar política).
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Criação do perfil ECS Anywhere (ecsAnywhereRole
)
Para criar o ecsAnywhereRole
(AWS Management Console)
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Roles e Create role.
-
Escolha o tipo de perfil Serviço da AWS e depois Elastic Container Service.
-
Escolha o caso de uso EC2 Role for Elastic Container Service (Função do EC2 para serviço de contêiner elástico) e Next: Permissions (Próximo: Permissões).
-
Na seção Attached permissions policy, selecione AmazonEC2ContainerServiceforEC2Role e escolha Next: Review.
-
Em Nome do perfil, insira
ecsAnywhereRole
e, como opção, você também pode inserir uma descrição, por exemplo: Permite que servidores on-premises ou uma máquina virtual em um cluster do ECS acesse o ECS. -
Revise as informações da sua função e selecione Create role para finalizar.
-
Escolha a função ecsAnywhereRole que você acabou de criar.
-
Na guia Permissions (Permissões), escolha Attach policies (Anexar políticas).
-
Na caixa Filtrar, digite AmazonSSMManagedInstanceCore para restringir as políticas disponíveis para anexação.
-
Selecione a caixa à esquerda da política AmazonSSMManagedInstanceCore e escolha Attach policy (Anexar política).
-
Na guia Trust relationships (Relações de confiança), escolha Edit trust relationship (Editar relação de confiança).
-
Altere a relação de confiança para que ela contenha a seguinte política e, em seguida, escolha Update Trust Policy (Atualizar política de confiança).
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Para criar o perfil ecsAnywhereRole
(AWS CLI)
-
Crie um arquivo local denominado
ssm-trust-policy.json
com o seguinte conteúdo.{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": [ "ssm.amazonaws.com" ]}, "Action": "sts:AssumeRole" } }
-
Crie a função do .
aws iam create-role --role-name
ecsAnywhereRole
--assume-role-policy-document file://ssm-trust-policy.json
-
Anexe as políticas gerenciadas pela AWS.
aws iam attach-role-policy --role-name
ecsAnywhereRole
--policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore aws iam attach-role-policy --role-nameecsAnywhereRole
--policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
Permissões do IAM condicionais
A função do IAM de execução de tarefas concede ao agente de contêiner do Amazon ECS permissão para fazer chamadas da API da AWS em seu nome. Quando uma função do IAM de execução de tarefa é usada, ela deve ser especificada na definição da tarefa. Para obter mais informações, consulte Função do IAM de execução de tarefas do Amazon ECS.
A função de execução da tarefa será necessária se alguma das seguintes condições se aplicar:
-
Você está enviando logs de contêiner ao CloudWatch Logs usando o driver de log
awslogs
. -
Sua definição de tarefa especifica uma imagem de contêiner hospedada em um repositório privado do Amazon ECR. No entanto, se a função do IAM
ECSAnywhereRole
associada à instância externa também inclui as permissões necessárias para extrair imagens do Amazon ECR, a função de execução de tarefas não precisa incluí-las.