Confuso pelo requisito de função do ECS

4

Estou tentando configurar um ECS, mas até agora já encontrei alguns problemas de permissão para os quais já criei algumas perguntas sobre esse fórum.

Acho que estou preso até agora porque, honestamente, não consigo descobrir todos esses requisitos de função em um lugar de forma concisa.

Parece que preciso definir pelo menos dois papéis:

1) Contêiner ECS link

2) Tarefa do ECS link

Está correto?

Eu perdi alguma coisa? Existe algum requisito especial do IAM?

    
por Anthony Kong 07.06.2017 / 13:33

2 respostas

10

A única função necessária é a função IAM da instância do recipiente . Essa função permite que o agente do ECS (executado em sua instância do EC2) se comunique com o Amazon ECS.

Existem cinco outras funções que você também pode achar úteis, para diferentes propósitos:

  • Função vinculada ao serviço do ECS (SLR) - Essa função permite Amazon ECS para gerenciar uma variedade de recursos da AWS associados ao seu aplicativo em seu nome. Ao usar um Serviço , essa função permite que o Amazon ECS gerencie o balanceador de carga (carregamento clássico Balanceadores, balanceadores de carga de aplicativos e balanceadores de carga de rede) e descoberta de serviços (com Route 53 ) associado ao seu serviço. Ao usar a rede de tarefas , essa função permite que o Amazon ECS conecte e desconecte Elastic Network Interfaces (ENIs) para suas tarefas. Esta função é necessária ao usar o AWS Fargate .
  • Função IAM do Service Scheduler - Antes da introdução da função vinculada ao serviço do ECS (SLR) ), essa função foi usada em conjunto com um Serviço para permitir que o Amazon ECS gerencie o balanceador de carga associado ao seu serviço. Se você quiser usar um Elastic Load Balancer (seja um Balanceador de Carga Clássico, um Balanceador de Carga de Aplicativo ou um Balanceador de Carga de Rede) com seu serviço do ECS, poderá usar essa função. Agora que a SLR do ECS está disponível, você pode usar uma das duas funções, mas talvez ainda queira usar essa função se quiser restringir as permissões concedidas ao Amazon ECS para cobrir recursos específicos do balanceador de carga.
  • Função do IAM do Auto Scaling - essa função é usada em conjunto com um Service e permite que o serviço Application Auto Scaling dimensione a contagem desejada do seu Serviço para dentro ou para fora.
  • Função IAM da tarefa - essa função pode ser usada com qualquer < Tarefa (incluindo Tarefas lançadas por um Serviço ). Esta função é muito semelhante a um perfil de instância do EC2 , mas permite que você associe permissões a tarefas individuais em vez de à instância do EC2 subjacente que hospeda essas tarefas. Se você estiver executando vários aplicativos diferentes em seu cluster do ECS com permissões diferentes necessárias, poderá usar a função IAM de tarefas para conceder permissões específicas a cada tarefa, em vez de garantir que todas as instâncias do EC2 em seu cluster tenham o conjunto combinado de permissões. aplicação precisaria.
  • Função de execução da tarefa - Essa função é necessária ao usar AWS Fargate e substitui o Função do IAM da instância do contêiner , que não está disponível para o tipo de lançamento FARGATE . Essa função permite que o AWS Fargate retire suas imagens de contêiner do Amazon ECR e encaminhe seus registros para
por 07.06.2017 / 18:37
0

Além dessa explicação muito boa de @ samuel-karp, hoje me deparei com um problema ao migrar do ELB clássico para o ALB em combinação de task_role_arn personalizado para serviços do ECS.

Embora eu tenha seguido as instruções descritas atrás do link Task IAM role , o erro foi

Unable to assume role and validate the specified targetGroupArn. Please verify that the ECS service role being passed has the proper permissions.

O problema é que o serviço parece se registrar no balanceador de carga. Só funcionou quando eu troquei o Principal de ecs.amazonaws.com para

"Principal": { "Service": "ecs-tasks.amazonaws.com" }

    
por 25.08.2017 / 23:43