

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Registro privato con Gestione dei segreti AWS esempio per CodeBuild
<a name="sample-private-registry"></a>

 Questo esempio mostra come utilizzare un'immagine Docker archiviata in un registro privato come ambiente AWS CodeBuild di runtime. Le credenziali del registro privato sono archiviate in Gestione dei segreti AWS. Qualsiasi registro privato funziona con CodeBuild. Questo esempio si basa su Docker Hub. 

**Nota**  
I segreti sono visibili alle azioni e non vengono mascherati quando vengono scritti su un file.

**Topics**
+ [Requisiti per un esempio di registro privato](#sample-private-registry-requirements)
+ [Crea un CodeBuild progetto con un registro privato](private-registry-sample-create-project.md)
+ [Configura una credenziale di registro privata per i corridori ospitati autonomamente](private-registry-sample-configure-runners.md)

## Requisiti per un esempio di registro privato
<a name="sample-private-registry-requirements"></a>

 Per utilizzare un registro privato con AWS CodeBuild, è necessario disporre di quanto segue: 
+  Un segreto di Secrets Manager che memorizza le credenziali del Docker Hub. Le credenziali vengono utilizzate per accedere al repository privato. 
**Nota**  
Ti verranno addebitati i segreti che crei.
+  Un repository o un account privato. 
+  Una policy IAM relativa ai ruoli di CodeBuild servizio che concede l'accesso al segreto di Secrets Manager. 

 Segui questi passaggi per creare queste risorse e quindi creare un progetto di CodeBuild compilazione utilizzando le immagini Docker archiviate nel tuo registro privato. 

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

1. Per informazioni su come creare un repository privato gratuito, consulta la pagina relativa ai [repository su Docker Hub](https://docs.docker.com/docker-hub/repos/). Puoi anche eseguire i seguenti comandi in un terminale per estrarre un'immagine, ottenerne l'ID e inserirla in un nuovo repository. 

   ```
   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.  Segui la procedura descritta in [Creare un Gestione dei segreti AWS segreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) nella *Guida Gestione dei segreti AWS per l'utente*.

   

   1.  Nel passaggio 3, in **Scegli il tipo di segreto**, scegli **Altro tipo di segreto**. 

   1. Nelle **coppie chiave/valore**, crea una coppia chiave-valore per il nome utente di Docker Hub e una coppia chiave-valore per la password di Docker Hub. 

   1.  [Continua a seguire i passaggi descritti in Creare un segreto. Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) 

   1.  Nel passaggio 5, nella pagina **Configura rotazione automatica**, disattivala perché le chiavi corrispondono alle credenziali del tuo Docker Hub. 

   1.  Completa la procedura descritta in [Creare un Gestione dei segreti AWS segreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). 

    Per maggiori informazioni, consulta [Che cos’è Gestione dei segreti AWS?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) 

1.  Quando crei un AWS CodeBuild progetto nella console, CodeBuild assegna l'autorizzazione richiesta. Se si utilizza una AWS KMS chiave diversa da`DefaultEncryptionKey`, è necessario aggiungerla al ruolo di servizio. Per ulteriori informazioni, consulta [Modificare un ruolo (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-managingrole-editing-console) nella *Guida per l'utente IAM*. 

    Affinché il ruolo di servizio funzioni con Secrets Manager, deve disporre almeno dell'`secretsmanager:GetSecretValue`autorizzazione.   
![\[La configurazione del ruolo di servizio.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/private-registry-sample-iam.png)

1.  Per utilizzare la console per la creazione di un progetto in un ambiente archiviato in un registro privato, esegui la seguente procedura durante l'operazione. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console). 
**Nota**  
 Se il registro privato si trova nel tuo VPC, deve disporre di un accesso pubblico a Internet. CodeBuild non è possibile estrarre un'immagine da un indirizzo IP privato in un VPC. 

   1.  In **Immagine dell'ambiente**, scegli **Immagine personalizzata**. 

   1.  In **Environment type (Tipo ambiente)**, seleziona **Linux** o **Windows**. 

   1.  Per **Registro delle immagini**, scegli **Altro registro**. 

   1.  In **URL di registro esterno**, inserisci la posizione dell'immagine e in **Credenziali di registro (facoltativo)** inserisci l'ARN o il nome delle tue credenziali di Secrets Manager.
**Nota**  
 Se le credenziali non esistono nella regione corrente, devi utilizzare l'ARN. Non puoi utilizzare il nome delle credenziali se esistono in un'altra regione. 

# Configura una credenziale di registro privata per i corridori ospitati autonomamente
<a name="private-registry-sample-configure-runners"></a>

Usa le seguenti istruzioni per configurare una credenziale di registro per un runner ospitato autonomamente.

**Nota**  
Tieni presente che queste credenziali verranno utilizzate solo se le immagini vengono sostituite con quelle dei registri privati. 

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

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

1. Crea un progetto di compilazione o seleziona un progetto esistente. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console) e [Modifica delle impostazioni di un progetto di compilazione (console)](change-project.md#change-project-console).

1.  In **Ambiente**, scegli **Configurazione aggiuntiva**. 

1.  In **Configurazione aggiuntiva**, immettere il nome o l'ARN del codice segreto Gestione dei segreti AWS per la **credenziale del Registro** di sistema (facoltativo).  
![\[La configurazione delle credenziali del registro.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/registry-credential.png)

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

1. Se desideri creare un nuovo progetto, esegui il 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 desideri aggiornare un progetto esistente, esegui il 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}"
   ```

------