Etapa 4: Crie um perfil de IAM instância para suas EC2 instâncias da Amazon - 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: Crie um perfil de IAM instância para suas EC2 instâncias da Amazon

nota

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

Suas EC2 instâncias da Amazon precisam de permissão para acessar os buckets ou GitHub repositórios do Amazon S3 onde os aplicativos estão armazenados. Para iniciar EC2 instâncias da Amazon que sejam compatíveis com CodeDeploy, você deve criar uma IAM função adicional, um perfil de instância. Essas instruções mostram como criar um perfil de IAM instância para anexar às suas EC2 instâncias da Amazon. 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 IAM instância com o. AWS CLI, o IAM console ou IAM APIs o.

nota

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

Crie um perfil de IAM instância para suas EC2 instâncias da Amazon (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 que EC2 a Amazon trabalhe 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 EC2 instâncias da Amazon devem 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 IAM instância 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:::amzn-s3-demo-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 IAMautorização 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 create-role comando para criar uma IAM função chamadaCodeDeployDemo-EC2-Instance-Profile, com base nas informações do primeiro 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 o para dar à função Amazon EC2 Systems Manager permissões para que ela 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 create-instance-profile comando seguido pelo add-role-to-instance-profile comando para criar um perfil de IAM instância chamadoCodeDeployDemo-EC2-Instance-Profile. O perfil da instância permite que EC2 a Amazon transmita a IAM função nomeada CodeDeployDemo-EC2-Instance-Profile para uma EC2 instância da Amazon quando a instância é 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 IAM instância, consulte list-instance-profiles-for-role na IAM seção da AWS CLI Referência.

Agora você criou um perfil de IAM instância para anexar às suas EC2 instâncias da Amazon. Para obter mais informações, consulte as IAMfunções da Amazon EC2 no Guia EC2 do usuário da Amazon.

Crie um perfil de IAM instância para suas EC2 instâncias da Amazon (console)

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

  2. No IAM console, no painel de navegação, escolha Políticas e, em seguida, escolha 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 EC2 instâncias da Amazon devem 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 IAM instância 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:::amzn-s3-demo-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 IAMautorização 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 EC2uso.

  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 -Permissões). 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 de mazonSSMManaged InstanceCore A. 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 IAM instância para anexar às suas EC2 instâncias da Amazon. Para obter mais informações, consulte as IAMfunções da Amazon EC2 no Guia EC2 do usuário da Amazon.