Implantar um aplicativo em uma conta da AWS diferente - 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á.

Implantar um aplicativo em uma conta da AWS diferente

As organizações geralmente têm várias AWS contas que usam para finalidades diferentes (por exemplo, uma para tarefas de administração do sistema e outra para tarefas de desenvolvimento, teste e produção ou uma associada a ambientes de desenvolvimento e teste e outra associada ao ambiente de produção).

Embora você possa realizar trabalhos relacionados em contas diferentes, os grupos de CodeDeploy implantação e as instâncias do Amazon EC2 nas quais eles são implantados estão estritamente vinculados às contas sob as quais foram criados. Por exemplo, você não pode adicionar uma instância iniciada em uma conta em um grupo de implantação em outra instância.

Suponha que você tenha duas AWS contas: sua conta de desenvolvimento e sua conta de produção. Você trabalha principalmente na conta de desenvolvimento, mas deseja poder iniciar implantações na conta de produção sem um conjunto completo de credenciais ou sem ter que se desconectar da conta de desenvolvimento e entrar na conta de produção.

Depois de seguir as etapas de configuração entre contas, você poderá iniciar implantações que pertencem a outra das contas da sua organização, sem precisar de um conjunto completo de credenciais para essa outra conta. Isso é feito em parte usando uma capacidade fornecida pelo AWS Security Token Service (AWS STS), que concede acesso temporário a essa conta.

Etapa 1: criar um bucket do S3 em qualquer uma das contas

Na conta de desenvolvimento ou de produção:

  • Se ainda não tiver feito isso, crie um bucket do Amazon S3 no qual as revisões de aplicativo para a conta de produção serão armazenadas. Para obter informações, consulte Criar um bucket no Amazon S3. Você pode até mesmo usar o mesmo bucket e as mesmas revisões de aplicativo para ambas as contas, implantando no seu ambiente de produção os mesmos arquivos que você testou e verificou na sua conta de desenvolvimento.

Etapa 2: conceder permissões de bucket do Amazon S3; ao perfil de instância do IAM da conta de produção

Se o bucket do Amazon S3 criado na etapa 1 estiver na sua conta de produção, essa etapa não será necessária. A função que você assumir mais tarde já terá acesso a esse bucket, pois também está na conta de produção.

Se tiver criado o bucket do Amazon S3 na conta de desenvolvimento, faça o seguinte:

  • Na conta de produção, crie um perfil de instância do IAM. Para mais informações, consulte Etapa 4: criar um perfil de instância do IAM para as suas instâncias do Amazon EC2.

    nota

    Anote o ARN desse perfil de instância do IAM. Você precisará adicioná-lo à política entre buckets que será criada em seguida.

  • Na conta de desenvolvimento, dê acesso ao bucket do Amazon S3 criado na conta de desenvolvimento para o perfil de instância do IAM que você acabou de criar na sua conta de produção. Para obter informações, consulte Exemplo 2: proprietário do bucket concedendo permissões para bucket entre contas.

    Observe o seguinte enquanto conclui o processo de concessão de permissões para bucket entre contas:

    • No passo a passo de amostra, a Conta A representa sua conta de desenvolvimento, enquanto a Conta B representa sua conta de produção.

    • Quando você executar as tarefas da Conta A (conta de desenvolvimento), modifique a seguinte política de bucket para conceder permissões entre contas em vez de usar a política de amostra fornecida no passo a passo.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "Cross-account permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/role-name" }, "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::bucket-name/*" ] } ] }

      account-id representa o número da conta de produção na qual você acabou de criar o perfil de instância do IAM.

      role-name representa o nome do perfil de instância do IAM; que você acabou de criar.

      bucket-name representa o nome do bucket que você criou na etapa 1. Certifique-se de incluir o /* depois do nome do seu bucket, para fornecer acesso a cada um dos arquivos dentro desse bucket.

Etapa 3: criar recursos e um perfil entre contas na conta de produção

Na sua conta de produção:

  • Crie seus CodeDeploy recursos — aplicativo, grupo de implantação, configuração de implantação, instâncias do Amazon EC2, perfil da instância do Amazon EC2, função de serviço e assim por diante — usando as instruções deste guia.

  • Crie uma função adicional, uma função do IAM entre contas, que um usuário em sua conta de desenvolvimento possa assumir para realizar CodeDeploy operações nessa conta de produção.

    Use o passo a passo: delegue o acesso entre AWS contas usando as funções do IAM como um guia para ajudá-lo a criar a função entre contas. Em vez de adicionar os exemplos de permissões na explicação passo a passo ao seu documento de política, você deve anexar, no mínimo, as duas políticas AWS fornecidas a seguir à função:

    • AmazonS3FullAccess: necessária apenas se o bucket do S3 estiver na conta de desenvolvimento. Fornece ao perfil da conta de produção assumida acesso total aos serviços e recursos do Amazon S3 na conta de desenvolvimento, na qual a revisão está armazenada.

    • AWSCodeDeployDeployerAccess: permite que um usuário registre e implante revisões.

    Se quiser criar e gerenciar grupos de implantação e não apenas iniciar implantações, adicione a política AWSCodeDeployFullAccess em vez da política AWSCodeDeployDeployerAccess. Para obter mais informações sobre o uso de políticas gerenciadas do IAM para conceder permissões para CodeDeploy tarefas, consulteAWS políticas gerenciadas (predefinidas) para CodeDeploy.

    Você poderá anexar políticas adicionais se quiser realizar tarefas em outros serviços da AWS enquanto usa essa função entre contas.

Importante

À medida que você criar o perfil do IAM entre contas, anote os detalhes que serão necessários para obter acesso à conta de produção.

Para usar o AWS Management Console para alternar funções, você precisará fornecer um dos seguintes:

  • Uma URL para acessar a conta de produção com as credenciais da função assumida. Você encontrará o URL na página Review (Revisão), que é exibida no final do processo de criação de função de conta cruzada.

  • O nome da função entre contas e o alias ou o número de identificação da conta.

Para usar o AWS CLI para alternar funções, você precisará fornecer o seguinte:

  • O ARN da função entre contas que você assumirá.

Etapa 4: carregar a revisão de aplicativo no bucket do Amazon S3

Na conta em que você criou o bucket do Amazon S3:

Etapa 5: assumir o perfil entre contas e implantar aplicativos

Na conta de desenvolvimento, você pode usar o AWS CLI ou o AWS Management Console para assumir a função entre contas e iniciar a implantação na conta de produção.

Para obter instruções sobre como usar o AWS Management Console para alternar funções e iniciar implantações, consulte Mudando para uma função (AWS Management Console) e. Componentes de implantação em uma plataforma de computação EC2/On-Premises (console)

Para obter instruções sobre como usar o AWS CLI para assumir a função entre contas e iniciar implantações, consulte Como mudar para uma função do IAM () e.AWS Command Line Interface Criar uma implantação de plataforma de computação de EC2/On-Premises (CLI)

Para obter mais informações sobre como assumir uma função por meio de AWS STS, consulte AssumeRoleo Guia do AWS Security Token Service Usuário e assume-role na Referência de Comandos.AWS CLI

Tópico relacionado: