Implantar um aplicativo em uma conta da AWS diferente
Em geral, as organizações têm várias contas da AWS que utilizam para diferentes propósitos (por exemplo, uma para tarefas de administração de sistema e outra para tarefas de desenvolvimento, teste e produção, ou ainda uma associada a ambientes de desenvolvimento e teste e outra associada ao ambiente de produção).
Embora você possa realizar trabalhos relacionados em diferentes contas, os grupos de implantação do CodeDeploy e as instâncias do Amazon EC2 nas quais eles são implantados estão estritamente vinculados às contas nas quais eles 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 contas da AWS: 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.
account-idrepresenta o número da conta de produção na qual você acabou de criar o perfil de instância do IAM.role-namerepresenta o nome do perfil de instância do IAM; que você acabou de criar.bucket-namerepresenta 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 recurso do aplicativo CodeDeploy, grupo de implantação, configuração de implantação, instâncias do Amazon EC2, perfil de instância do Amazon EC2, perfil de serviço e assim por diante, usando as instruções neste guia.
-
Crie um perfil adicional, um perfil do IAM entre contas, que um usuário na sua conta de desenvolvimento possa assumir para realizar operações do CodeDeploy nessa conta de produção.
Use o Passo a passo: delegar acesso entre contas da AWS usando perfis do IAM como guia para ajudar a criar o perfil entre contas. Em vez de adicionar as permissões de amostra no passo a passo ao seu documento de política, você deve anexar ao perfil pelo menos as duas políticas a seguir fornecidas pela AWS:
-
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
AWSCodeDeployFullAccessem vez da políticaAWSCodeDeployDeployerAccess. Para obter mais informações sobre como usar políticas gerenciadas do IAM para conceder permissões para tarefas do CodeDeploy, consulte Políticas gerenciadas (predefinidas) pela AWS para o 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 Console de gerenciamento da AWS para trocar de função, você precisará fornecer uma das seguintes opções:
-
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 a AWS CLI para trocar de função, você precisará fornecer as seguintes opções:
-
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:
-
Carregue sua revisão de aplicativo no bucket do Amazon S3. Para mais informações, consulte Enviar uma revisão para CodeDeploy ao Amazon S3 (somente implantações do EC2/On-Premises).
Etapa 5: assumir o perfil entre contas e implantar aplicativos
Na conta de desenvolvimento, você pode usar a AWS CLI ou o Console de gerenciamento da AWS 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 Console de gerenciamento da AWS para trocar de perfil e iniciar implantações, consulte Alternar para um perfil (Console de gerenciamento da AWS) e Componentes de implantação em uma plataforma de computação EC2/On-Premises (console).
Para obter instruções sobre como usar a AWS CLI para assumir o perfil entre contas e iniciar implantações, consulte Alternar para um perfil do IAM (AWS Command Line Interface) e Criar uma implantação de plataforma de computação de EC2/On-Premises (CLI).
Para obter mais informações sobre como assumir um perfil por meio do AWS STS, consulte AssumeRole no documento Guia do usuário do AWS Security Token Service e assume-role na Referência de comando da AWS CLI.
Tópico relacionado: