Etapa 4: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2 - AWS CodeDeploy

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Etapa 4: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2

nota

Se você estiver usando a plataforma de computação Amazon ECS ou AWS Lambda, pule esta etapa.

Suas instâncias do Amazon EC2 precisam de permissão para acessar os buckets GitHub ou repositórios do Amazon S3 onde os aplicativos estão armazenados. Para iniciar instâncias do Amazon EC2 que sejam compatíveis com CodeDeploy, você deve criar uma função adicional do IAM, um perfil de instância. Estas instruções mostram como criar um perfil de instância do IAM; para anexar às suas instâncias do Amazon EC2. Essa função dá ao CodeDeploy agente permissão para acessar os buckets ou GitHub repositórios do Amazon S3 onde seus aplicativos estão armazenados.

Você pode criar um perfil de instância do IAM com o AWS CLI console do IAM ou as APIs do IAM.

nota

Você pode anexar um perfil da instância do IAM a uma instância do Amazon EC2 ao executá-la ou a uma instância executada anteriormente. Para obter mais informações, consulte Perfis de instância.

Criar um perfil de instância do IAM; para as suas instâncias do Amazon EC2 (CLI)

Nestas etapas, partimos do princípio de que você já seguiu as instruções das três primeiras etapas em Começando com CodeDeploy.

  1. Na máquina de desenvolvimento, crie um arquivo de texto chamado CodeDeployDemo-EC2-Trust.json. Cole o seguinte conteúdo, que permite ao Amazon EC2; trabalhar em seu nome:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. No mesmo diretório, crie um arquivo de texto chamado CodeDeployDemo-EC2-Permissions.json. Cole o seguinte conteúdo:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    nota

    Recomendamos que você restrinja essa política somente aos buckets do Amazon S3 que suas instâncias do Amazon EC2 precisam acessar. Certifique-se de dar acesso aos buckets do Amazon S3 que contêm o agente. CodeDeploy Caso contrário, poderá ocorrer um erro quando o CodeDeploy agente for instalado ou atualizado nas instâncias. Para conceder ao perfil da instância do IAM acesso somente a alguns buckets do kit de CodeDeploy recursos no Amazon S3, use a política a seguir, mas remova as linhas dos buckets aos quais você deseja impedir o acesso:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    nota

    Se você quiser usar a autorização do IAM ou os endpoints da Amazon Virtual Private Cloud (VPC) com CodeDeploy, você precisará adicionar mais permissões. Consulte Usar CodeDeploy com a Amazon Virtual Private Cloud para obter mais informações.

  3. No mesmo diretório, chame o comando create-role para criar um perfil do IAM denominada CodeDeployDemo-EC2-Instance-Profile, com base nas informações do arquivo:

    Importante

    Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando.

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. No mesmo diretório, chame o comando put-role-policy para fornecer à função denominada CodeDeployDemo-EC2-Instance-Profile as permissões com base nas informações do segundo arquivo:

    Importante

    Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando.

    aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
  5. Ligue attach-role-policy para dar à função Amazon EC2 Systems Manager permissões para que o SSM possa instalar o CodeDeploy agente. Esta política não é necessária se você planeja instalar o agente pelo bucket público do Amazon S3 com a linha de comando. Saiba mais sobre a instalação do agente do CodeDeploy .

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. Chame o comando create-instance-profile seguido do comando add-role-to-instance-profile para criar um perfil de instância do IAM denominado CodeDeployDemo-EC2-Instance-Profile. O perfil de instância permite que o Amazon EC2 transmita o perfil do IAM denominado CodeDeployDemo-EC2-Instance-Profile para uma instância do Amazon EC2 quando essa instância for iniciada pela primeira vez:

    aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

    Se você precisar obter o nome do perfil da instância do IAM, consulte list-instance-profiles-for-role na seção IAM da AWS CLI Referência.

Agora, você criou um perfil de instância do IAM; a ser anexado às suas instâncias do Amazon EC2. Para obter mais informações, consulte Perfis do IAM para o Amazon EC2 no Guia do usuário do Amazon EC2.

Criar um perfil de instância do IAM; para as suas instâncias do Amazon EC2 (console)

  1. Faça login AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No console do IAM, no painel de navegação, escolha Políticas e Criar política.

  3. Na página Especificar permissões, escolha JSON.

  4. Remova o JSON código de exemplo.

  5. Cole o seguinte código:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    nota

    Recomendamos que você restrinja essa política somente aos buckets do Amazon S3 que suas instâncias do Amazon EC2 precisam acessar. Certifique-se de dar acesso aos buckets do Amazon S3 que contêm o agente. CodeDeploy Caso contrário, poderá ocorrer um erro quando o CodeDeploy agente for instalado ou atualizado nas instâncias. Para conceder ao perfil da instância do IAM acesso somente a alguns buckets do kit de CodeDeploy recursos no Amazon S3, use a política a seguir, mas remova as linhas dos buckets aos quais você deseja impedir o acesso:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    nota

    Se você quiser usar a autorização do IAM ou os endpoints da Amazon Virtual Private Cloud (VPC) com CodeDeploy, você precisará adicionar mais permissões. Consulte Usar CodeDeploy com a Amazon Virtual Private Cloud para obter mais informações.

  6. Escolha Próximo.

  7. Na página Revisar e criar, em Nome da política, digite CodeDeployDemo-EC2-Permissions.

  8. (Opcional) Em Descrição, digite uma descrição para a política.

  9. Escolha Criar política.

  10. No painel de navegação, escolha Perfis e Criar perfil.

  11. Em Caso de uso, escolha o caso de uso do EC2.

  12. Escolha Próximo.

  13. Na lista de políticas, marque a caixa de seleção ao lado da política que você acabou de criar (CodeDeployDemo-EC2-Permissions). Se necessário, use a caixa de pesquisa para encontrar a política.

  14. Para usar o Systems Manager para instalar ou configurar o CodeDeploy agente, marque a caixa de seleção ao lado do AmazonSSM ManagedInstanceCore. Essa política AWS gerenciada permite que uma instância use a funcionalidade principal do serviço do Systems Manager. Se necessário, use a caixa de pesquisa para encontrar a política. Esta política não é necessária se você planeja instalar o agente pelo bucket público do Amazon S3 com a linha de comando. Saiba mais sobre a instalação do agente do CodeDeploy.

  15. Escolha Próximo.

  16. Na página Nomear, revisar e criar, em Nome do perfil, insira um nome para o perfil de serviço (por exemplo, CodeDeployDemo-EC2-Instance-Profile) e escolha Criar perfil.

    Você também pode digitar uma descrição para este perfil de serviço na caixa Descrição do perfil.

Agora, você criou um perfil de instância do IAM; a ser anexado às suas instâncias do Amazon EC2. Para obter mais informações, consulte Perfis do IAM para o Amazon EC2 no Guia do usuário do Amazon EC2.