Controlla il rilevamento e l'uso delle AMI in Amazon EC2 con le AMI consentite - Amazon Elastic Compute Cloud

Controlla il rilevamento e l'uso delle AMI in Amazon EC2 con le AMI consentite

Per controllare il rilevamento e l'uso delle Amazon Machine Image (AMI) da parte degli utenti nel tuo Account AWS, puoi utilizzare la funzionalità AMI consentite. Puoi specificare i criteri che le AMI devono soddisfare per essere visibili e disponibili all’interno del tuo account. Quando i criteri sono abilitati, gli utenti che avviano le istanze vedranno e avranno accesso solo alle AMI che soddisfano i criteri specificati. Ad esempio, è possibile specificare un elenco di provider di AMI affidabili come criteri, e solo le AMI di questi provider saranno visibili e disponibili per l'uso.

Prima di abilitare le impostazioni delle AMI consentite, puoi abilitare la modalità di controllo per visualizzare in anteprima quali AMI saranno visibili e disponibili per l’uso (se presenti). Ciò consente di affinare i criteri in base alle esigenze per garantire che solo le AMI previste siano visibili e disponibili per gli utenti del tuo account. Inoltre, puoi utilizzare il comando describe-instance-image-metadata per identificare le istanze avviate con AMI che non soddisfano i criteri specificati. Queste informazioni possono aiutarti a decidere se aggiornare le configurazioni di avvio per utilizzare AMI conformi (ad esempio, specificando una AMI diversa in un modello di lancio) o modificare i criteri per consentire queste AMI.

Puoi specificare le impostazioni delle AMI consentite a livello di account, direttamente nell'account o utilizzando una policy dichiarativa. Queste impostazioni devono essere configurate in ogni Regione AWS in cui si desidera controllare l’utilizzo delle AMI. L'utilizzo di una policy dichiarativa consente di applicare le impostazioni contemporaneamente su più regioni, nonché su più account. Quando viene utilizzata una policy dichiarativa, non è possibile modificare le impostazioni direttamente all'interno di un account. Questo argomento illustra la modalità di configurazione delle impostazioni direttamente all'interno di un account. Per informazioni sull'utilizzo delle policy dichiarative, consulta Policy dichiarative nella Guida per l'utente di AWS Organizations.

Nota

La funzionalità delle AMI consentite controlla solo il rilevamento e l'utilizzo di AMI pubbliche o AMI condivise con l'account. Non si limita alle AMI di proprietà dell'account. Indipendentemente dai criteri impostati, le AMI create dal tuo account sono sempre rilevabili e utilizzabili dagli utenti nel tuo account.

Principali vantaggi delle AMI consentite
  • Conformità e sicurezza: gli utenti possono rilevare e utilizzare solo le AMI che soddisfano i criteri specificati, riducendo il rischio di utilizzo di AMI non conformi.

  • Gestione efficiente: riducendo il numero di AMI consentite, la gestione di quelle rimanenti diventa più semplice ed efficiente.

  • Implementazione centralizzata a livello di account: configurare le impostazioni delle AMI consentite a livello di account, direttamente all'interno dell'account o tramite una policy dichiarativa. Ciò fornisce un modo centralizzato ed efficiente per controllare l'utilizzo delle AMI sull'intero account.

Come funzionano le AMI consentite

Per controllare quali AMI possono essere individuate e utilizzate nel tuo account, definisci una serie di criteri in base ai quali valutare le AMI. I criteri sono costituiti da uno o più ImageCriterion, come mostra il diagramma seguente. Il diagramma è seguito da una spiegazione.

Gerarchia di configurazione ImageCriteria delle AMI consentite.

La configurazione ha tre livelli:

  • 1 – Valori dei parametri

    • Parametri con più valori:

      • ImageProviders

      • ImageNames

      • MarketplaceProductCodes

        Un’AMI può corrispondere a qualsiasi valore entro un parametro per essere consentita.

        Esempio: ImageProviders = amazon OR account 111122223333 OR account 444455556666 (La logica di valutazione dei valori dei parametri non è riportata nel diagramma).

    • Parametri a valore singolo:

      • CreationDateCondition

      • DeprecationTimeCondition

  • 2ImageCriterion

    • Raggruppa più parametri con logica AND.

    • Un’AMI deve corrispondere a tutti i parametri all’interno di un ImageCriterion per essere consentita.

    • Esempio: ImageProviders = amazon AND CreationDateCondition = 300 giorni o meno

  • 3ImageCriteria

    • Raggruppa più ImageCriterion con logica OR.

    • Un’AMI può corrispondere qualsiasi ImageCriterion per essere consentita.

    • Crea la configurazione completa rispetto alla quale vengono valutate le AMI.

Parametri per le AMI consentite

Puoi configurare i seguenti parametri per creare ImageCriterion:

ImageProviders

I fornitori di AMI le cui AMI sono consentite.

I valori validi sono alias definiti dagli ID AWS e Account AWS, nel modo seguente:

  • amazon: un alias che identifica le AMI create da Amazon o da fornitori verificati

  • aws-marketplace – Un alias che identifica le AMI create da provider verificati in Marketplace AWS

  • aws-backup-vault – Un alias che identifica le AMI di backup che risiedono in account di vault logicamente isolata di AWS di ripristino. Se si utilizza la funzionalità di vault logicamente isolata di AWS di ripristino, assicurarsi che questo alias sia incluso come provider di AMI.

  • Account AWS IDs – Uno o più ID Account AWS di 12 cifre

  • none – Indica che solo le AMI create dal tuo account possono essere rilevate e utilizzate. Le AMI pubbliche o condivise non possono essere rilevate e utilizzate. Quando specificato, non è possibile specificare altri criteri.

ImageNames

I nomi delle AMI consentite, utilizzando corrispondenze esatte o caratteri jolly (? o *).

MarketplaceProductCodes

I codici di prodotto Marketplace AWS per le AMI consentite.

CreationDateCondition

L’età massima per le AMI consentite.

DeprecationTimeCondition

Il periodo massimo di obsolescenza per le AMI consentite.

Per i valori validi e i vincoli relativi a ciascun criterio, consulta ImageCriterionRequest nella Documentazione di riferimento dell’API Amazon EC2.

Configurazione delle AMI consentite

La configurazione di base per le AMI consentite è la configurazione ImageCriteria che definisce i criteri per le AMI consentite. La seguente struttura JSON indica i parametri che possono essere specificati:

{ "State": "enabled" | "disabled" | "audit-mode", "ImageCriteria" : [ { "ImageProviders": ["string",...], "MarketplaceProductCodes": ["string",...], "ImageNames":["string",...], "CreationDateCondition" : { "MaximumDaysSinceCreated": integer }, "DeprecationTimeCondition" : { "MaximumDaysSinceDeprecated": integer } }, ... }

Esempio ImageCriteria

Il seguente esempio ImageCriteria configura quattro ImageCriterion. Un’AMI è consentita se corrisponde a uno di questi ImageCriterion. Per informazioni su come vengono valutati i criteri, consulta Come vengono valutati i criteri.

{ "ImageCriteria": [ // ImageCriterion 1: Allow Marketplace AWS AMIs with product code "abcdefg1234567890" { "MarketplaceProductCodes": [ "abcdefg1234567890" ] }, // ImageCriterion 2: Allow AMIs from providers whose accounts are // "123456789012" OR "123456789013" AND AMI age is less than 300 days { "ImageProviders": [ "123456789012", "123456789013" ], "CreationDateCondition": { "MaximumDaysSinceCreated": 300 } }, // ImageCriterion 3: Allow AMIs from provider whose account is "123456789014" // AND with names following the pattern "golden-ami-*" { "ImageProviders": [ "123456789014" ], "ImageNames": [ "golden-ami-*" ] }, // ImageCriterion 4: Allow AMIs from Amazon or verified providers // AND which aren't deprecated { "ImageProviders": [ "amazon" ], "DeprecationTimeCondition": { "MaximumDaysSinceDeprecated": 0 } } ] }

Come vengono valutati i criteri

La seguente tabella illustra le regole di valutazione che determinano se un’AMI è consentita, mostrando come l’operatore AND o OR viene applicato a ciascun livello:

Livello di valutazione Operatore Requisito per essere un’AMI consentita
Valori dei parametri per ImageProviders, ImageNames e MarketplaceProductCodes OR L’AMI deve corrispondere almeno a un valore in ogni elenco di parametri
ImageCriterion AND L’AMI deve corrispondere a tutti i parametri di ogni ImageCriterion
ImageCriteria OR L’AMI deve rispettare uno qualsiasi dei ImageCriterion

Utilizzando le regole di valutazione precedenti, vediamo come applicarle all’Esempio ImageCriteria:

  • ImageCriterion 1: consente le AMI che hanno il codice prodotto Marketplace AWS abcdefg1234567890

    OR

  • ImageCriterion 2: consente le AMI che soddisfano entrambi questi criteri:

    • Di proprietà di uno degli account 123456789012 OR 123456789013

      • AND

    • Creato negli ultimi 300 giorni

    OR

  • ImageCriterion 3: consente le AMI che soddisfano entrambi questi criteri:

    • Di proprietà dell’account 123456789014

      • AND

    • Denominato con il modello golden-ami-*

    OR

  • ImageCriterion 4: consente le AMI che soddisfano entrambi questi criteri:

    • Pubblicato da Amazon o da fornitori verificati (specificato dall’alias amazon)

      • AND

    • Non obsoleto (massimo giorni dalla data di obsolescenza 0)

Limiti

I ImageCriteria possono includere fino a:

  • 10 ImageCriterion

Ogni ImageCriterion può includere fino a:

  • 200 valori per ImageProviders

  • 50 valori per ImageNames

  • 50 valori per MarketplaceProductCodes

Esempio di limiti

Utilizzando i Esempio ImageCriteria precedenti:

  • Ci sono 4 ImageCriterion. È possibile aggiungere fino a 6 ulteriori richieste per raggiungere il limite di 10.

  • Nel primo ImageCriterion, c’è 1 valore per MarketplaceProductCodes. È possibile aggiungere fino a 49 elementi a questo ImageCriterion per raggiungere il limite di 50.

  • Nel secondo ImageCriterion, ci sono 2 valori per ImageProviders. È possibile aggiungere fino a 198 elementi a questo ImageCriterion per raggiungere il limite di 200.

  • Nel terzo ImageCriterion, c’è 1 valore per ImageNames. È possibile aggiungere fino a 49 elementi a questo ImageCriterion per raggiungere il limite di 50.

Operazioni per le AMI consentite

La funzionalità AMI consentite dispone di tre stati operativi per la gestione dei criteri delle immagini: abilitato, disabilitato e modalità di controllo. Queste consentono di abilitare o disabilitare i criteri relativi alle immagini o di rivederli secondo necessità.

Abilitato

Quando le AMI consentite sono abilitate:

  • Vengono applicati i ImageCriteria.

  • Solo le AMI consentite sono rilevabili nella console EC2 e dalle API che utilizzano immagini (ad esempio, che descrivono, copiano, archiviano o eseguono altre azioni che utilizzano immagini).

  • Le istanze possono essere avviate solo utilizzando le AMI consentite.

Disabilitato

Quando le AMI consentite sono disabilitate:

  • Non vengono applicati i ImageCriteria.

  • Non viene posta alcuna restrizione alla rilevabilità o all'utilizzo delle AMI.

Modalità di controllo

Nella modalità di controllo:

  • Vengono applicati i ImageCriteria, ma non viene posta alcuna restrizione alla rilevabilità o all'utilizzo delle AMI.

  • Nella console EC2, per ogni AMI, il campo Immagine consentita mostra o No per indicare se l'AMI sarà rilevabile e disponibile per gli utenti nell'account quando le AMI consentite sono abilitate.

  • Nella riga del comando, la risposta all'operazione describe-image include "ImageAllowed": true o "ImageAllowed": false per indicare se l'AMI sarà rilevabile e disponibile per gli utenti nell'account quando le AMI consentite sono abilitate.

  • Nella console EC2, nel catalogo AMI viene visualizzato il messaggio Non consentite accanto alle AMI che non saranno rilevabili o disponibili per gli utenti nell'account quando la funzionalità AMI consentite è abilitata.

Best practice per l'implementazione di AMI consentite

Quando si implementano AMI consentite, considerare queste best practice per garantire una transizione fluida e ridurre al minimo potenziali disagi all'ambiente AWS.

  1. Abilitare la modalità di controllo

    Iniziare abilitando le AMI consentite nella modalità di controllo. Questo stato consente di vedere quali AMI sarebbero interessate dai tuoi criteri senza limitare effettivamente l’accesso, garantendo un periodo di valutazione privo di rischi.

  2. Impostare i criteri delle AMI consentite

    Stabilire con attenzione quali provider di AMI sono in linea con le politiche di sicurezza, i requisiti di conformità e le esigenze operative della tua organizzazione.

    Nota

    Quando usi servizi gestiti da AWS come Amazon ECS o Amazon EKS, ti suggeriamo di specificare l’alias amazon per consentire le AMI create da AWS. Questi servizi dipendono dalle AMI pubblicate da Amazon per avviare le istanze.

    Presta attenzione quando imposti restrizioni CreationDateCondition per qualsiasi AMI. L’impostazione di condizioni di data eccessivamente restrittive (ad esempio, le AMI devono avere meno di 5 giorni) può causare errori nell’avvio delle istanze se le AMI, provenienti da AWS o da altri fornitori, non vengono aggiornate entro il periodo di tempo specificato.

    Consigliamo di abbinare ImageNames con ImageProviders per un controllo e una specificità migliori. Utilizzare ImageNames da solo potrebbe non identificare in modo univoco un’AMI.

  3. Verificare l'impatto sui processi aziendali previsti

    Puoi utilizzare la console o la CLI per identificare le istanze avviate con AMI che non soddisfano i criteri specificati. Queste informazioni possono aiutarti a decidere se aggiornare le configurazioni di avvio per utilizzare AMI conformi (ad esempio, specificando una AMI diversa in un modello di lancio) o modificare i criteri per consentire queste AMI.

    Console: utilizza la regola AWS Config di ec2-instance-launched-with-allowed-ami per verificare se le istanze in esecuzione o arrestate sono state avviate con AMI che soddisfano i criteri delle AMI consentite. La regola è NON_COMPLIANT se un’AMI non soddisfa i criteri delle AMI consentite e COMPLIANT se li soddisfa. La regola funziona solo quando l’impostazione AMI consentite è impostata su Abilitato o Modalità di controllo.

    CLI: eseguire il comando describe-instance-image-metadata e filtrare la risposta per identificare le istanze avviate con AMI che non soddisfano i criteri specificati.

    Per le istruzioni relative a console e CLI, consulta Trova le istanze avviate da AMI che non sono consentite.

  4. Abilitare le AMI consentite

    Dopo aver verificato che i criteri non influiranno negativamente sui processi aziendali previsti, abilitare le AMI consentite.

  5. Monitorare gli avvii delle istanze

    Continuare a monitorare i lanci di istanze dalle AMI nelle applicazioni e nei servizi gestiti da AWS che vengono utilizzati, come Amazon EMR, Amazon ECR, Amazon EKS e AWS Elastic Beanstalk. Verificare la presenza di eventuali problemi imprevisti e apportare le modifiche necessarie ai criteri delle AMI consentite.

  6. Pilota nuove AMI

    Per testare le AMI di terze parti che non sono conformi alle impostazioni attuali delle AMI consentite, AWS consiglia i seguenti approcci:

    • Utilizza un Account AWS separato: crea un account senza accesso alle tue risorse aziendali critiche. Assicurati che l’impostazione AMI consentite non sia abilitata in questo account o che le AMI che vuoi testare siano esplicitamente consentite, in modo da poterle testare.

    • Esegui il test in un’altra Regione AWS: utilizza una regione in cui sono disponibili le AMI di terze parti, ma in cui non hai ancora abilitato le impostazioni delle AMI consentite.

    Questi approcci aiutano a garantire la sicurezza delle risorse aziendali critiche durante il test di nuove AMI.

Autorizzazioni IAM richieste

Per usare la funzionalità AMI consentite, sono necessarie le seguenti autorizzazioni relative a IAM:

  • GetAllowedImagesSettings

  • EnableAllowedImagesSettings

  • DisableAllowedImagesSettings

  • ReplaceImageCriteriaInAllowedImagesSettings