

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

 En este ejemplo, se muestra cómo utilizar una imagen de Docker almacenada en un registro privado como entorno AWS CodeBuild de ejecución. Las credenciales del registro privado están almacenadas en AWS Secrets Manager. Cualquier registro privado funciona con CodeBuild. En esta muestra se utiliza Docker Hub. 

**nota**  
Los secretos son visibles para las acciones y no se ocultan cuando se escriben en un archivo.

**Topics**
+ [Requisitos del ejemplo de un registro privado](#sample-private-registry-requirements)
+ [Crea un CodeBuild proyecto con un registro privado](private-registry-sample-create-project.md)
+ [Configuración de una credencial de registro privada para ejecutores autoalojados](private-registry-sample-configure-runners.md)

## Requisitos del ejemplo de un registro privado
<a name="sample-private-registry-requirements"></a>

 Para usar un registro privado con AWS CodeBuild, debe tener lo siguiente: 
+  Un secreto de Secrets Manager que almacena sus credenciales de Docker Hub. Las credenciales se utilizan para acceder al repositorio privado. 
**nota**  
Se le cobrará por los secretos que cree.
+  Un repositorio privado o una cuenta. 
+  Una política de IAM de rol de CodeBuild servicio que otorga acceso a tu secreto de Secrets Manager. 

 Siga estos pasos para crear estos recursos y, a continuación, cree un proyecto de CodeBuild compilación con las imágenes de Docker almacenadas en su registro privado. 

# Crea un CodeBuild proyecto con un registro privado
<a name="private-registry-sample-create-project"></a>

1. Para obtener información sobre cómo crear un repositorio privado gratuito, consulte [Repositorios en Docker Hub](https://docs.docker.com/docker-hub/repos/). También puede ejecutar los siguientes comandos en un terminal para extraer una imagen, obtener su ID y enviarla a un nuevo repositorio. 

   ```
   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 los pasos que se indican en [Crear un AWS Secrets Manager secreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) en la *Guía del AWS Secrets Manager usuario*.

   

   1.  En el paso 3, en **Elija tipo de secreto**, seleccione **Otro tipo de secreto**. 

   1. En **Pares clave/valor**, cree un par clave-valor para el nombre de usuario de Docker Hub y otro par clave-valor para la contraseña de Docker Hub. 

   1.  Sigue los pasos de [Crear un AWS Secrets Manager secreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). 

   1.  En el paso 5, en la página **Configurar la rotación automática**, desactívala porque las claves corresponden a sus credenciales de Docker Hub. 

   1.  Termina de seguir los pasos de [Crear un AWS Secrets Manager secreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). 

    Para obtener más información, consulte [¿Qué es AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) 

1.  Cuando creas un AWS CodeBuild proyecto en la consola, te CodeBuild adjunta el permiso necesario. Si usa una AWS KMS clave que no sea`DefaultEncryptionKey`, debe agregarla al rol de servicio. Para obtener más información, consulte [Modificación de un rol (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-managingrole-editing-console) en la *Guía del usuario de IAM*. 

    Para que su rol de servicio funcione con Secrets Manager, debe tener, como mínimo, el permiso `secretsmanager:GetSecretValue`.   
![\[La configuración del rol de servicio\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/private-registry-sample-iam.png)

1.  Para usar la consola para crear un proyecto con un entorno almacenado en un registro privado, haga lo siguiente mientras crea un proyecto. Para obtener información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console). 
**nota**  
 Si su registro privado está en su VPC, debe tener acceso público a Internet. CodeBuild no puede extraer una imagen de una dirección IP privada en una VPC. 

   1.  En **Imagen de entorno**, elija **Imagen personalizada**. 

   1.  En **Environment type (Tipo de entorno)**, elija **Linux** o **Windows**. 

   1.  En **Registro de imágenes**, elija **Otro registro**. 

   1.  En **URL de registro externa**, introduzca la ubicación de la imagen y en **Credencial de registro (opcional)**, introduzca el ARN o el nombre de sus credenciales de Secrets Manager.
**nota**  
 Si las credenciales no existen en la región actual, debe usar el ARN. No puede utilizar el nombre de la credencial si las credenciales existen en otra región. 

# Configuración de una credencial de registro privada para ejecutores autoalojados
<a name="private-registry-sample-configure-runners"></a>

Utilice las siguientes instrucciones para configurar una credencial de registro para un ejecutor autoalojado.

**nota**  
Tenga en cuenta que esta credencial solo se utilizará si las imágenes se sustituyen por las de registros privados. 

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

1. Abra la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Cree un proyecto de compilación o seleccione uno existente. Para obtener más información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y [Cambiar la configuración de un proyecto de compilación (consola)](change-project.md#change-project-console).

1.  En **Entorno**, elija **Configuración adicional**. 

1.  En **Configuración adicional**, introduzca el nombre o el ARN del secreto de la **credencial AWS Secrets Manager de registro** (opcional).  
![\[La configuración de credenciales de registro.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/registry-credential.png)

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

1. Si desea crear un proyecto nuevo, ejecute el 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. Si desea actualizar un proyecto existente, ejecuta el 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}"
   ```

------