Use o register-on-premises-instance comando (IAMusuárioARN) para registrar uma instância local - 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á.

Use o register-on-premises-instance comando (IAMusuárioARN) para registrar uma instância local

Importante

Registrar uma instância usando um IAM usuário não é recomendado porque usa credenciais estáticas (permanentes) para autenticação. Para melhorar a segurança, recomendamos registrar uma instância usando credenciais temporárias para autenticação. Para obter mais informações, consulte Use o register-on-premises-instance comando (ARN da sessão do IAM) para registrar uma instância local.

Importante

Verifique se você tem um plano para alternar as chaves de acesso do IAM usuário (credenciais permanentes). Para obter mais informações, consulte Alternando as chaves de acesso.

Siga estas instruções para configurar uma instância local, registrá-la e marcá-la CodeDeploy principalmente por conta própria, usando credenciais de IAM usuário estáticas para autenticação.

Etapa 1: criar um IAM usuário para a instância local

Crie um IAM usuário que a instância local usará para autenticar e interagir. CodeDeploy

Importante

Você deve criar um IAM usuário separado para cada instância local participante. Se você tentar reutilizar um IAM usuário individual para várias instâncias locais, talvez não consiga registrar ou marcar essas instâncias locais com. CodeDeploy As implementações nessas instâncias locais podem estar presas em um estado pendente perpétuo ou podem falhar completamente.

Recomendamos que você atribua ao IAM usuário um nome que identifique sua finalidade, como CodeDeployUser -OnPrem.

Você pode usar o AWS CLI ou o IAM console para criar um IAM usuário. Para obter mais informações, consulte Criação de um IAM usuário em sua AWS conta.

Importante

Se você usa o console AWS CLI ou o IAM console para criar um novo IAM usuário, anote o usuário ARN fornecido para o usuário. Você precisará dessas informações mais tarde em Etapa 4: adicionar um arquivo de configuração à instância on-premises e Etapa 8: registrar a instância local com CodeDeploy.

Etapa 2: atribuir permissões ao IAM usuário

Se sua instância local estiver implantando revisões de aplicativos a partir de buckets do Amazon S3, você deverá atribuir ao IAM usuário as permissões para interagir com esses buckets. Você pode usar o console AWS CLI ou o IAM console para atribuir permissões.

nota

Se você estiver implantando revisões de aplicativos somente de GitHub repositórios, pule esta etapa e vá diretamente para. Etapa 3: obter as credenciais IAM do usuário (Você ainda precisará de informações sobre o IAM usuário em que você criouEtapa 1: criar um IAM usuário para a instância local. Ele será usado em etapas posteriores.)

Para atribuir permissões (CLI)
  1. Crie um arquivo com o seguinte conteúdo de política na EC2 instância ou dispositivo da Amazon que você está usando para chamar AWS CLI o. Nomeie o arquivo de algo como CodeDeploy-OnPrem-Permissions.json e, em seguida, salve-o.

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

    Recomendamos que você restrinja essa política somente para os buckets do Amazon S3 que a sua instância on-premises precisa acessar. Se você restringir essa política, certifique-se de também conceder acesso aos buckets do Amazon S3 que contêm o agente. AWS CodeDeploy Caso contrário, poderá ocorrer um erro sempre que o CodeDeploy agente for instalado ou atualizado na instância local associada.

    Por exemplo:

    { "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/*" ] } ] }
  2. Chame o put-user-policycomando, especificando o nome do IAM usuário (com a --user-name opção), um nome para a política (com a --policy-name opção) e o caminho para o documento de política recém-criado (com a --policy-document opção). Por exemplo, supondo que o arquivo CodeDeploy-OnPrem-Permissions.json esteja no mesmo diretório (pasta) a partir do qual você está chamando esse comando:

    Importante

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

    aws iam put-user-policy --user-name CodeDeployUser-OnPrem --policy-name CodeDeploy-OnPrem-Permissions --policy-document file://CodeDeploy-OnPrem-Permissions.json
Para atribuir permissões (console)
  1. Abra o IAM console em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Policies e, em seguida, Create Policy. (Se aparecer um botão Get Started, selecione-o e, em seguida, Create Policy.)

  3. Próximo a Create Your Own Policy, escolha Select.

  4. Na caixa Policy Name (Nome da política), digite um nome para essa política (por exemplo, CodeDeploy-OnPrem-Permissions).

  5. Na caixa Documento de política, digite ou cole a seguinte expressão de permissões, que permite AWS CodeDeploy implantar revisões de aplicativos de qualquer bucket do Amazon S3 especificado na política para a instância local em nome do usuário: IAM

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
  6. Escolha Create Policy (Criar política).

  7. No painel de navegação, escolha Users.

  8. Na lista de usuários, navegue até o nome do IAM usuário que você criou e escolha-oEtapa 1: criar um IAM usuário para a instância local.

  9. Na guia Permissões, em Políticas gerenciadas, escolha Anexar política.

  10. Selecione a política chamada CodeDeploy-OnPrem-Permissions e, em seguida, escolha Attach Policy (Anexar política).

Etapa 3: obter as credenciais IAM do usuário

Obtenha o ID da chave secreta e a chave de acesso secreta para o IAM usuário. Você precisará deles para Etapa 4: adicionar um arquivo de configuração à instância on-premises. Você pode usar o AWS CLI ou o IAM console para obter o ID da chave secreta e a chave de acesso secreta.

nota

Se você já tem o ID de chave secreta e a chave de acesso secreta, pula etapa e vá diretamente para Etapa 4: adicionar um arquivo de configuração à instância on-premises.

Os usuários precisam de acesso programático se quiserem interagir com pessoas AWS fora do AWS Management Console. A forma de conceder acesso programático depende do tipo de usuário que está acessando AWS.

Para conceder acesso programático aos usuários, selecione uma das seguintes opções:

Qual usuário precisa de acesso programático? Para Por

Identificação da força de trabalho

(Usuários gerenciados no IAM Identity Center)

Use credenciais temporárias para assinar solicitações programáticas para o AWS CLI AWS SDKs, ou. AWS APIs

Siga as instruções da interface que deseja utilizar.

IAM Use credenciais temporárias para assinar solicitações programáticas para o AWS CLI AWS SDKs, ou. AWS APIs Siga as instruções em Uso de credenciais temporárias com AWS recursos no Guia do IAM usuário.
IAM

(Não recomendado)

Use credenciais de longo prazo para assinar solicitações programáticas para o AWS CLI, AWS SDKs, ou. AWS APIs

Siga as instruções da interface que deseja utilizar.

Para obter as credenciais () CLI
  1. Chame o list-access-keyscomando, especificando o nome do IAM usuário (com a --user-name opção) e consultando apenas a chave de acesso IDs (com as --output opções --query e). Por exemplo:

    aws iam list-access-keys --user-name CodeDeployUser-OnPrem --query "AccessKeyMetadata[*].AccessKeyId" --output text
  2. Se nenhuma chave aparecer na saída ou informações sobre apenas uma chave aparecerem na saída, chame o create-access-keycomando, especificando o nome do IAM usuário (com a --user-name opção):

    aws iam create-access-key --user-name CodeDeployUser-OnPrem

    Na saída da chamada para o comando create-access-key, anote os valores dos campos AccessKeyId e SecretAccessKey. Você precisará dessas informações em Etapa 4: adicionar um arquivo de configuração à instância on-premises.

    Importante

    Esta será a única vez que você terá acesso a essa chave de acesso secreta. Se você esquecer ou perder o acesso a essa chave de acesso secreta, precisará gerar uma nova, seguindo as etapas em Etapa 3: obter as credenciais IAM do usuário.

  3. Se duas chaves de acesso já estiverem listadas, você deverá excluir uma delas chamando o delete-access-keycomando, especificando o nome do IAM usuário (com a --user-name opção) e o ID da chave de acesso a ser excluída (com a --access-key-id opção). Em seguida, chame o comando create-access-key, conforme descrito anteriormente nessa etapa. Aqui está um exemplo de como chamar o comando delete-access-key:

    aws iam delete-access-key --user-name CodeDeployUser-OnPrem --access-key-id access-key-ID
    Importante

    Se você chamar o delete-access-key comando para excluir uma dessas chaves de acesso e uma instância local já estiver usando essa chave de acesso conforme descrito emEtapa 4: adicionar um arquivo de configuração à instância on-premises, você precisará seguir as instruções Etapa 4: adicionar um arquivo de configuração à instância on-premises novamente para especificar uma ID de chave de acesso e uma chave de acesso secreta diferentes associadas a esse IAM usuário. Caso contrário, quaisquer implementações nessa instância local poderão ficar presas em um estado pendente perpétuo ou falhar completamente.

Para obter as credenciais (console)
    1. Abra o IAM console em https://console.aws.amazon.com/iam/.

    2. Se a lista de usuários não for exibida, no painel de navegação, escolha Usuários.

    3. Na lista de usuários, navegue até o nome do IAM usuário que você criou e escolha-oEtapa 1: criar um IAM usuário para a instância local.

  1. Na guia Credenciais de segurança, se nenhuma chave ou apenas uma chave for listada, escolha Criar chave de acesso.

    Se duas chaves de acesso estiverem listadas, você deverá excluir uma delas. Escolha Excluir ao lado de uma das chaves de acesso e, em seguida, escolha Criar chave de acesso.

    Importante

    Se você escolher Excluir ao lado de uma dessas chaves de acesso e uma instância local já estiver usando essa chave de acesso conforme descrito emEtapa 4: adicionar um arquivo de configuração à instância on-premises, você precisará seguir as instruções Etapa 4: adicionar um arquivo de configuração à instância on-premises novamente para especificar uma ID de chave de acesso e uma chave de acesso secreta diferentes associadas a esse IAM usuário. Caso contrário, as implementações nessa instância local poderão ficar presas em um estado pendente perpétuo ou falhar completamente.

  2. Escolha Mostrar e anote o ID de chave de acesso e a chave de acesso secreta. Você precisará dessas informações para a próxima etapa. Como alternativa, você pode escolher Fazer download do arquivo .csv para salvar uma cópia do ID de chave de acesso e da chave de acesso secreta.

    Importante

    A menos que você anote ou baixe as credenciais, este será seu único acesso a essa chave de acesso secreta. Se você esquecer ou perder o acesso a essa chave de acesso secreta, precisará gerar uma nova, seguindo as etapas em Etapa 3: obter as credenciais IAM do usuário.

  3. Escolha Fechar para retornar aos Usuários > IAM User Namepágina.

Etapa 4: adicionar um arquivo de configuração à instância on-premises

Adicione um arquivo de configuração à instância on-premises usando permissões raiz ou de administrador. Esse arquivo de configuração será usado para declarar as credenciais IAM do usuário e a AWS região de destino a ser usada. CodeDeploy O arquivo deve ser adicionado a um local específico na instância on-premises. O arquivo deve incluir o ID da chave secreta do IAM ARN usuário, a chave de acesso secreta e a AWS região de destino. O arquivo deve seguir um formato específico.

  1. Crie um arquivo chamado codedeploy.onpremises.yml (para um Ubuntu Server ou instância RHEL local) ou conf.onpremises.yml (para uma instância local do Windows Server) no seguinte local na instância local:

    • Para Ubuntu Server: /etc/codedeploy-agent/conf

    • Para Windows Server: C:\ProgramData\Amazon\CodeDeploy

  2. Use um editor de texto para adicionar as seguintes informações ao arquivo codedeploy.onpremises.yml ou conf.onpremises.yml recém-criado:

    --- aws_access_key_id: secret-key-id aws_secret_access_key: secret-access-key iam_user_arn: iam-user-arn region: supported-region

    Em que:

    Importante

    Se você escolher Excluir ao lado de uma das chaves de acesso e sua instância local já estiver usando a ID da chave de acesso e a chave de acesso secreta associadas, você precisará seguir as instruções Etapa 4: adicionar um arquivo de configuração à instância on-premises para especificar uma ID de chave de acesso e uma chave de acesso secreta diferentes associadas a esse IAM usuário. Etapa 3: obter as credenciais IAM do usuário Caso contrário, quaisquer implementações na sua instância local poderão ficar presas em um estado pendente perpétuo ou falhar completamente.

Etapa 5: instalar e configurar o AWS CLI

Instale e configure o AWS CLI na instância local. (Eles AWS CLI serão usados Etapa 7: instalar o CodeDeploy agente para baixar e instalar o CodeDeploy agente na instância local.)

  1. Para instalar o AWS CLI na instância local, siga as instruções em Como configurar com o AWS CLI no Guia do AWS Command Line Interface usuário.

    nota

    CodeDeploy comandos para trabalhar com instâncias locais foram disponibilizados na versão 1.7.19 do. AWS CLI Se você tiver uma versão do AWS CLI já instalada, poderá verificar sua versão ligando paraaws --version.

  2. Para configurar o AWS CLI na instância local, siga as instruções em Configurando o AWS CLI no Guia do AWS Command Line Interface usuário.

    Importante

    Ao configurar o AWS CLI (por exemplo, chamando o aws configure comando), certifique-se de especificar o ID da chave secreta e a chave de acesso secreta de um IAM usuário que tenha, no mínimo, as seguintes permissões de AWS acesso, além das permissões de acesso especificadas noPré-requisitos para configurar uma instância on-premises. Isso possibilita que você baixe e instale o CodeDeploy agente na instância local:

    { "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "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-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-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }

    Essas permissões de acesso podem ser atribuídas ao IAM usuário que você criou Etapa 1: criar um IAM usuário para a instância local ou a um IAM usuário diferente. Para atribuir essas permissões a um IAM usuário, siga as instruções emEtapa 1: criar um IAM usuário para a instância local, usando essas permissões de acesso em vez das dessa etapa.

Etapa 6: definir a variável de AWS_REGION ambiente (RHELsomente Ubuntu Server)

Se você não estiver executando o Ubuntu Server ou RHEL em sua instância local, pule esta etapa e vá diretamente para. Etapa 7: instalar o CodeDeploy agente

Instale o CodeDeploy agente em um Ubuntu Server ou em uma instância RHEL local e permita que a instância atualize o CodeDeploy agente sempre que uma nova versão estiver disponível. Você faz isso definindo a variável de AWS_REGION ambiente na instância como o identificador de uma das regiões suportadas pelo CodeDeploy. Recomendamos que você defina o valor para a região em que seus CodeDeploy aplicativos, grupos de implantação e revisões de aplicativos estão localizados (por exemplo,us-west-2). Para obter uma lista de regiões, consulte Região e endpoints, na Referência geral da AWS.

Para definir a variável de ambiente, chame o seguinte usando o terminal:

export AWS_REGION=supported-region

Em que supported-region é o identificador da região (por exemplo,us-west-2).

Etapa 7: instalar o CodeDeploy agente

Instale o CodeDeploy agente na instância local:

Etapa 8: registrar a instância local com CodeDeploy

As instruções nesta etapa supõem que você esteja registrando a instância on-premises a partir dela mesma. Você pode registrar uma instância local a partir de um dispositivo ou instância separada que a tenha AWS CLI instalada e configurada, conforme descrito emEtapa 5: instalar e configurar o AWS CLI.

Use o AWS CLI para registrar a instância local CodeDeploy para que ela possa ser usada em implantações.

  1. Antes de usar o AWS CLI, você precisará do usuário ARN do IAM usuário em que você criouEtapa 1: criar um IAM usuário para a instância local. Se você ainda não tiver o usuárioARN, chame o comando get-user, especificando o nome do IAM usuário (com a --user-name opção) e consultando apenas o usuário ARN (com as --query opções e): --output

    aws iam get-user --user-name CodeDeployUser-OnPrem --query "User.Arn" --output text
  2. Use o comando register-on-premises-instance, especificando:

    • Um nome que identifique de forma exclusiva a instância on premises (com a opção --instance-name).

      Importante

      Para ajudar a identificar a instância local, especialmente para fins de depuração, recomendamos que você especifique um nome que seja mapeado para alguma característica exclusiva da instância local (por exemplo, o número de série ou um identificador interno de ativo, se aplicável). Se você especificar um MAC endereço como nome, saiba que os MAC endereços contêm caracteres que CodeDeploy não são permitidos, como dois pontos (:). Para obter uma lista de caracteres permitidos, consulte CodeDeploy cotas.

    • O usuário ARN do IAM usuário em que você criou Etapa 1: criar um IAM usuário para a instância local (com a --iam-user-arn opção).

      Por exemplo:

      aws deploy register-on-premises-instance --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem

Etapa 9: marcar a instância on-premises

Você pode usar o console AWS CLI ou o CodeDeploy console para marcar a instância local. (CodeDeployusa tags de instância local para identificar os alvos de implantação durante uma implantação.)

Para marcar a instância local () CLI
  • Chame o comando add-tags-to-on-premises-instances, especificando:

    • O nome que identifica de forma exclusiva a instância on-premises (com a opção --instance-names).

    • O nome da chave da tag de instância on-premises e o valor da tag que você deseja usar (com a opção --tags). Você deve especificar um nome e um valor. CodeDeploy não permite tags de instância local que tenham somente valores.

      Por exemplo:

      aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem
Para marcar a instância on-premises (console)
  1. Faça login no AWS Management Console e abra o CodeDeploy console em https://console.aws.amazon.com/codedeploy.

    nota

    Faça login com o mesmo usuário que você configurou em Começando com CodeDeploy.

  2. CodeDeploy No menu, escolha Instâncias locais.

  3. Na lista de instâncias locais, escolha a seta ao lado da instância local que você deseja marcar.

  4. Na lista de tags, selecione ou insira a chave e o valor da tag desejados. Após inserir a chave e o valor da tag, outra linha será exibida. Isso pode ser repetido para até 10 tags. Para remover uma tag, selecione o ícone de exclusão ( The delete icon. ).

  5. Depois de adicionar as tags, escolha Atualizar tags.

Etapa 10: implantar revisões de aplicações na instância on-premises

Agora, você está pronto para implantar revisões de aplicativo na instância on-premises registrada e marcada.

Você implanta revisões de aplicativos em instâncias locais de uma forma semelhante à implantação de revisões de aplicativos em instâncias da Amazon. EC2 Para obter instruções, consulte Crie uma implantação com CodeDeploy. Essas instruções incluem um link para pré-requisitos, que incluem: criar um aplicativo, criar um grupo de implantação e preparar uma revisão de aplicativo. Se você precisa de uma simples revisão de aplicativo de amostra para implantar, poderá criar aquela descrito em Etapa 2: criar uma revisão de aplicativo de amostra, no Tutorial: Implantar um aplicativo em uma instância local com CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux).

Importante

Se você reutilizar uma função de CodeDeploy serviço como parte da criação de um grupo de implantação que tenha como alvo instâncias locais, deverá Tag:get* incluí-la na Action parte da declaração de política da função de serviço. Para obter mais informações, consulte Etapa 2: criar uma função de serviço para CodeDeploy.

Etapa 11: acompanhar implantações na instância on-premises

Depois de implantar uma revisão de aplicativo em instâncias on-premises registradas e marcadas, você poderá controlar o progresso da implantação.

Você rastreia implantações em instâncias locais de uma forma semelhante ao rastreamento de implantações em instâncias da Amazon. EC2 Para obter instruções, consulte Exibir detalhes CodeDeploy da implantação .