Accedi e configura Instance Metadata Service (IMDS) su Lightsail - Amazon Lightsail

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

Accedi e configura Instance Metadata Service (IMDS) su Lightsail

Puoi accedere ai metadati dell'istanza da un'istanza in esecuzione utilizzando uno dei metodi seguenti:

  • Servizio di metadati dell'istanza Versione 1 (IMDSv1): un metodo di richiesta/risposta

  • Servizio di metadati dell'istanza Versione 2 (IMDSv2): un metodo orientato alla sessione

    Importante

    Non tutti i blueprint di istanza in Lightsail supportano IMDSv2. Il parametro dell'istanza MetadataNoToken tiene traccia del numero di chiamate al servizio di metadati dell'istanza che utilizzano IMDSv1. Per ulteriori informazioni, consulta Visualizzazione dei parametri delle istanze.

Per impostazione predefinita, puoi utilizzare IMDSv1 o IMDSv2 oppure entrambi. Il servizio di metadati dell'istanza esegue la distinzione tra richieste IMDSv1 e IMDSv2 a seconda che un'intestazione PUT o GET, univoca per IMDSv2, sia presente in tale richiesta. Per ulteriori informazioni, consulta Aggiungere protezione in profondità contro firewall aperti, proxy inversi e vulnerabilità SSRF con miglioramenti al servizio metadati dell'istanza EC2.

Puoi configurare il servizio metadati dell'istanza su ogni istanza in modo che il codice locale o gli utenti utilizzino IMDSv2. Quando specifichi l'utilizzo di IMDSv2, IMDSv1 non funziona più. Per ulteriori informazioni, consulta Configurazione delle opzioni di metadati dell'istanza nella Guida per l'utente di Amazon Elastic Compute Cloud per le istanze Linux.

Per recuperare metadati delle istanze, consulta Recupero dei metadati dell'istanza nella Guida per l'utente di Amazon Elastic Compute Cloud per le istanze Linux.

Nota

Negli esempi riportati in questa sezione viene utilizzato l'indirizzo IPv4 del servizio metadati dell'istanza: 169.254.169.254. Se stai recuperando i metadati dell'istanza per le istanze tramite l'indirizzo IPv6, assicurati invece di abilitare e utilizzare l'indirizzo IPv6: fd00:ec2::254. L'indirizzo IPv6 del servizio metadati dell'istanza è compatibile con i comandi IMDSv2.

Funzionamento di Servizio di metadati dell'istanza Versione 2

IMDSv2 utilizza richieste orientate alla sessione. Con richieste orientate alla sessione, puoi creare un token di sessione che definisce la durata della sessione, che può essere compresa tra un minimo di un secondo e un massimo di sei ore. Durante la specifica della durata, puoi utilizzare lo stesso token di sessione per le richieste successive. Al termine della durata specificata, è necessario creare un nuovo token di sessione da utilizzare per richieste future.

Importante

Le istanze Lightsail lanciate da Amazon Linux 2023 avranno IMDSv2 configurato per impostazione predefinita.

Gli esempi seguenti utilizzano Linux e PowerShell shell script e IMDSv2 per recuperare gli elementi di metadati delle istanze di primo livello. Questi esempi eseguono le seguenti operazioni:

  • Crea un token di sessione della durata di sei ore (21.600 secondi) utilizzando la richiesta PUT

  • Memorizza l'intestazione del token di sessione in una variabile denominata TOKEN (su Linux) oppure token (su Windows)

  • Richiedi gli elementi di metadati di livello superiore utilizzando il token

Inizia eseguendo i comandi di seguito:

  • In Linux:

    • Innanzitutto, generare un token con il comando riportato di seguito.

      [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
    • Quindi, utilizza il token per generare elementi di metadati di primo livello utilizzando il seguente comando.

      [ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
  • In Windows:

    • Innanzitutto, genera un token con il comando riportato di seguito.

      PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
    • Quindi, utilizza il token per generare elementi di metadati di primo livello utilizzando il seguente comando.

      PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/

Dopo aver creato un token, puoi riutilizzarlo finché non scade. Negli esempi seguenti, ogni comando ottiene l'ID dello schema (Amazon Machine Image (AMI)) utilizzato per avviare l'istanza. Il token dell'esempio precedente viene riutilizzato. È memorizzato su $TOKEN (su Linux) oppure su $token (su Windows).

  • In Linux:

    [ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ami-id
  • In Windows:

    PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} ` -Method GET -uri http://169.254.169.254/latest/meta-data/ami-id

Quando utilizzi IMDSv2 per richiedere i metadati dell'istanza, la richiesta deve includere quanto segue:

  • Una richiesta PUT: utilizza una richiesta PUT per inizializzare una sessione al servizio di metadati dell'istanza. La richiesta PUT restituisce un token che deve essere incluso nelle richieste GET successive al servizio di metadati dell'istanza. Il token è obbligatorio per accedere ai metadati utilizzando IMDSv2.

  • Il token includi il token in tutte le richieste GET al servizio di metadati dell'istanza. Quando l'uso del token è impostato su required, le richieste senza una token valido o con un token scaduto ricevono un codice di errore HTTP 401 - Unauthorized. Per informazioni sulla modifica dei requisiti di utilizzo del token, vedere nel Command Reference. update-instance-metadata-optionsAWS CLI

    • Il token è una chiave specifica dell'istanza. Il token non è valido su altre istanze e verrà rifiutato se si tenta di utilizzarlo all'esterno dell'istanza su cui è stato generato.

    • La richiesta PUT deve includere un'intestazione che specifica il Time To Live (TTL) per il token, in secondi. Il TTL può essere specificato per un massimo di sei ore (21.600 secondi). Il token rappresenta una sessione logica. Il TTL specifica la durata di validità del token e, pertanto, la durata della sessione.

    • Dopo che un token scade, per continuare ad accedere ai metadati dell'istanza, devi creare una nuova sessione utilizzando un'altra richiesta PUT.

    • Puoi scegliere di riutilizzare un token o creare un nuovo token con ogni richiesta. Per un piccolo numero di richieste, potrebbe essere più semplice generare e utilizzare immediatamente un token ogni volta che occorre accedere al servizio di metadati dell'istanza. Per maggior efficienza, puoi specificare una durata maggiore per il token e riutilizzarlo, piuttosto che riscrivere una richiesta PUT ogni volta che devi richiedere metadati dell'istanza. Non esiste un limite effettivo al numero di token simultanei, ciascuno dei quali rappresenta la propria sessione. Tuttavia, IMDSv2 è comunque vincolato ai normali limiti di connessione e di throttling al servizio di metadati dell'istanza. Per ulteriori informazioni, consulta Limitazione delle query nella Guida per l'utente di Amazon Elastic Compute Cloud per le istanze Linux.

Nei metodi HTTP GET e HEAD sono consentite richieste dei metadati dell'istanza IMDSv2. Le richieste PUT vengono rifiutate se contengono un'intestazione X-Forwarded-For.

Per impostazione predefinita, la risposta alle richieste PUT dispone di un limite di hop della risposta (time-to-live) di 1 a livello del protocollo IP. Puoi regolare il limite di hop utilizzando il comando update-instance-metadata-options se è necessario aumentarlo. Ad esempio, potrebbe essere necessario un limite di hop più grande per la compatibilità con le versioni precedenti dei servizi di container in esecuzione sull'istanza. Per ulteriori informazioni, vedere update-instance-metadata-optionsnel AWS CLI Command Reference.

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

L'utilizzo di Instance Metadata Service Version 2 (IMDSv2) è facoltativo. Il servizio metadati dell'istanza versione 1 (IMDSv1) continuerà a essere supportato indefinitamente. Se scegli di eseguire la migrazione all'utilizzo di 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 ultime versioni degli AWS SDK e il AWS CLI supporto IMDSv2. Per utilizzare IMDSv2, assicurati che le tue istanze dispongano delle versioni più recenti degli SDK e di. AWS AWS CLIPer informazioni sull'aggiornamento di AWS CLI, consulta Installazione, aggiornamento e disinstallazione di nella Guida per l'utente. AWS CLIAWS Command Line Interface Tutti i pacchetti software Amazon Linux 2 supportano IMDSv2.

  • Parametro dell'istanza: IMDSv2 utilizza sessioni supportate da token, contrariamente a IMDSv1. Il parametro dell'istanza MetadataNoToken tiene traccia del numero di chiamate al servizio di metadati dell'istanza che utilizzano IMDSv1. Monitorando questo parametro a zero, puoi determinare se e quando tutto il software è stato aggiornato per utilizzare IMDSv2. Per ulteriori informazioni, consulta Visualizzazione dei parametri delle istanze in Amazon Lightsail.

  • Aggiornamenti alle operazioni AWS CLI e ai comandi dell'API Lightsail: per le istanze esistenti, puoi utilizzare update-instance-metadata-options AWS CLI il comando (o l'operazione API) per richiedere UpdateInstanceMetadataOptionsl'uso di IMDSv2. Il comando seguente è un esempio. Assicurati di sostituirlo InstanceNamecon il nome dell'istanza e RegionNamecon quello in cui è inserita l'istanza. Regione AWS

    aws lightsail update-instance-metadata-options --region RegionName --instance-name InstanceName --http-tokens required

Percorso consigliato di richiesta dell'accesso a IMDSv2

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

Fase 1: all'inizio

Aggiorna gli AWS SDK e il AWS CLI software che utilizza le credenziali di ruolo sulle istanze alle versioni compatibili con IMDSv2. Per informazioni sull'aggiornamento di AWS CLI, consulta Aggiornamento alla versione più recente di nella Guida per l'utente. AWS CLIAWS Command Line Interface

Quindi, modifica il software che accede direttamente ai metadati dell'istanza (in altre parole, che non utilizza un AWS SDK) utilizzando le richieste IMDSv2.

Fase 2: durante la transizione

Monitora l'avanzamento della transizione utilizzando il parametro dell'istanza MetadataNoToken. Questo parametro mostra il numero di chiamate al servizio di metadati dell'istanza che utilizzano IMDSv1 nelle istanze. Per ulteriori informazioni, consulta Visualizzazione dei parametri delle istanze.

Fase 3: quando è tutto pronto su tutte le istanze

Tutto è pronto su tutte le istanze quando il parametro dell'istanza MetadataNoToken registra utilizzo di IMDSv1 pari a zero. In questa fase, puoi richiedere l'utilizzo di IMDSv2 tramite il comando. update-instance-metadata-options Puoi apportare queste modifiche su istanze in esecuzione; non è necessario riavviare le istanze.

L'aggiornamento delle opzioni dei metadati delle istanze per le istanze esistenti è disponibile solo tramite l'API Lightsail o il. AWS CLI Al momento non è disponibile nella console Lightsail. Per ulteriori informazioni, consulta. update-instance-metadata-options

Documentazione IMDS aggiuntiva

La seguente documentazione IMDS è disponibile nella Guida per l'utente di Amazon Elastic Compute Cloud per le istanze Linux e nella Guida per l'utente di Amazon Elastic Compute Cloud per le istanze Windows:

Nota

In Amazon EC2, gli schemi dell'istanza sono denominati Amazon Machine Image (AMI).