View a markdown version of this page

Crea e aggiorna le configurazioni di distribuzione AMI - EC2 Image Builder

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

Crea e aggiorna le configurazioni di distribuzione AMI

Questa sezione descrive la creazione e l'aggiornamento delle configurazioni di distribuzione per un'AMI Image Builder.

Prerequisiti per la distribuzione AMI

Alcune impostazioni di distribuzione hanno dei prerequisiti, come segue:

Prerequisiti per i parametri di output SSM

Prima di creare una nuova configurazione di distribuzione AMI che imposta un AWS Systems Manager parametro Parameter Store (parametro SSM), assicurati di aver soddisfatto i seguenti prerequisiti.

Ruolo di esecuzione

Quando si crea una pipeline o si utilizza il comando create-image in AWS CLI, è possibile specificare un solo ruolo di esecuzione di Image Builder. Se hai definito un ruolo di esecuzione del flusso di lavoro di Image Builder, dovresti aggiungere eventuali autorizzazioni aggiuntive per le funzionalità a quel ruolo. Altrimenti, creeresti un nuovo ruolo personalizzato che includa le autorizzazioni richieste.

Importante

Ti consigliamo di non passare il ruolo AWSServiceRoleForImageBuilder collegato al servizio come ruolo di esecuzione. Crea invece un ruolo IAM personalizzato e allega la policy EC2ImageBuilderExecutionPolicy AWS gestita. Questa policy concede le stesse autorizzazioni di cui Image Builder ha bisogno per chiamare per tuo Servizi AWS conto. L'utilizzo di un ruolo personalizzato ti dà il pieno controllo sulle autorizzazioni utilizzate da Image Builder. Inoltre, mantiene in vigore le politiche di controllo dei servizi (SCP) e le politiche di controllo delle risorse (RCP) per le operazioni che Image Builder esegue per conto dell'utente.

  • Per memorizzare l'ID AMI di output in un parametro SSM durante la distribuzione, è necessario specificare l'ssm:PutParameterazione nel ruolo di esecuzione di Image Builder, con il parametro elencato come risorsa.

  • Quando si imposta il tipo di dati del parametro su AWS EC2 Image per indicare a Systems Manager di convalidare il valore del parametro come ID AMI, è inoltre necessario aggiungere l'azioneec2:DescribeImages.

Opt-in Region

È necessario abilitare una regione di attivazione (regione disattivata per impostazione predefinita) nell'account di origine. Questo requisito si applica quando la configurazione di distribuzione è destinata a tale regionessmParameterConfigurations, indipendentemente dal fatto che si utilizzi il ruolo collegato al servizio Image Builder o un ruolo di esecuzione personalizzato.

Nota

La copia dell'AMI in una regione opt-in può avere successo anche se l'account di origine non ha abilitato la regione. Solo la scrittura del parametro di output SSM ha esito negativo.

Senza questo prerequisito, la compilazione fallisce con un errore simile al seguente:

In region 'af-south-1' - 'STS Client Error: The provided execution role does not exist or does not have sufficient permissions.'

Per risolvere il problema, procedi in uno dei seguenti modi:

  • Abilita le regioni opt-in nell'account di origine. Per istruzioni su come abilitare una regione, consulta Abilitare o disabilitare AWS le regioni nel tuo account nella Guida di riferimento per la gestione degli AWS account.

  • Ometti ssmParameterConfigurations per le regioni che hanno aderito. Utilizza invece una EventBridge regola Amazon per reagire all'evento EC2 Image Builder Image State Change e scrivi tu stesso i parametri.

Prerequisiti per EC2 Fast Launch

Prima di creare una nuova configurazione di distribuzione per le AMI EC2 Fast Launch for Windows, assicurati di aver soddisfatto i seguenti prerequisiti.

  • Se fornisci un modello di avvio personalizzato quando configuri EC2 Fast Launch, il servizio utilizza il VPC e altre impostazioni di configurazione che hai definito nel modello di avvio. Per ulteriori informazioni, consulta Utilizzare un modello di avvio quando si configura EC2 Fast Launch.

  • Se non utilizzi un modello di avvio personalizzato per configurare le impostazioni, devi allegare la EC2FastLaunchFullAccess policy al ruolo IAM utilizzato da Image Builder per creare l'immagine. Quando si crea una pipeline o si utilizza il comando create-image in AWS CLI, è possibile specificare un solo ruolo di esecuzione di Image Builder. Se hai definito un ruolo di esecuzione del flusso di lavoro di Image Builder, dovresti aggiungere eventuali autorizzazioni aggiuntive per le funzionalità a quel ruolo. Altrimenti, creeresti un nuovo ruolo personalizzato che includa le autorizzazioni richieste.

    Questa funzionalità richiede autorizzazioni aggiuntive oltre a quelle della politica di esecuzione di base, pertanto è necessario utilizzare un ruolo personalizzato. È consigliabile creare un ruolo personalizzato con la policy EC2ImageBuilderExecutionPolicy AWS gestita allegata e quindi aggiungere la EC2FastLaunchFullAccess policy a quel ruolo.

    Quindi, quando Image Builder copia l'immagine, EC2 Fast Launch crea automaticamente uno CloudFormation stack con le seguenti risorse nel tuo Account AWS.

    • Un cloud privato virtuale (VPC)

    • Sottoreti private in più zone di disponibilità

    • Un modello di avvio configurato con Instance Metadata Service Version 2 (IMDSv2)

    • Un gruppo di sicurezza senza regole in entrata o in uscita

Nota

Image Builder non supporta la distribuzione tra account per le AMI con EC2 Fast Launch preabilitato. EC2 Fast Launch deve essere abilitato dall'account di destinazione.

Crea una configurazione di distribuzione AMI

Le configurazioni di distribuzione includono il nome dell'AMI di output, le impostazioni regionali specifiche per la crittografia, le autorizzazioni di avvio e Account AWS le organizzazioni e le unità organizzative (OU) che possono avviare l'AMI di output e le configurazioni delle licenze.

Una configurazione di distribuzione consente di specificare il nome e la descrizione dell'AMI di output, autorizzare altri Account AWS ad avviare l'AMI, copiare l'AMI su altri account e replicare l'AMI in altre regioni. AWS Consente inoltre di esportare l'AMI in Amazon Simple Storage Service (Amazon S3) o configurare EC2 Fast Launch per le AMI Windows di output. Per rendere pubblica un'AMI, impostare l'autorizzazione di avvio account autorizzati su all. Guarda gli esempi per rendere pubblica un'AMI su EC2. ModifyImageAttribute

Console

Segui questi passaggi per creare una nuova configurazione di distribuzione AMI in: Console di gestione AWS

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

  2. Scegli Impostazioni di distribuzione dal pannello di navigazione. Questo mostra un elenco delle configurazioni di distribuzione create con il tuo account.

  3. Scegli Crea impostazioni di distribuzione nella parte superiore del pannello delle impostazioni di distribuzione.

  4. Nella sezione Tipo di immagine, scegli il tipo di output Amazon Machine Image (AMI).

  5. Nella sezione Generale, inserisci un nome per la configurazione della distribuzione e una descrizione opzionale.

  6. Nella sezione Impostazioni della regione, inserisci i seguenti dettagli per ciascuna regione in cui stai distribuendo il tuo AMI:

    1. Per impostazione predefinita, l'AMI viene distribuito nella regione corrente (Regione 1). La regione 1 è la fonte della distribuzione. Alcune impostazioni per la Regione 1 non possono essere modificate. Per tutte le regioni che aggiungi, puoi sceglierne una dall'elenco a discesa Regione.

      La chiave Kms identifica AWS KMS key quella utilizzata per crittografare i volumi EBS per l'immagine nella regione di destinazione. È importante notare che ciò non si applica all'AMI originale creata dalla build con il tuo account nella Regione di origine (Regione 1). La crittografia eseguita durante la fase di distribuzione della build è valida solo per le immagini distribuite ad altri account o regioni.

      Per crittografare i volumi EBS per l'AMI creata nella regione di origine del tuo account, devi impostare la chiave KMS nella mappatura dei dispositivi del blocco di ricette delle immagini (Archiviazione (volumi) nella console).

      Image Builder copia l'AMI negli account Target specificati per la regione.

      Prerequisito

      Per copiare un'immagine tra gli account, è necessario creare il EC2ImageBuilderDistributionCrossAccountRole ruolo in tutti gli account del target di distribuzione e allegare al ruolo la policy Ec2ImageBuilderCrossAccountDistributionAccess policy gestita.

      Il nome Output AMI è facoltativo. Se fornisci un nome, il nome dell'AMI di output finale include un timestamp aggiunto di quando l'AMI è stata creata. Se non si specifica un nome, Image Builder aggiunge il timestamp di compilazione al nome della ricetta. Ciò garantisce nomi AMI univoci per ogni build.

      1. Con la condivisione AMI, puoi concedere l'accesso a AWS Principal specifici per avviare istanze dalla tua AMI. Se espandi la sezione di condivisione AMI, puoi inserire i seguenti dettagli:

        • Autorizzazioni di avvio: seleziona Privato se desideri mantenere privata la tua AMI e consentire l'accesso a AWS Principal specifici per avviare un'istanza dalla tua AMI privata. Seleziona Pubblico se desideri rendere pubblica la tua AMI. Qualsiasi AWS principale può lanciare un'istanza dalla tua AMI pubblica.

        • Principal: puoi concedere l'accesso ai seguenti tipi di AWS Principal per avviare le istanze:

          • AWS account: concedi l'accesso a un account specifico AWS

          • Unità organizzativa (OU): concede l'accesso a un'unità organizzativa e a tutte le relative entità secondarie. Le entità secondarie includono unità organizzative e AWS account.

          • Organizzazione: concedi l'accesso alla tua AWS Organizations e a tutte le relative entità secondarie. Le entità secondarie includono unità organizzative e AWS account.

            Innanzitutto, seleziona il tipo di principale. Quindi inserisci l'ID del AWS mandante a cui desideri concedere l'accesso nella casella a destra dell'elenco a discesa. Puoi inserire più ID di diversi tipi.

      2. È possibile espandere la sezione Configurazione della licenza per allegare le configurazioni di licenza create con AWS License Manager alle immagini di Image Builder. Le configurazioni di licenza contengono regole di licenza basate sui termini degli accordi aziendali. Image Builder include automaticamente le configurazioni di licenza associate all'AMI di base.

      3. È possibile espandere la sezione di configurazione del modello di avvio per specificare un modello di lancio EC2 da utilizzare per avviare le istanze dall'AMI creata.

        Se stai utilizzando un modello di lancio EC2, puoi indicare a Image Builder di creare una nuova versione del modello di lancio che includa l'ID AMI più recente al termine della compilazione. Per aggiornare il modello di lancio, configura le impostazioni come segue:

        • Nome del modello di avvio: seleziona il nome del modello di avvio che desideri che Image Builder aggiorni.

        • Imposta la versione predefinita: seleziona questa casella di controllo per aggiornare la versione predefinita del modello di avvio alla nuova versione.

        Per aggiungere un'altra configurazione del modello di avvio, scegli Aggiungi configurazione del modello di avvio. Puoi avere fino a cinque configurazioni del modello di avvio per regione.

      4. Puoi espandere la sezione delle configurazioni dei parametri SSM per configurare un parametro SSM che memorizzerà l'ID AMI di output per l'immagine distribuita nella regione di destinazione. È possibile specificare facoltativamente un account di distribuzione nella regione.

        Nome del parametro: immettete il nome del parametro. Ad esempio, /output/image/param.

        Tipo di dati: mantiene il valore predefinito (AWS EC2 Image). Ciò indica a Systems Manager di convalidare il valore del parametro per assicurarsi che sia un ID AMI valido.

    2. Per aggiungere le impostazioni di distribuzione per un'altra regione, scegli Aggiungi regione.

  7. Quando hai finito, scegli Crea impostazioni.

AWS CLI

L'esempio seguente mostra come utilizzare il create-distribution-configuration comando per creare una nuova configurazione di distribuzione per l'AMI, utilizzando il AWS CLI.

  1. Creazione di un file JSON di input nella CLI

    Usa uno strumento di modifica dei file per creare un file JSON con le chiavi mostrate in uno degli esempi seguenti e valori validi per il tuo ambiente. Questi esempi definiscono quali Account AWS unità AWS Organizations organizzative (OU) sono autorizzate a lanciare l'AMI che distribuisci nelle regioni specificate. Assegna un nome al filecreate-ami-distribution-configuration.json, da utilizzare nella fase successiva:

    Esempio 1: distribuisci a Account AWS

    Questo esempio distribuisce un'AMI in due regioni e specifica Account AWS che dispongono delle autorizzazioni di avvio in ciascuna regione.

    { "name": "MyExampleAccountDistribution", "description": "Copies AMI to eu-west-1, and specifies accounts that can launch instances in each Region.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "An example image name with parameter references", "amiTags": { "KeyName": "Some Value" }, "launchPermission": { "userIds": [ "987654321012" ] } } }, { "region": "eu-west-1", "amiDistributionConfiguration": { "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}", "amiTags": { "KeyName": "Some value" }, "launchPermission": { "userIds": [ "100000000001" ] } } } ] }
    Esempio 2: distribuzione a organizzazioni e unità organizzative

    Questo esempio distribuisce un'AMI nella regione di origine e specifica le autorizzazioni di avvio dell'organizzazione e dell'unità organizzativa.

    { "name": "MyExampleAWSOrganizationDistribution", "description": "Shares AMI with the Organization and OU", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{ imagebuilder:buildDate }}", "launchPermission": { "organizationArns": [ "arn:aws:organizations::123456789012:organization/o-myorganization123" ], "organizationalUnitArns": [ "arn:aws:organizations::123456789012:ou/o-123example/ou-1234-myorganizationalunit" ] } } } ] }
    Esempio 3: memorizza l'ID AMI di uscita in un parametro SSM

    Questo esempio memorizza l'ID AMI di output in un AWS Systems Manager parametro Parameter Store nella regione di distribuzione.

    { "name": "SSMParameterOutputAMI", "description": "Updates an SSM parameter with the output AMI ID for the distribution.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{ imagebuilder:buildDate }}" }, "ssmParameterConfigurations": [ { "amiAccountId": "111122223333", "parameterName": "/output/image/param", "dataType": "aws:ec2:image" } ] } ] }
  2. Esegui il comando seguente utilizzando il file creato come input.
    aws imagebuilder create-distribution-configuration --cli-input-json file://create-ami-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 (/).

    Per informazioni più dettagliate, vedere create-distribution-configuration nel Command Reference. AWS CLI

Aggiornare una configurazione di distribuzione AMI

È possibile modificare la configurazione della distribuzione AMI. Tuttavia, le modifiche apportate non si applicano alle risorse già distribuite da Image Builder. Ad esempio, se hai distribuito un'AMI a una regione che successivamente rimuovi dalla tua distribuzione, l'AMI già distribuita rimane in quella regione finché non la rimuovi manualmente.

Console di gestione AWS

Segui questi passaggi per configurare una distribuzione AMI in Console di gestione AWS:

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

  2. Scegli Impostazioni di distribuzione dal pannello di navigazione. Questo mostra un elenco delle configurazioni di distribuzione create con il tuo account.

  3. Per visualizzare i dettagli o aggiornare una configurazione di distribuzione, scegli il link Nome della configurazione. Si apre la vista dettagliata delle impostazioni di distribuzione.

    Nota

    Puoi anche selezionare la casella di controllo accanto al nome della configurazione, quindi scegliere Visualizza dettagli.

  4. Per modificare la configurazione della distribuzione, scegli Modifica nell'angolo in alto a destra della sezione Dettagli sulla distribuzione. Alcuni campi sono bloccati, come il nome della configurazione di distribuzione e la regione predefinita visualizzata come Regione 1. Per ulteriori informazioni sulle impostazioni di configurazione della distribuzione, vedereCrea una configurazione di distribuzione AMI.

  5. Al termine, scegli Save changes (Salva modifiche).

AWS CLI

L'esempio seguente mostra come utilizzare il update-distribution-configuration comando per aggiornare le impostazioni di distribuzione per la tua AMI, utilizzando AWS CLI.

  1. Creazione di un file JSON di input nella CLI

    Usa uno strumento di modifica dei file per creare un file JSON con le chiavi mostrate nell'esempio seguente e i valori validi per il tuo ambiente. Questo esempio utilizza un file denominato. update-ami-distribution-configuration.json

    { "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/update-ami-distribution-configuration.json", "description": "Copies AMI to eu-west-2, and specifies accounts that can launch instances in each Region.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "An example image name with parameter references", "launchPermissions": { "userIds": [ "987654321012" ] } } }, { "region": "eu-west-2", "amiDistributionConfiguration": { "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}", "tags": { "KeyName": "Some value" }, "launchPermissions": { "userIds": [ "100000000001" ] } } } ] }
  2. Esegui il comando seguente utilizzando il file creato come input.
    aws imagebuilder update-distribution-configuration --cli-input-json file://update-ami-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 (/).

    Per informazioni più dettagliate, vedere update-distribution-configuration nel Command Reference. AWS CLI Per aggiornare i tag per la risorsa di configurazione della distribuzione, consulta la Aggiunta di tag alle risorse sezione.

Esempio: abilita EC2 Fast Launch con un modello di avvio per le AMI di output

L'esempio seguente mostra come utilizzare il create-distribution-configuration comando con un modello di avvio per creare impostazioni di distribuzione con EC2 Fast Launch configurato per la tua AMI, da. AWS CLI

Per configurare le impostazioni di EC2 Fast Launch senza un modello di avvio, assicurati di aver soddisfatto tutti i requisiti Prerequisiti di EC2 Fast Launch prima di creare la configurazione di distribuzione.

  1. Creazione di un file JSON di input nella CLI

    Usa uno strumento di modifica dei file per creare un file JSON con le chiavi, come mostrato nell'esempio seguente, più i valori validi per il tuo ambiente.

    Questo esempio avvia le istanze per tutte le risorse di destinazione contemporaneamente, poiché il numero massimo di avvii paralleli è maggiore del numero di risorse di destinazione. Questo file è denominato ami-dist-config-win-fast-launch.json nell'esempio di comando mostrato nel passaggio successivo.

    { "name": "WinFastLaunchDistribution", "description": "An example of Windows AMI EC2 Fast Launch settings in the distribution configuration.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "Includes Windows AMI EC2 Fast Launch settings.", "amiTags": { "KeyName": "Some Value" } }, "fastLaunchConfigurations": [{ "enabled": true, "snapshotConfiguration": { "targetResourceCount": 5 }, "maxParallelLaunches": 6, "launchTemplate": { "launchTemplateId": "lt-0ab1234c56d789012", "launchTemplateVersion": "1" } }], "launchTemplateConfigurations": [{ "launchTemplateId": "lt-0ab1234c56d789012", "setDefaultVersion": true }] }] }
    Nota

    È possibile specificare il launchTemplateName anziché il launchTemplateId nella launchTemplate sezione, ma non è possibile specificare sia il nome che l'ID.

  2. Esegui il comando seguente utilizzando il file creato come input.
    aws imagebuilder create-distribution-configuration --cli-input-json file://ami-dist-config-win-fast-launch.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 (/).

    Per informazioni più dettagliate, vedere create-distribution-configuration nel Command Reference. AWS CLI

Esempio: creazione di impostazioni di distribuzione per i dischi VM di output da AWS CLI

L'esempio seguente mostra come utilizzare il create-distribution-configuration comando per creare impostazioni di distribuzione che esporteranno i dischi di immagine VM in Amazon S3 con ogni creazione di immagine.

  1. Creazione di un file JSON di input nella CLI

    Puoi semplificare il create-distribution-configuration comando che usi in. AWS CLI Per fare ciò, crea un file JSON che contenga tutta la configurazione di esportazione che desideri passare al comando.

    Nota

    La convenzione di denominazione per i valori dei dati nel file JSON segue lo schema specificato per i parametri della richiesta di operazione dell'API Image Builder. Per esaminare i parametri della richiesta di operazione API, consulta il CreateDistributionConfiguration comando nell'API Reference di EC2 Image Builder.

    Per fornire i valori dei dati come parametri della riga di comando, fate riferimento ai nomi dei parametri specificati nel AWS CLI Command Reference. Al create-distribution-configuration comando come opzioni.

    Ecco un riepilogo dei parametri che specifichiamo nell'oggetto s3ExportConfiguration JSON per questo esempio:

    • roleName (string, required) — Il nome del ruolo che concede alla VM il Import/Export permesso di esportare immagini nel bucket S3.

    • disk ImageFormat (string, required) — Esporta l'immagine del disco aggiornata in uno dei seguenti formati supportati:

      • Virtual Hard Disk (VHD): compatibile con i prodotti di virtualizzazione Citrix Xen e Microsoft Hyper-V.

      • Stream-optimized ESX Virtual Machine Disk (VMDK): compatibile con VMware ESX e VMware vSphere versioni 4, 5 e 6.

      • Raw: formato Raw.

    • S3bucket (string, required) — Il bucket S3 in cui archiviare le immagini del disco di output per la tua VM.

    Salva il file con nome export-vm-disks.json. Usa il nome del file nel comando. create-distribution-configuration

    { "name": "example-distribution-configuration-with-vm-export", "description": "example", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "description": "example-with-vm-export" }, "s3ExportConfiguration": { "roleName": "vmimport", "diskImageFormat": "RAW", "s3Bucket": "vm-bucket-export" } }], "clientToken": "abc123def4567ab" }
  2. Esegui il comando seguente utilizzando il file creato come input.
    aws imagebuilder create-distribution-configuration --cli-input-json file://export-vm-disks.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 (/).

    Per informazioni più dettagliate, vedere create-distribution-configuration nel Command Reference. AWS CLI