

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Registre privé avec AWS Secrets Manager échantillon pour CodeBuild
<a name="sample-private-registry"></a>

 Cet exemple vous montre comment utiliser une image Docker stockée dans un registre privé comme environnement AWS CodeBuild d'exécution. Les informations d'identification du registre privé sont stockées dans AWS Secrets Manager. N'importe quel registre privé fonctionne avec CodeBuild. Cet exemple utilise Docker Hub. 

**Note**  
Les secrets sont visibles par les actions et ne sont pas masqués lorsqu'ils sont écrits dans un fichier.

**Topics**
+ [Exigences de l'exemple de registre privé](#sample-private-registry-requirements)
+ [Création d'un CodeBuild projet avec un registre privé](private-registry-sample-create-project.md)
+ [Configurer un identifiant de registre privé pour les coureurs auto-hébergés](private-registry-sample-configure-runners.md)

## Exigences de l'exemple de registre privé
<a name="sample-private-registry-requirements"></a>

 Pour utiliser un registre privé avec AWS CodeBuild, vous devez disposer des éléments suivants : 
+  Un secret du Gestionnaire de Secrets qui stocke vos informations d'identification Docker Hub. Les informations d'identification sont utilisées pour accéder à votre référentiel privé. 
**Note**  
Les secrets que vous créez vous seront facturés.
+  Un référentiel ou un compte privé. 
+  Une politique IAM de rôle de CodeBuild service qui accorde l'accès à votre secret Secrets Manager. 

 Suivez ces étapes pour créer ces ressources, puis créez un projet de CodeBuild construction à l'aide des images Docker stockées dans votre registre privé. 

# Création d'un CodeBuild projet avec un registre privé
<a name="private-registry-sample-create-project"></a>

1. Pour plus d'informations sur la création d'un référentiel privé, consultez [Référentiels sur Docker Hub](https://docs.docker.com/docker-hub/repos/). Vous pouvez également exécuter les commandes suivantes dans un terminal pour extraire une image, obtenir son ID et la transmettre à un nouveau référentiel. 

   ```
   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.  Suivez les étapes décrites dans la [section Créer un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) dans le *guide de AWS Secrets Manager l'utilisateur*.

   

   1.  À l'étape 3, dans **Choisir le type de secret**, choisissez **Autre type de secret**. 

   1. Dans les **paires clé/valeur**, créez une paire clé-valeur pour votre nom d'utilisateur Docker Hub et une paire clé-valeur pour votre mot de passe Docker Hub. 

   1.  Continuez à suivre les étapes décrites dans [Créer un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). 

   1.  À l'étape 5, sur la page **Configurer la rotation automatique**, désactivez-la car les clés correspondent à vos informations d'identification Docker Hub. 

   1.  Terminez en suivant les étapes décrites dans [Créer un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). 

    Pour plus d’informations, consultez [Qu’est-ce qu’ AWS Secrets Manager ?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) 

1.  Lorsque vous créez un AWS CodeBuild projet dans la console, il CodeBuild joint l'autorisation requise pour vous. Si vous utilisez une AWS KMS clé autre que`DefaultEncryptionKey`, vous devez l'ajouter au rôle de service. Pour plus d'informations, consultez la section [Modification d'un rôle (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-managingrole-editing-console) dans le *guide de l'utilisateur IAM*. 

    Pour que votre rôle de service fonctionne avec Secrets Manager, il doit au minimum disposer de l'`secretsmanager:GetSecretValue`autorisation.   
![\[Configuration du rôle de service.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/private-registry-sample-iam.png)

1.  Pour utiliser la console afin de créer un projet avec un environnement stocké dans un registre privé, effectuez les opérations suivantes lorsque vous créez un projet. Pour plus d'informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console). 
**Note**  
 Si votre registre privé se trouve dans votre VPC, celui-ci doit disposer d'un accès public à Internet. CodeBuild Impossible d'extraire une image d'une adresse IP privée dans un VPC. 

   1.  Dans **Image d'environnement**, sélectionnez **Image personnalisée**. 

   1.  Pour **Type d'environnement**, choisissez **Linux** ou **Windows**. 

   1.  Pour le **registre d'images**, choisissez **Autre registre**. 

   1.  Dans **URL de registre externe**, entrez l'emplacement de l'image et dans **Informations d'identification du registre. Entrez éventuellement** l'ARN ou le nom de vos informations d'identification de Secrets Manager.
**Note**  
 Si vos informations d'identification n'existent pas dans votre région actuelle, vous devez utiliser l'ARN. Vous ne pouvez pas utiliser le nom des informations d'identification si celles-ci existent dans une autre région. 

# Configurer un identifiant de registre privé pour les coureurs auto-hébergés
<a name="private-registry-sample-configure-runners"></a>

Suivez les instructions ci-dessous pour configurer un identifiant de registre pour un coureur auto-hébergé.

**Note**  
Notez que ces informations d'identification ne seront utilisées que si les images sont remplacées par celles provenant de registres privés. 

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

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de construction ou sélectionnez un projet existant. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Modification des paramètres d'un projet de génération (console)](change-project.md#change-project-console).

1.  Dans **Environnement**, sélectionnez **Configuration supplémentaire**. 

1.  Dans **Configuration supplémentaire**, entrez le nom ou l'ARN du formulaire secret AWS Secrets Manager pour les **informations d'identification du registre (facultatif)**.  
![\[Configuration des informations d'identification du registre.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/registry-credential.png)

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

1. Si vous souhaitez créer un nouveau projet, exécutez la commande **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 vous souhaitez mettre à jour un projet existant, exécutez la commande **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}"
   ```

------