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 scegli di eseguire la migrazione a IMDSv2, ti consigliamo di utilizzare gli strumenti e il percorso di transizione seguenti.

Strumenti per semplificare la transizione a IMDSv2

Se il software utilizza IMDSv1, gli strumenti seguenti consentono di riconfigurare il software per utilizzare IMDSv2.

AWS software

Le versioni più recenti degli AWS CLI AWS SDK supportano IMDSv2. Per utilizzare IMDSv2, accertati che le istanze EC2 dispongano delle versioni più recenti della CLI e degli SDK. Per informazioni sull'aggiornamento della CLI, consulta Installazione, aggiornamento e disinstallazione di AWS CLI nella Guida per l'utente di AWS Command Line Interface .

Tutti i pacchetti software Amazon Linux 2 e Amazon Linux 2023 supportano iMDSv2. In Amazon Linux 2023, iMDSv1 è disabilitato per impostazione predefinita.

Per le versioni AWS SDK minime che supportano IMDSv2, consulta. Utilizzo di un SDK AWS supportato

IMDS Packet Analyzer

IMDS Packet Analyzer è uno strumento open source che identifica e registra le chiamate IMDSv1 dalla fase di avvio dell'istanza. Questo strumento può aiutare a identificare il software che effettua chiamate IMDSv1 sulle istanze EC2, consentendoti di individuare esattamente cosa devi aggiornare per preparare le tue istanze al solo utilizzo di IMDSv2. Puoi eseguire IMDS Packet Analyzer da una riga di comando o installarlo come servizio. Per ulteriori informazioni, vedere IMDS Packet Analyzer su. GitHub

CloudWatch

IMDSv2 utilizza sessioni supportate da token, mentre IMDSv1 no. La MetadataNoToken CloudWatch 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.

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

Per ulteriori informazioni, consulta Parametri dell'istanza.

Aggiornamenti alle API e alle CLI di EC2

Per le nuove istanze, puoi utilizzare 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.

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

Per richiedere l'utilizzo di IMDSv2 in tutte le nuove istanze avviate 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. Per le istanze esistenti in un gruppo Auto Scaling, è possibile utilizzare l'API per richiedere ModifyInstanceMetadataOptionsl'uso di IMDSv2 sulle istanze esistenti oppure terminare 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.

Usa un'AMI che configura IMDSv2 per impostazione predefinita

Quando avvii un'istanza, puoi configurarla automaticamente per l'uso di IMDSv2 per impostazione predefinita (il parametro HttpTokens è impostato su required) avviandola con un'AMI configurata con il parametro ImdsSupport impostato su v2.0. È possibile impostare il ImdsSupport parametro su v2.0 quando si registra l'AMI utilizzando il comando CLI register-image oppure modificare un'AMI esistente utilizzando il comando CLI. modify-image-attribute Per ulteriori informazioni, consulta Configurazione dell'AMI.

Policy IAM e SCP

È possibile utilizzare una policy IAM o una policy di controllo dei AWS Organizations servizi (SCP) per controllare gli utenti nel modo seguente:

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

  • Impossibile modificare un'istanza in esecuzione 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 nell'API o nella CLI non corrisponde allo stato specificato nella policy che contiene la chiave di condizione, la chiamata dell'API o della CLI non riesce e viene restituita la 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 nuova chiave di condizione nelle policy IAM o AWS Organizations nelle policy di controllo dei 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ò assicura che le credenziali distribuite tramite IMDSv1 non possano di fatto essere utilizzate per chiamare API perché le eventuali chiamate API che non corrispondono alla condizione specificata riceveranno un errore UnauthorizedOperation.

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

Utilizzando gli strumenti precedenti, ti consigliamo di seguire questo percorso per eseguire la transizione a IMDSv2.

Fase 1: all'inizio

Aggiorna gli SDK, le CLI e il software che utilizza credenziali del ruolo sulle istanze EC2 a versioni compatibili con IMDSv2. Per informazioni sull'aggiornamento della CLI, consulta Aggiornamento all'ultima versione della AWS CLI nella Guida per l'utente di AWS Command Line Interface .

Quindi, modifica il software che accede direttamente ai metadati dell'istanza (in altre parole, che non utilizza un SDK) utilizzando le richieste IMDSv2. Puoi utilizzare IMDS Packet Analyzer per identificare il software da modificare per utilizzare le richieste IMDSv2.

Fase 2: monitoraggio dell'avanzamento della transizione

Tieni traccia dei progressi della transizione utilizzando 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.

Fase 3: quando l'utilizzo di IMDSv1 è pari a zero

Quando la CloudWatch metrica MetadataNoToken registra un utilizzo pari a zero per IMDSv1, le istanze sono pronte per la transizione completa all'utilizzo di IMDSv2. In questa fase, puoi fare quanto segue:

  • Account predefinito

    È possibile impostare IMDSv2 in modo che sia obbligatorio come account predefinito. All'avvio di un'istanza, la configurazione dell'istanza viene automaticamente impostata sui valori predefiniti dell'account.

    Per impostare l'account predefinito, procedi come segue:

    • Console Amazon EC2: nella dashboard EC2, in Attributi dell'account, protezione dei dati e sicurezza, per le impostazioni predefinite IMDS, imposta il servizio di metadati dell'istanza su Enabled e la versione dei metadati solo su V2 (token richiesto). Per ulteriori informazioni, consulta Imposta IMDSv2 come predefinito per l'account.

    • AWS CLI: utilizzate il comando modify-instance-metadata-defaultsCLI e specificate --http-tokens required e. --http-put-response-hop-limit 2

  • Nuove istanze

    Quando avvii una nuova istanza, puoi effettuare le operazioni seguenti:

    • Console di Amazon EC2: nella procedura guidata di avvio dell'istanza, imposta Metadata accessible (Metadati accessibili) su Enabled (Abilitato) e Metadata version (Versione metadati) su V2 only (token required) (Solo V2 [token richiesto]). Per ulteriori informazioni, consulta Configurazione dell'istanza all'avvio.

    • AWS CLI: utilizzate il comando CLI run-instances e specificate che IMDSv2 è obbligatorio.

  • Istanze esistenti

    Per le istanze esistenti, procedi come indicato di seguito:

    • Console Amazon EC2: seleziona l'istanza nella pagina Istanze, scegli Operazioni, Impostazioni istanza, Modifica opzioni dei metadati dell'istanza e, per IMDSv2, scegli Obbligatorio. Per ulteriori informazioni, consulta Richiesta dell'uso di IMDSv2.

    • AWS CLI: utilizzare il comando modify-instance-metadata-optionsCLI per specificare che deve essere utilizzato solo IMDSv2.

    Puoi modificare le opzioni dei metadati dell'istanza nelle istanze in esecuzione, senza dover riavviare le istanze dopo aver apportato le modifiche.

Fase 4: verifica se le istanze hanno eseguito la transizione a IMDSv2

Puoi verificare se alcune istanze non sono ancora configurate per l'utilizzo di IMDSv2, in altre parole, se IMDSv2 è ancora configurato come optional. Se alcune istanze sono ancora configurate come optional, puoi modificare le opzioni dei metadati dell'istanza per rendere IMDSv2 required ripetendo la fase 3 precedente.

Per filtrare le istanze:

  • Console Amazon EC2: nella pagina Istanze, filtra le istanze utilizzando il filtro IMDSv2 = facoltativo. Per ulteriori informazioni sul filtro, consulta Filtrare le risorse mediante la console. Puoi anche vedere se IMDSv2 è obbligatorio o facoltativo per ogni istanza: nella finestra Preferenze, attiva IMDSv2 per aggiungere la colonna IMDSv2 alla tabella Istanze.

  • AWS CLI: utilizza il comando CLI describe-instances e filtra per metadata-options.http-tokens = optional, come mostrato:

    aws ec2 describe-instances --filters "Name=metadata-options.http-tokens,Values=optional" --query "Reservations[*].Instances[*].[InstanceId]" --output text

Fase 5: quando tutte le istanze hanno eseguito la transizione a IMDSv2

Le chiavi di condizione ec2:MetadataHttpTokensec2:MetadataHttpPutResponseHopLimit, e ec2:MetadataHttpEndpoint IAM possono essere utilizzate per controllare l'uso delle ModifyInstanceMetadataOptionsAPI RunInstancese delle CLI 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.

Inoltre, dopo aver disabilitato IMDSv1, puoi utilizzare la MetadataNoTokenRejected CloudWatch metrica per tenere traccia del numero di volte in cui una chiamata IMDSv1 è stata tentata e rifiutata. Se, dopo aver disabilitato IMDSv1, il software non funziona correttamente e la MetadataNoTokenRejected metrica registra le chiamate IMDSv1, è probabile che questo software debba essere aggiornato per utilizzare IMDSv2.