

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á.

# Registro privado com AWS Secrets Manager amostra para CodeBuild
<a name="sample-private-registry"></a>

 Este exemplo mostra como usar uma imagem do Docker armazenada em um registro privado como seu ambiente AWS CodeBuild de execução. As credenciais para o registro privado são armazenadas no AWS Secrets Manager. Qualquer registro privado funciona com CodeBuild. Esse exemplo usa o Docker Hub. 

**nota**  
Os segredos são visíveis para ações e não são mascarados quando gravados em um arquivo.

**Topics**
+ [Requisitos do exemplo do registro privado](#sample-private-registry-requirements)
+ [Crie um CodeBuild projeto com um registro privado](private-registry-sample-create-project.md)
+ [Configurar uma credencial de registro privada para executores auto-hospedados](private-registry-sample-configure-runners.md)

## Requisitos do exemplo do registro privado
<a name="sample-private-registry-requirements"></a>

 Para usar um registro privado com AWS CodeBuild, você deve ter o seguinte: 
+  Um segredo do Secrets Manager que armazena suas credenciais do Docker Hub. As credenciais são usados para acessar seu repositório privado. 
**nota**  
Você será cobrado pelos segredos criados.
+  Um repositório ou conta privada. 
+  Uma política do IAM de função de CodeBuild serviço que concede acesso ao seu segredo do Secrets Manager. 

 Siga estas etapas para criar esses recursos e, em seguida, criar um projeto de CodeBuild compilação usando as imagens do Docker armazenadas em seu registro privado. 

# Crie um CodeBuild projeto com um registro privado
<a name="private-registry-sample-create-project"></a>

1. Para obter informações sobre como criar um repositório privado gratuito, consulte [repositórios no Docker Hub](https://docs.docker.com/docker-hub/repos/). Você também pode executar os comandos a seguir em um terminal para extrair uma imagem, obter seu ID e enviá-la a um novo repositório. 

   ```
   docker pull amazonlinux
   docker images amazonlinux --format {{.ID}}
   docker tag image-id your-username/repository-name:tag
   docker login
   docker push your-username/repository-name
   ```

1.  Siga as etapas em [Criar um AWS Secrets Manager segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) no *Guia do AWS Secrets Manager usuário*.

   

   1.  Na etapa 3, em **Escolher tipo de segredo**, selecione **Outro tipo de segredo**. 

   1. Em **Chave/valor do segredo**, crie um par de chave/valor para o nome de usuário do Docker Hub e um par de chave/valor para a senha do Docker Hub. 

   1.  Continue seguindo as etapas em [Criar um AWS Secrets Manager segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). 

   1.  Na etapa 5, na página **Configurar alternância automática**, desative-a porque as chaves correspondem às credenciais do Docker Hub. 

   1.  Conclua seguindo as etapas em [Criar um AWS Secrets Manager segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). 

    Para ter mais informações, consulte [O que é o AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) 

1.  Quando você cria um AWS CodeBuild projeto no console, CodeBuild anexa a permissão necessária para você. Se você usar uma AWS KMS chave diferente de`DefaultEncryptionKey`, deverá adicioná-la à função de serviço. Para obter mais informações, consulte [Modifying a role (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-managingrole-editing-console) no *Guia do usuário do IAM*. 

    Para que o perfil de serviço funcione com o Secrets Manager, ele deverá ter, no mínimo, a permissão `secretsmanager:GetSecretValue`.   
![\[A configuração do perfil de serviço.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/private-registry-sample-iam.png)

1.  Para usar o console para criar um projeto com um ambiente armazenado em um registro privado, faça o seguinte enquanto você cria um projeto. Para mais informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console). 
**nota**  
 Se seu registro privado estiver em sua VPC, ele deverá ter acesso público à Internet. CodeBuild não é possível extrair uma imagem de um endereço IP privado em uma VPC. 

   1.  Em **Imagem de ambiente**, selecione **Imagem personalizada**. 

   1.  Para **Environment type (Tipo de ambiente)**, selecione **Linux** ou **Windows**. 

   1.  Em **Registro de imagens**, selecione **Outro registro**. 

   1.  Em **URL de registro externo**, insira o local da imagem e, em **Credencial do registro: opcional**, insira o ARN ou o nome das credenciais do Secrets Manager.
**nota**  
 Se as suas credenciais não existirem em sua região atual, será necessário usar o ARN. Não será possível usar o nome da credencial se as credenciais existirem em uma região diferente. 

# Configurar uma credencial de registro privada para executores auto-hospedados
<a name="private-registry-sample-configure-runners"></a>

Use as instruções apresentadas a seguir para configurar uma credencial de registro para um executor auto-hospedado.

**nota**  
Observe que essas credenciais só serão usadas se as imagens forem substituídas pelas de registros privados. 

------
#### [ AWS Management Console ]

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Crie um projeto de compilação ou selecione um já existente. Para obter informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console) e [Alterar configurações de um projeto de compilação (console)](change-project.md#change-project-console).

1.  Em **Ambiente**, escolha **Configuração adicional**. 

1.  Em **Configuração adicional**, insira o nome ou ARN do formulário secreto AWS Secrets Manager para a **credencial do Registro** - opcional.  
![\[A configuração da credencial do registro.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/registry-credential.png)

------
#### [ AWS CLI ]

1. Se você quiser criar um projeto, execute o comando **create-project**.

   ```
   aws codebuild create-project \
       --name project-name \
       --source type=source-type,location=source-location \
       --environment "type=environment-type,image=image,computeType=compute-type,registryCredential={credentialProvider=SECRETS_MANAGER,credential=secret-name-or-arn},imagePullCredentialsType=CODEBUILD|SERVICE_ROLE" \
       --artifacts type=artifacts-type \
       --service-role arn:aws:iam::account-ID:role/service-role/service-role-name
   ```

1. Se você quiser atualizar um projeto já existente, execute o comando **update-project**.

   ```
   aws codebuild update-project \
       --name project-name \
       --environment "type=environment-type,image=image,computeType=compute-type,registryCredential={credentialProvider=SECRETS_MANAGER,credential=secret-name-or-arn}"
   ```

------