Função do IAM para CodeDeploy do Amazon ECS - Amazon Elastic Container Service

Função do IAM para CodeDeploy do Amazon ECS

Antes de poder usar o tipo de implantação azul/verde do CodeDeploy com o Amazon ECS, o serviço do CodeDeploy precisa de permissões para atualizar o serviço do Amazon ECS em seu nome. Essas permissões são fornecidas pela função do IAM para CodeDeploy (ecsCodeDeployRole).

nota

Os usuários também precisam de permissões para usar o CodeDeploy; essas permissões são descritas em Permissões obrigatórias do IAM.

Existem duas políticas gerenciadas fornecidas. Para obter mais informações, consulte um dos tópicos a seguir no AWS Managed Policy Reference Guide:

Criação do perfil do CodeDeploy

Use os procedimentos a seguir para criar um perfil do CodeDeDeploy para o Amazon ECS

AWS Management Console
Para criar o perfil de serviço do CodeDeploy (console do IAM)
  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação do console do IAM, escolha Perfis e, em seguida, Criar perfil.

  3. Em Tipo de Entidade Confiável, escolha AWS service (Serviço da AWS).

  4. Em Serviço ou caso de uso, escolha CodeDeploy e selecione o caso de uso CodeDeploy: ECS.

  5. Escolha Próximo.

  6. Na seção Anexar política de permissões, certifique-se de que a política AWSCodeDeployRoleForECS esteja selecionada.

  7. Escolha Próximo.

  8. Em Nome do perfil, insira ecsCodeDeployRole.

  9. Reveja a função e escolha Criar função.

AWS CLI

Substitua cada entrada do usuário por suas próprias informações.

  1. Crie um arquivo denominado codedeploy-trust-policy.json que contenha a política de confiança a ser usada no perfil do IAM para CodeDeploy.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": ["codedeploy.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }
  2. Crie uma função do IAM denominada ecsCodedeployRole usando a política de confiança criada na etapa anterior.

    aws iam create-role \ --role-name ecsCodedeployRole \ --assume-role-policy-document file://codedeploy-trust-policy.json
  3. Anexe a política gerenciada AWSCodeDeployRoleForECS ou AWSCodeDeployRoleForECSLimited ao perfil ecsTaskRole.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS
    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECSLimited

Quando as tarefas do serviço precisam de um perfil de execução de tarefa, você deve adicionar a permissão iam:PassRole para cada perfil de execução de tarefa ou de substituição de perfil de tarefa ao perfil do CodeDeploy como uma política.

Permissões do perfil de execução de tarefa

Quando as tarefas do serviço precisam de um perfil de execução de tarefa, você deve adicionar a permissão iam:PassRole para cada perfil de execução de tarefa ou de substituição de perfil de tarefa ao perfil do CodeDeploy como uma política. Para ter mais informações, consulte Função do IAM de execução de tarefas do Amazon ECS e Perfil do IAM para tarefas do Amazon ECS. Depois, você anexa essa política ao perfil do CodeDeploy

Crie a política do

AWS Management Console
Para usar o editor de políticas JSON para criar uma política
  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, escolha Policies (Políticas).

    Se essa for a primeira vez que você escolhe Políticas, a página Bem-vindo às políticas gerenciadas será exibida. Escolha Começar.

  3. Na parte superior da página, escolha Criar política.

  4. Na seção Editor de políticas, escolha a opção JSON.

  5. Insira o seguinte documento de política JSON:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"] } ] }
  6. Escolha Próximo.

    nota

    É possível alternar entre as opções de editor Visual e JSON a qualquer momento. Porém, se você fizer alterações ou escolher Próximo no editor Visual, o IAM poderá reestruturar a política a fim de otimizá-la para o editor visual. Para obter mais informações, consulte Restruturação de política no Guia do usuário do IAM.

  7. Na página Revisar e criar, insira um Nome de política e uma Descrição (opcional) para a política que você está criando. Revise Permissões definidas nessa política para ver as permissões que são concedidas pela política.

  8. Escolha Criar política para salvar sua nova política.

Após criar a política, anexe-a ao perfil do CodeDeploy. Para obter informações sobre como anexar uma política a um perfil, consulte Atualizar permissões para um perfil no Guia do usuário do AWS Identity and Access Management.

AWS CLI

Substitua cada entrada do usuário por suas próprias informações.

  1. Crie um arquivo denominado blue-green-iam-passrole.json com o seguinte conteúdo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"] } ] }
  2. Use o comando da a seguir para criar a política do IAM usando o arquivo de documento da política JSON.

    aws iam create-policy \ --policy-name cdTaskExecutionPolicy \ --policy-document file://blue-green-iam-passrole.json
  3. Recupere o ARN da política do IAM que você criou usando o comando a seguir.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cdTaskExecutionPolicy`].Arn'
  4. Use o comando a seguir para anexar a política ao perfil do IAM para CodeDeploy.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy