View a markdown version of this page

Passaggio all'utilizzo di Servizio di metadati dell'istanza Versione 2 - Amazon Elastic Compute Cloud

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

Passaggio all'utilizzo di Servizio di metadati dell'istanza Versione 2

Se desideri configurare le tue istanze in modo che accettino solo chiamate Instance Metadata Service Version 2 (IMDSv2), ti consigliamo di utilizzare i seguenti strumenti e il percorso di transizione.

Strumenti per la transizione a IMDSv2

I seguenti strumenti possono aiutarvi a identificare, monitorare e gestire la transizione del vostro software da IMDSv1 a IMDSv2. Per le istruzioni su come utilizzare questi strumenti, vedere. Percorso consigliato per richiedere IMDSv2

AWS software

Le versioni più recenti di AWS CLI e gli AWS SDK supportano IMDSv2. Per usare IMDSv2, aggiorna le tue istanze EC2 per utilizzare le versioni più recenti. Per le versioni minime dell' AWS SDK che supportano IMDSv2, consulta. Usa un supporto AWS SDK

Tutti i pacchetti software Amazon Linux 2 e Amazon Linux 2023 supportano IMDSv2. Amazon Linux 2023 disabilita IMDSv1 per impostazione predefinita.

IMDS Packet Analyzer

IMDS Packet Analyzer è uno strumento open source che identifica e registra le chiamate IMDSv1 durante la fase di avvio e le operazioni di runtime dell'istanza. Analizzando questi log, potete identificare con precisione il software che effettua chiamate IMDSv1 sulle vostre istanze e determinare cosa deve essere aggiornato per supportare IMDSv2 solo sulle vostre istanze. Puoi eseguire IMDS Packet Analyzer da una riga di comando o installarlo come servizio. AWS ImdsPacketAnalyzerPer GitHub ulteriori informazioni, consulta su.

CloudWatch

CloudWatch fornisce le due metriche seguenti per il monitoraggio delle istanze:

MetadataNoToken— IMDSv2 utilizza sessioni supportate da token, mentre IMDSv1 no. La MetadataNoToken metrica tiene traccia del numero di chiamate all'Instance Metadata Service (IMDS) che utilizzano IMDSv1. Monitorando questo parametro a zero, puoi determinare se e quando tutto il software è stato aggiornato per utilizzare IMDSv2.

MetadataNoTokenRejected— Dopo aver disabilitato IMDSv1, puoi utilizzare la MetadataNoTokenRejected metrica per tenere traccia del numero di volte in cui una chiamata IMDSv1 è stata tentata e rifiutata. Monitorando questa metrica puoi verificare se il software deve essere aggiornato per utilizzare IMDSv2.

Per ogni istanza EC2, queste metriche si escludono a vicenda. Quando IMDSv1 è abilitato (), emette solo. httpTokens = optional MetadataNoToken Quando IMDSv1 è disabilitato (), emette solo. httpTokens = required MetadataNoTokenRejected Per sapere quando utilizzare queste metriche, consulta. Percorso consigliato per richiedere IMDSv2

Per ulteriori informazioni, consulta Parametri dell'istanza.

Avvia le API

Nuove istanze: utilizza l'RunInstancesAPI per avviare nuove istanze che richiedono l'uso di IMDSv2. Per ulteriori informazioni, consulta Configurazione delle opzioni dei metadati dell'istanza per le nuove istanze.

Istanze esistenti: utilizza l'ModifyInstanceMetadataOptionsAPI per richiedere l'uso di IMDSv2 su istanze esistenti. Per ulteriori informazioni, consulta Modifica delle opzioni dei metadati dell'istanza per le istanze esistenti.

Nuove istanze lanciate dai gruppi Auto Scaling: per richiedere l'uso di IMDSv2 su tutte le nuove istanze lanciate dai gruppi Auto Scaling, i gruppi Auto Scaling possono utilizzare un modello di avvio o una configurazione di avvio. Quando crei un modello di avvio o una configurazione di avvio, devi configurare i parametri MetadataOptions per richiedere l'utilizzo di IMDSv2. Il gruppo con scalabilità automatica avvia le nuove istanza tramite il nuovo modello di avvio o configurazione di avvio, senza coinvolgere le istanze esistenti.

Istanze esistenti in un gruppo Auto Scaling: utilizza l'ModifyInstanceMetadataOptionsAPI per richiedere l'uso di IMDSv2 su istanze esistenti o termina le istanze e il gruppo Auto Scaling avvierà nuove istanze sostitutive con le impostazioni delle opzioni dei metadati delle istanze definite nel nuovo modello di avvio o nella nuova configurazione di avvio.

AMI

Le AMI configurate con il parametro impostato per avvieranno le istanze che richiedono IMDSv2 per impostazione predefinita. ImdsSupport v2.0 Amazon Linux 2023 è configurato con. ImdsSupport = v2.0

Nuove AMI: utilizza il comando register-image CLI per impostare il ImdsSupport parametro su v2.0 quando crei una nuova AMI.

AMI esistenti: utilizzate il comando CLI modify-image-attribute per impostare il parametro su quando modificate un'AMI esistente. ImdsSupport v2.0

Per ulteriori informazioni, consulta Configurazione dell'AMI.

Account-level controlli

È possibile configurare i valori predefiniti per tutte le opzioni di metadati delle istanze a livello di account. I valori predefiniti vengono applicati automaticamente all'avvio di un'istanza. Per ulteriori informazioni, vedere. Configurazione di IMDSv2 come impostazione predefinita per l'account

È inoltre possibile imporre l'obbligo di utilizzare IMDSv2 a livello di account. Quando l'applicazione di IMDSv2 è abilitata:

  • Nuove istanze: le istanze configurate per l'avvio con IMDSv1 abilitato non verranno avviate

  • Istanze esistenti con IMDSv1 disabilitato: i tentativi di abilitare IMDSv1 su istanze esistenti saranno impediti.

  • Istanze esistenti con IMDSv1 abilitato: le istanze esistenti con IMDSv1 già abilitato non saranno interessate.

Per ulteriori informazioni, consulta Applica IMDSv2 a livello di account.

Policy IAM e SCP

Puoi utilizzare una policy IAM o una policy di controllo del AWS Organizations servizio (SCP) per controllare gli utenti come segue:

  • Non è possibile avviare un'istanza utilizzando l'RunInstancesAPI a meno che l'istanza non sia configurata per utilizzare IMDSv2.

  • Non è possibile modificare un'istanza esistente utilizzando l'ModifyInstanceMetadataOptionsAPI per riattivare IMDSv1.

La policy IAM o SCP deve contenere le chiavi di condizione IAM indicate di seguito:

  • ec2:MetadataHttpEndpoint

  • ec2:MetadataHttpPutResponseHopLimit

  • ec2:MetadataHttpTokens

Se un parametro nella chiamata API o CLI non corrisponde allo stato specificato nella policy che contiene la chiave di condizione, la chiamata all'API o alla CLI ha esito negativo con una risposta. UnauthorizedOperation

Inoltre, puoi scegliere un livello aggiuntivo di protezione per imporre la modifica da IMDSv1 a IMDSv2. A livello di gestione degli accessi rispetto alle API chiamate tramite le credenziali del ruolo EC2, puoi utilizzare una chiave di condizione nelle policy IAM o nelle policy di controllo dei AWS Organizations servizi (SCP). In particolare, utilizzando la chiave di condizione della policy ec2:RoleDelivery con il valore 2.0 nelle policy IAM, le chiamate dell'API effettuate con le credenziali del ruolo EC2 ottenute da IMDSv1 riceveranno una risposta UnauthorizedOperation. Lo stesso può essere ottenuto su scala più ampia con tale condizione richiesta da un SCP. Ciò garantisce che le credenziali fornite tramite IMDSv1 non possano essere effettivamente utilizzate per chiamare le API perché qualsiasi chiamata API che non corrisponde alla condizione specificata riceverà un errore. UnauthorizedOperation

Per esempi di policy IAM, consulta Utilizzo dei metadati delle istanze. Per ulteriori informazioni sulle policy di controllo dei servizi (SCP), consulta Service control policies nella Guida per l’utente di AWS Organizations .

Politiche dichiarative

Utilizza le politiche dichiarative (una funzionalità di AWS Organizations) per impostare centralmente le impostazioni predefinite degli account IMDS, inclusa l'applicazione di IMDSv2, in tutta l'organizzazione. Per un esempio di policy, consulta la scheda Metadati delle istanze nella sezione Politiche dichiarative supportate della Guida per l'utente. AWS Organizations

Fase 1: Identifica le istanze con IMDSv2=opzionale e verifica l'utilizzo di IMDSv1

Per valutare l'ambito della migrazione a IMDSv2, identifica le istanze configurate per consentire IMDSv1 o IMDSv2 e verifica le chiamate IMDSv1.

  1. Identifica le istanze configurate per consentire IMDSv1 o IMDSv2:

    Amazon EC2 console
    1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

    2. Nel riquadro di navigazione, scegliere Instances (Istanze).

    3. Per visualizzare solo le istanze configurate per consentire IMDSv1 o IMDSv2, aggiungi il filtro IMDSv2 = opzionale.

    4. In alternativa, per vedere se IMDSv2 è opzionale o obbligatorio per tutte le istanze, apri la finestra Preferenze (icona a forma di ingranaggio), attiva IMDSv2 e scegli Conferma. Questo aggiunge la colonna IMDSv2 alla tabella Istanze.

    AWS CLI

    Utilizzate il comando describe-instances e filtrate per, come segue: metadata-options.http-tokens = optional

    aws ec2 describe-instances --filters "Name=metadata-options.http-tokens,Values=optional" --query "Reservations[*].Instances[*].[InstanceId]" --output text
  2. Controlla le chiamate IMDSv1 su ogni istanza:

    Usa la metrica. CloudWatch MetadataNoToken Tale parametro mostra il numero di chiamate IMDSv1 al servizio di metadati dell'istanza (IMDS) nelle istanze. Per ulteriori informazioni, consulta Parametri dell'istanza.

  3. Identifica il software sulle tue istanze che effettuano chiamate IMDSv1:

    Utilizzate l'IMDS Packet Analyzer open source per identificare e registrare le chiamate IMDSv1 durante la fase di avvio e le operazioni di runtime dell'istanza. Usa queste informazioni per identificare il software da aggiornare e preparare le tue istanze all'uso solo di IMDSv2. Puoi eseguire IMDS Packet Analyzer da una riga di comando o installarlo come servizio.

Fase 2: Aggiorna il software a IMDSv2

Aggiorna tutti gli SDK, le CLI e il software che utilizzano le credenziali di ruolo sulle tue istanze alle versioni. IMDSv2-compatible Per ulteriori informazioni sull’aggiornamento dell’interfaccia a riga di comando (CLI), consulta Installing or updating to the latest version of the AWS CLI nella Guida per l’utente di AWS Command Line Interface .

Passaggio 3: richiedi IMDSv2 sulle istanze

Dopo aver confermato zero chiamate IMDSv1 tramite la MetadataNoToken metrica, configura le istanze esistenti in modo che richiedano IMDSv2. Inoltre, configura tutte le nuove istanze in modo che richiedano IMDSv2. In altre parole, disabilita IMDSv1 su tutte le istanze esistenti e nuove.

  1. Configura le istanze esistenti per richiedere IMDSv2:

    Amazon EC2 console
    1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

    2. Nel riquadro di navigazione, scegliere Instances (Istanze).

    3. Selezionare l'istanza.

    4. Seleziona Operazioni, Impostazioni istanza, Modifica opzioni dei metadati dell'istanza.

    5. Per IMDSv2, scegli Obbligatorio.

    6. Scegli Save (Salva).

    AWS CLI

    Usa il comando CLI https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-metadata-options.html modify-instance-metadata-options per specificare che deve essere usato solo IMDSv2.

    Nota

    È possibile modificare questa impostazione sulle istanze in esecuzione. La modifica ha effetto immediato senza che sia necessario riavviare l'istanza.

    Per ulteriori informazioni, consulta Richiesta dell'uso di IMDSv2.

  2. Monitora i problemi dopo aver disabilitato IMDSv1:

    1. Tieni traccia del numero di volte in cui una chiamata IMDSv1 è stata tentata e rifiutata con la metrica. MetadataNoTokenRejected CloudWatch

    2. Se la MetadataNoTokenRejected metrica registra le chiamate IMDSv1 su un'istanza che presenta problemi software, ciò indica che il software deve essere aggiornato per utilizzare IMDSv2.

  3. Configura le nuove istanze in modo che richiedano IMDSv2:

    Amazon EC2 console
    1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

    2. Segui i passaggi per avviare un'istanza.

    3. Espandi i dettagli avanzati e, per la versione dei metadati, scegli solo V2 (token richiesto).

    4. Nel pannello Summary (Riepilogo), verifica la configurazione dell'istanza, quindi scegli Launch instance (Avvia istanza).

      Per ulteriori informazioni, consulta Configurazione dell'istanza all'avvio.

    AWS CLI

    AWS CLI: utilizza il comando run-instances e specifica l’utilizzo esclusivo di IMDSv2.

Passaggio 4: imposta IMDSV2=Required come predefinito

È possibile impostare IMDSV2=Required come configurazione predefinita a livello di account o organizzazione. Ciò garantisce che tutte le istanze appena avviate siano configurate automaticamente per richiedere IMDSv2.

  1. Imposta l'impostazione predefinita a livello di account:

    Amazon EC2 console
    1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

    2. Nel pannello di navigazione seleziona Pannello di controllo.

    3. Nella scheda Attributi dell'account, in Impostazioni, scegli Protezione e sicurezza dei dati.

    4. In Impostazioni predefinite IMDS, scegli Gestisci.

    5. Per il servizio di metadati di Instance, scegli Abilitato.

    6. Per la versione dei metadati, scegli solo la versione V2 (token richiesto).

    7. Scegliere Aggiorna.

    AWS CLI

    Utilizzate il comando CLI https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-metadata-defaults.html modify-instance-metadata-defaults e specificate e. --http-tokens required --http-put-response-hop-limit 2

    Per ulteriori informazioni, consulta Configurazione di IMDSv2 come impostazione predefinita per l'account.

  2. In alternativa, imposta l'impostazione predefinita a livello di organizzazione utilizzando una politica dichiarativa:

    Utilizza una politica dichiarativa per impostare l'impostazione predefinita dell'organizzazione per IMDSv2 su obbligatoria. Per un esempio di policy, consulta la scheda Metadati dell'istanza nella sezione Politiche dichiarative supportate della Guida per l'utente. AWS Organizations

Fase 5: Imporre alle istanze di richiedere IMDSv2

Dopo aver verificato che non c'è dipendenza da IMDSv1 su nessuna delle tue istanze, ti consigliamo di applicare IMDSv2 su tutte le nuove istanze.

Usa una delle seguenti opzioni per applicare IMDSv2:

  1. Applica IMDSv2 con una proprietà dell'account

    È possibile imporre l'uso di IMDSv2 a livello di account per ciascuno. Regione AWS Una volta applicate, le istanze possono essere avviate solo se sono configurate per richiedere IMDSv2. Questa applicazione si applica indipendentemente dalla configurazione dell'istanza o dell'AMI. Per ulteriori informazioni, consulta Applica IMDSv2 a livello di account. Per applicare questa impostazione a livello di organizzazione, imposta una politica dichiarativa. Per un esempio di policy, consulta la scheda Metadati dell'istanza nella sezione Politiche dichiarative supportate della Guida per l'utente. AWS Organizations

    Per evitare un'inversione dell'applicazione, è necessario utilizzare una policy IAM per impedire l'accesso all'API. ModifyInstanceMetadataDefaults Per ulteriori informazioni, consulta Utilizzo di una policy IAM.

    Nota

    Questa impostazione non modifica la versione IMDS delle istanze esistenti, ma blocca l'abilitazione di IMDSv1 sulle istanze esistenti che attualmente hanno IMDSv1 disabilitato.

    avvertimento

    Se l'imposizione di IMDSv2 è abilitata e non httpTokens è impostata nella configurazione dell'istanza all'avvio, required nelle impostazioni dell'account o nella configurazione AMI, l'avvio dell'istanza fallirà. Per informazioni sulla risoluzione dei problemi, consulta L'avvio di un' IMDSv1-enabled istanza non riesce.

  2. In alternativa, applica IMDSv2 utilizzando le seguenti chiavi di condizione IAM o SCP:

    • ec2:MetadataHttpTokens

    • ec2:MetadataHttpPutResponseHopLimit

    • ec2:MetadataHttpEndpoint

    Queste chiavi di condizione controllano l'uso delle API RunInstances e delle CLI ModifyInstanceMetadataOptions corrispondenti. Se viene creata una policy e un parametro nella chiamata API non corrisponde allo stato specificato nella policy utilizzando la chiave di condizione, la chiamata all'API o alla CLI non va a buon e viene restituita la risposta UnauthorizedOperation.

    Per esempi di policy IAM, consulta Utilizzo dei metadati delle istanze.