

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

# Configura la distribuzione AMI tra account con Image Builder
<a name="cross-account-dist"></a>

Questa sezione descrive come configurare le impostazioni di distribuzione per fornire un'AMI Image Builder ad altri account specificati.

L'account di destinazione può quindi avviare o modificare l'AMI, se necessario.

**Suggerimento**  
Per informazioni su un esempio implementabile che include la policy AWS KMS chiave e il ruolo dell'account di destinazione, consulta l'esempio di AMI [ tra account su. ](https://github.com/aws-samples/amazon-ec2-image-builder-samples/tree/HEAD/distribution/cross-account-amis) GitHub Lo stesso repository include una variante Terraform. Per ulteriori informazioni, consulta [Esplora i progetti di esempio di Image Builder su GitHub](sample-projects.md).

**Nota**  
AWS CLI gli esempi di comandi in questa sezione presuppongono che abbiate precedentemente creato file JSON di configurazione dell'immagine e dell'infrastruttura. Per creare il file JSON per una ricetta di immagini, consulta. [Crea una ricetta di immagini con AWS CLI](create-image-recipes.md#create-image-recipe-cli) Per creare il file JSON per una configurazione dell'infrastruttura, consulta. [Creazione di una configurazione dell'infrastruttura](create-infra-config.md)

## Prerequisiti per la distribuzione AMI tra account
<a name="cross-account-dist-prereqs"></a>

Per garantire che gli account di destinazione possano avviare correttamente le istanze dall'immagine di Image Builder, è necessario configurare le autorizzazioni appropriate per tutti gli account di destinazione in tutte le regioni.

Se crittografi la tua AMI utilizzando AWS Key Management Service (AWS KMS), devi configurarne una AWS KMS key per il tuo account utilizzata per crittografare la nuova immagine.

Quando Image Builder esegue la distribuzione tra account per le AMI crittografate, l'immagine nell'account di origine viene decrittografata e inviata alla regione di destinazione, dove viene nuovamente crittografata utilizzando la chiave designata per quella regione. Poiché Image Builder agisce per conto dell'account di destinazione e utilizza un ruolo IAM creato dall'utente nella regione di destinazione, tale account deve avere accesso alle chiavi sia nella regione di origine che in quella di destinazione.

### Chiavi di crittografia
<a name="cross-account-prereqs-encryption"></a>

I seguenti prerequisiti sono necessari se l'immagine viene crittografata utilizzando AWS KMS. I prerequisiti IAM sono trattati nella sezione successiva.

**Requisiti dell'account di origine**
+ Crea una chiave KMS nel tuo account in tutte le regioni in cui crei e distribuisci il tuo AMI. Puoi anche utilizzare una chiave esistente.
+ Aggiorna la politica chiave per tutte queste chiavi per consentire agli account di destinazione di utilizzare la tua chiave.

**Requisiti degli account di destinazione**
+ Aggiungi una policy in linea `EC2ImageBuilderDistributionCrossAccountRole` che consenta al ruolo di eseguire le azioni richieste per distribuire un'AMI crittografata. Per le fasi di configurazione IAM, consulta la sezione dei [Policy IAM](#cross-account-prereqs-iam) prerequisiti.

Per ulteriori informazioni sull'utilizzo dell'accesso tra account AWS KMS, consulta [ Consentire agli utenti di altri account di utilizzare una chiave KMS ](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) nella Developer Guide. *AWS Key Management Service *

Specifica la tua chiave di crittografia nella ricetta dell'immagine, come segue:
+ Se utilizzi la console Image Builder, scegli la tua chiave di ** crittografia dall'elenco a ** discesa Crittografia (alias KMS) nella ** sezione ** Archiviazione (volumi) della ricetta.
+ Se stai utilizzando l'azione **CreateImageRecipe** API o il **create-image-recipe** comando in AWS CLI, configura la chiave nella `ebs` sezione sottostante nell'input `blockDeviceMappings` JSON.

  Il seguente frammento JSON mostra le impostazioni di crittografia per una ricetta di immagini. Oltre a fornire la chiave di crittografia, è necessario impostare il `encrypted` flag su. `true`

  ```
  {
  	...
  	"blockDeviceMappings": [
  	{
  		"deviceName": "Example root volume",
  		"ebs": { 
  			"deleteOnTermination": true,
  			"encrypted": true,
  			"iops": 100,
  			"kmsKeyId": "image-owner-key-id",
  			...
  		},
  		...
  	}],
  	...
  }
  ```

### Policy IAM
<a name="cross-account-prereqs-iam"></a>

Per configurare le autorizzazioni di distribuzione tra account in AWS Identity and Access Management (IAM), segui questi passaggi:

1. Per utilizzare le AMI di Image Builder distribuite tra gli account, il proprietario dell'account di destinazione deve creare un nuovo ruolo IAM nel proprio account chiamato. `EC2ImageBuilderDistributionCrossAccountRole`

1. Devono associarlo [Ec2ImageBuilderCrossAccountDistributionAccess policy](security-iam-awsmanpol.md#sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess) al ruolo per consentire la distribuzione tra account. Per ulteriori informazioni sulle politiche gestite, vedere Policy [ gestite e politiche in linea ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) nella Guida per l'*AWS Identity and Access Management utente. *

1. Verifica che l'ID dell'account di origine sia aggiunto alla politica di fiducia associata al ruolo IAM dell'account di destinazione. L'esempio seguente mostra una politica di fiducia nell'account di destinazione che specifica l'ID dell'account di origine.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "AWS": "arn:aws:iam::444455556666:root"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

------

   Per ulteriori informazioni sulle politiche di fiducia, vedere [ Resource-Based Policy ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) nella Guida * per l'*AWS Identity and Access Management utente.

1. Se l'AMI che distribuisci è crittografata, il proprietario dell'account di destinazione deve aggiungere la seguente politica in linea al proprio account `EC2ImageBuilderDistributionCrossAccountRole` in modo da poter utilizzare le tue chiavi KMS. La `Principal` sezione contiene il loro numero di conto. Ciò consente a Image Builder di agire per loro conto quando utilizza AWS KMS la crittografia e la decrittografia dell'AMI con le chiavi appropriate per ciascuna regione.

------
#### [ JSON ]

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Sid": "AllowRoleToPerformKMSOperationsOnBehalfOfTheDestinationAccount",
   			"Effect": "Allow",
   			"Action": [
   				"kms:Encrypt",
   				"kms:Decrypt",
   				"kms:ReEncrypt*",
   				"kms:GenerateDataKey*",
   				"kms:DescribeKey",
   				"kms:CreateGrant",
   				"kms:ListGrants",
   				"kms:RevokeGrant"
   			],
   			"Resource": "*"
   		}
   	]
   }
   ```

------

   Per ulteriori informazioni sulle politiche in linea, vedere [ Inline Policies nella Guida per l'utente. ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) *AWS Identity and Access Management *

1. Se intendi `launchTemplateConfigurations` specificare un modello di lancio di Amazon EC2, devi anche aggiungere la seguente policy al tuo account di `EC2ImageBuilderDistributionCrossAccountRole` destinazione.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateLaunchTemplateVersion",
                   "ec2:ModifyLaunchTemplate"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/CreatedBy": "EC2 Image Builder"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeLaunchTemplates"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateTags"
               ],
               "Resource": "arn:aws:ec2:*:*:launch-template/*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/CreatedBy": "EC2 Image Builder"
                   }
               }
           }
       ]
   }
   ```

------

1. Se utilizzi un AWS Systems Manager parametro Parameter Store per memorizzare l'ID AMI dell'AMI di output per l'account di distribuzione e la regione, devi aggiungere la seguente policy all'account `EC2ImageBuilderDistributionCrossAccountRole` di ciascun account di destinazione.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:PutParameter"
               ],
               "Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeImages"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## Limiti per la distribuzione tra account
<a name="cross-account-dist-limits"></a>

Esistono alcune limitazioni nella distribuzione delle immagini di Image Builder tra gli account:
+ L'account di destinazione è limitato a 50 copie AMI simultanee per ogni regione di destinazione.
+ Se si desidera copiare un'AMI di virtualizzazione paravirtuale (PV) in un'altra regione, la regione di destinazione deve supportare le AMI di virtualizzazione FV. Per ulteriori informazioni, consulta [Tipi di virtualizzazione delle AMI Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html).
+ Non è possibile creare una copia non crittografata di un'istantanea crittografata. Se non specifichi una chiave AWS Key Management Service (AWS KMS) gestita dal cliente per il `KmsKeyId` parametro, Image Builder utilizza la chiave predefinita per Amazon Elastic Block Store (Amazon EBS). Per ulteriori informazioni, consulta [Crittografia Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) nella *Guida per l'utente di Amazon Elastic Compute Cloud*.

Per ulteriori informazioni, consulta l'API [ CreateDistributionConfiguration ](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateDistributionConfiguration.html) Reference di * EC2 Image Builder. *

## Configura la distribuzione tra account per un'AMI Image Builder dalla console
<a name="cross-account-dist-console-create-ami"></a>

Questa sezione descrive come creare e configurare le impostazioni di distribuzione per la distribuzione tra account delle AMI di Image Builder utilizzando. Console di gestione AWS La configurazione della distribuzione tra account richiede autorizzazioni IAM specifiche. È necessario completare questa sezione prima [Prerequisiti per la distribuzione AMI tra account](#cross-account-dist-prereqs) di continuare.

Per creare le impostazioni di distribuzione nella console di Image Builder, segui questi passaggi:

1. Apri la console EC2 Image Builder all'indirizzo [ https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/).

1. Scegli Impostazioni ** di distribuzione ** dal pannello di navigazione. Questo mostra un elenco delle impostazioni di distribuzione create nel tuo account.

1. Nella parte superiore della ** pagina delle impostazioni di ** distribuzione, scegli ** Crea impostazioni di distribuzione**. Verrai reindirizzato alla ** pagina ** Crea impostazioni di distribuzione.

1. Nella ** sezione Tipo di ** immagine, scegli ** Amazon Machine Image (AMI) ** come tipo di ** output**. Questa è l'impostazione predefinita.

1. Nella ** sezione ** Generale, inserisci il ** nome ** della risorsa per le impostazioni di distribuzione che desideri creare (*obbligatorio*).

1. Nella ** sezione Impostazioni della ** regione, inserisci l'ID dell'account di 12 cifre a cui desideri distribuire l'AMI negli account ** Target ** per la regione selezionata e premi Invio**. ** Verifica la corretta formattazione e quindi visualizza l'ID dell'account che hai inserito sotto la casella. Ripeti la procedura per aggiungere altri account.

   Per rimuovere un account che hai inserito, scegli la ** X ** visualizzata a destra dell'ID dell'account.

   Inserisci il nome dell'AMI di ** uscita ** per ciascuna regione.

1. Continuate a specificare le impostazioni aggiuntive necessarie e scegliete ** Crea impostazioni ** per creare la nuova risorsa relativa alle impostazioni di distribuzione.

## Configura la distribuzione tra account per un'AMI Image Builder da AWS CLI
<a name="cross-account-dist-cli-ami-create"></a>

Questa sezione descrive come configurare un file delle impostazioni di distribuzione e utilizzare il **create-image** comando in AWS CLI per creare e distribuire un'AMI Image Builder tra gli account.

La configurazione della distribuzione tra account richiede autorizzazioni IAM specifiche. È necessario completare questa sezione prima di eseguire il comando. [Prerequisiti per la distribuzione AMI tra account](#cross-account-dist-prereqs) **create-image**

1. 

**Configurare un file delle impostazioni di distribuzione**

   Prima di utilizzare il **create-image** comando in AWS CLI per creare un'AMI Image Builder da distribuire su un altro account, è necessario creare una struttura `DistributionConfiguration` JSON che specifichi gli ID degli account di destinazione nelle `AmiDistributionConfiguration` impostazioni. È necessario specificarne almeno uno `AmiDistributionConfiguration` nella regione di origine.

   Il seguente file di esempio, denominato`create-distribution-configuration.json`, mostra la configurazione per la distribuzione delle immagini tra account nella regione di origine.

   ```
   {
   	"name": "cross-account-distribution-example",
   	"description": "Cross Account Distribution Configuration Example",
   	"distributions": [
   		{
   			"amiDistributionConfiguration": {
   				"targetAccountIds": ["123456789012", "987654321098"],
   				"name": "Name {{ imagebuilder:buildDate }}", 
   				"description": "ImageCopy Ami Copy Configuration"
   			}, 
   			"region": "us-west-2"
   		}
   	]
   }
   ```

1. 

**Crea le impostazioni di distribuzione**

   Per creare una risorsa per le impostazioni di distribuzione di Image Builder utilizzando il [ comando ](https://docs.aws.amazon.com/cli/latest/reference/imagebuilder/create-distribution-configuration.html) create-distribution-configuration nel AWS CLI, fornisci i seguenti parametri nel comando:
   + Inserite il nome della distribuzione nel parametro. `--name`
   + Allega il file JSON di configurazione della distribuzione che hai creato nel `--cli-input-json` parametro.

   ```
   aws imagebuilder create-distribution-configuration --name {{my distribution name}} --cli-input-json file://{{create-distribution-configuration.json}}
   ```
**Nota**  
È necessario includere l'annotazione `file://` all'inizio del percorso del file JSON.
Il percorso del file JSON deve seguire la convenzione appropriata per il sistema operativo di base in cui si esegue il comando. Ad esempio, Windows utilizza la barra rovesciata (\\) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra rovesciata (/).

*Puoi anche fornire JSON direttamente nel comando, utilizzando il parametro. `--distributions` *