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 aiutarti a identificare, monitorare e gestire la transizione del tuo software da IMDSv1 a IMDSv2. Per le istruzioni su come utilizzare questi strumenti, vederePercorso consigliato per la richiesta IMDSv2.

AWS software

Le versioni più recenti degli AWS CLI AWS SDK supportano IMDSv2. Per utilizzare IMDSv2, aggiorna le tue istanze EC2 per utilizzare le versioni più recenti. Per le versioni AWS SDK minime supportate, consulta. IMDSv2 Usa un AWS SDK supportato

Supportano tutti i pacchetti software Amazon Linux 2 e Amazon Linux 2023 IMDSv2. Amazon Linux 2023 viene disabilitato IMDSv1 per impostazione predefinita.

IMDS Packet Analyzer

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

CloudWatch

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

MetadataNoToken— IMDSv2 utilizza sessioni supportate da token, mentre non lo fa. IMDSv1 La MetadataNoToken metrica tiene traccia del numero di chiamate all'Instance Metadata Service (IMDS) utilizzate. 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 IMDSv1 chiamata è stata tentata e rifiutata. Monitorando questa metrica, puoi verificare se il tuo software deve essere aggiornato per essere utilizzato. IMDSv2

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

Per ulteriori informazioni, consulta Parametri dell'istanza.

Avvio APIs

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'utilizzo 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 IMDSv2 di 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: utilizzate l'API per richiedere ModifyInstanceMetadataOptionsl'utilizzo IMDSv2 su istanze esistenti oppure terminate le istanze e il gruppo Auto Scaling lancerà nuove istanze sostitutive con le impostazioni delle opzioni dei metadati dell'istanza definite nel nuovo modello di avvio o nella nuova configurazione di avvio.

AMIs

AMIs configurato con il ImdsSupport parametro impostato per avviare le istanze che lo richiedono per impostazione predefinita. v2.0 IMDSv2 Amazon Linux 2023 è configurato conImdsSupport = v2.0.

Nuovo AMIs: utilizza il comando CLI register-image per impostare ImdsSupport il parametro su quando si crea una nuova v2.0 AMI.

Esistente AMIs: utilizza il comando modify-image-attributeCLI per impostare il ImdsSupport parametro su v2.0 quando si modifica un'AMI esistente.

Per ulteriori informazioni, consulta Configurazione dell'AMI.

Controlli a livello di account

Puoi configurare i valori predefiniti per tutte le opzioni dei metadati dell'istanza a livello di account. I valori predefiniti vengono applicati automaticamente all'avvio di un'istanza. Per ulteriori informazioni, vedere. Imposta IMDSv2 come impostazione predefinita per l'account

Puoi anche imporre il requisito di utilizzo a IMDSv2 livello di account. Quando l'IMDSv2 applicazione è abilitata:

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

  • Istanze esistenti IMDSv1 disattivate: i tentativi di attivazione IMDSv1 sulle istanze esistenti verranno impediti.

  • Istanze esistenti con IMDSv1 opzione abilitata: le istanze esistenti con istanze IMDSv1 già abilitate non verranno modificate.

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

Politiche IAM e SCPs

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

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

  • Impossibile modificare un'istanza esistente utilizzando l'ModifyInstanceMetadataOptionsAPI per IMDSv1 riattivarla.

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 API o CLI ha esito negativo e viene generata 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 richiamate tramite le credenziali EC2 Role, puoi utilizzare una chiave di condizione nelle policy IAM o nelle policy di controllo dei AWS Organizations servizi (). SCPs In particolare, utilizzando la chiave di condizione ec2:RoleDelivery con un valore pari 2.0 a nelle politiche IAM, le chiamate API effettuate con le credenziali EC2 Role 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 la chiamata, APIs poiché 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 SCPs, consulta le politiche di controllo del servizio nella Guida per l'AWS Organizations utente.

Politiche dichiarative

Utilizza le politiche dichiarative (una funzionalità di AWS Organizations) per impostare centralmente le impostazioni predefinite degli account IMDS, inclusa l' IMDSv2 applicazione, in tutta l'organizzazione. Per un esempio di politica, 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 =optional e verifica l'utilizzo IMDSv1

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

  1. Identifica le istanze configurate per consentire una delle due o: IMDSv1 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 è facoltativo o obbligatorio per tutte le istanze, apri la finestra Preferenze (icona a forma di ingranaggio), attiva e scegli IMDSv2Conferma. In questo modo la IMDSv2colonna viene aggiunta 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. IMDSv1 Chiamate di controllo su ogni istanza:

    Usa la CloudWatch metricaMetadataNoToken. Questa metrica mostra il numero di IMDSv1 chiamate all'IMDS sulle tue istanze. Per ulteriori informazioni, consulta Metriche delle istanze.

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

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

Passaggio 2: Aggiornare il software a IMDSv2

Aggiorna tutto SDKs il CLIs software e il software che utilizzano le credenziali Role sulle tue istanze a versioni IMDSv2 compatibili. 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 .

Fase 3: Richiedere nessuna istanza IMDSv2

Dopo aver confermato l'assenza di IMDSv1 chiamate tramite la MetadataNoToken metrica, configura le istanze esistenti su require. IMDSv2 Inoltre, configura tutte le nuove istanze da richiedere. 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 modify-instance-metadata-optionsCLI per specificare che deve essere IMDSv2 usato solo.

    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 Richiedi l'uso di IMDSv2.

  2. Monitora i problemi dopo la IMDSv1 disabilitazione:

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

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

  3. Configura nuove istanze per richiedere: 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 Metadata, scegli solo V2 (è richiesto il token).

    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: utilizzate il comando run-instances e specificate che è richiesto. IMDSv2

Passaggio 4: Imposta IMDSv2 =required come predefinito

Puoi impostare IMDSv2 =required come configurazione predefinita a livello di account o di organizzazione. Ciò garantisce che tutte le istanze appena avviate siano automaticamente configurate in modo da richiedere. IMDSv2

  1. Imposta il valore predefinito 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. Ad esempio, servizio di metadati, scegli Abilitato.

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

    7. Scegliere Aggiorna.

    AWS CLI

    Utilizzate il comando modify-instance-metadata-defaultsCLI e specificate --http-tokens required e. --http-put-response-hop-limit 2

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

  2. In alternativa, imposta il valore predefinito a livello di organizzazione utilizzando una politica dichiarativa:

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

Fase 5: Imporre le istanze a richiedere IMDSv2

Dopo aver verificato che non vi è alcuna dipendenza IMDSv1 da nessuna delle tue istanze, ti consigliamo di IMDSv2 applicarla a tutte le nuove istanze.

Utilizza una delle seguenti opzioni per applicare: IMDSv2

  1. Applica IMDSv2 con una proprietà dell'account

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

    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'attivazione IMDSv1 sulle istanze esistenti attualmente disattivate. IMDSv1

    avvertimento

    Se IMDSv2 l'applicazione è abilitata e non httpTokens è impostata né required nella configurazione dell'istanza all'avvio, né nelle impostazioni dell'account o nella configurazione AMI, l'avvio dell'istanza avrà esito negativo. Per informazioni sulla risoluzione dei problemi, consulta L'avvio di un' IMDSv1istanza abilitata non riesce.

  2. In alternativa, esegui l'applicazione IMDSv2 utilizzando le seguenti chiavi di condizione IAM o SCP:

    • ec2:MetadataHttpTokens

    • ec2:MetadataHttpPutResponseHopLimit

    • ec2:MetadataHttpEndpoint

    Questi tasti condizionali controllano l'uso di RunInstancese ModifyInstanceMetadataOptions APIs e corrispondenti. CLIs 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.