Utilizzo del servizio di metadati di istanza per accedere ai metadati dell'istanza - 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à.

Utilizzo del servizio di metadati di istanza per accedere ai metadati dell'istanza

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

  • Instance Metadata Service Version 2 (IMDSv2): un metodo orientato alla sessione

    Per alcuni esempi, consulta Esempi per IMDSv2.

  • Instance Metadata Service Version 1 (IMDSv1): un metodo di richiesta/risposta

    Per alcuni esempi, consulta Esempi per IMDSv1.

Per impostazione predefinita, è possibile utilizzare uno IMDSv1 o IMDSv2 entrambi.

È possibile configurare l'Instance Metadata Service (IMDS) su ogni istanza in modo che sia necessario utilizzarlo dal codice locale o dagli utenti. IMDSv2 Quando si specifica che IMDSv2 deve essere utilizzato, IMDSv1 non funziona più. Per informazioni su come configurare l'istanza da utilizzare IMDSv2, consultaConfigurazione delle opzioni del servizio di metadati di istanza.

Le GET intestazioni PUT or sono esclusive di. IMDSv2 Se queste intestazioni sono presenti nella richiesta, la richiesta è destinata a. IMDSv2 Se non sono presenti intestazioni, si presume che la richiesta sia destinata. IMDSv1

Per un'analisi dettagliata di IMDSv2, consulta Aggiungi una difesa approfondita contro i firewall aperti, i reverse proxy e le vulnerabilità SSRF con miglioramenti all'Instance Metadata Service. EC2

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.

Nota

Gli esempi in questa sezione utilizzano l' IPv4 indirizzo dell'Instance Metadata Service (IMDS):. 169.254.169.254 Se stai recuperando i metadati dell'istanza per EC2 le istanze oltre l' IPv6 indirizzo, assicurati di abilitare e utilizzare invece l'indirizzo:. IPv6 [fd00:ec2::254] L' IPv6 indirizzo dell'IMDS è compatibile con i comandi. IMDSv2 L' IPv6 indirizzo è accessibile solo sulle istanze basate su Nitro in una sottorete IPv6 supportata (dual stack o solo). IPv6

Gli esempi seguenti utilizzano uno script di shell e recuperano gli elementi di metadati dell' IMDSv2 istanza di primo livello. Ogni esempio:

  • 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 (istanze Linux) oppure token (istanze Windows)

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

È possibile eseguire due comandi separati o combinarli.

Comandi separati

Innanzitutto, generare un token utilizzando 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, utilizzare il token per generare elementi di metadati di primo livello utilizzando il seguente comando.

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

Comandi combinati

È possibile memorizzare il token e combinare i comandi. L'esempio seguente combina i due comandi precedenti e memorizza l'intestazione del token di sessione in una variabile denominata TOKEN.

Nota

Se si verifica un errore nella creazione del token, invece di un token valido nella variabile viene memorizzato un messaggio di errore e il comando avrà esito negativo.

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/

Dopo aver creato un token, puoi riutilizzarlo finché non scade. Nel comando di esempio seguente, che ottiene l'ID dell'AMI utilizzata per avviare l'istanza, viene riutilizzato il token memorizzato in $TOKEN nell'esempio precedente.

[ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/ami-id
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
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. Nel comando di esempio seguente, che ottiene l'ID dell'AMI utilizzata per avviare l'istanza, viene riutilizzato il token memorizzato in $token nell'esempio precedente.

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 si utilizza IMDSv2 per richiedere i metadati dell'istanza, la richiesta deve includere quanto segue:

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

  2. Includi il token in tutte le richieste GET inviate all'IMDS. 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.

    • Il token è una chiave specifica dell'istanza. Il token non è valido su altre EC2 istanze e verrà rifiutato se si tenta di utilizzarlo al di fuori 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, fino a 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, è necessario creare una nuova sessione utilizzando un altro 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 devi accedere al servizio di metadati dell'istanza (IMDS). Per maggior efficienza, tuttavia, puoi specificare una durata maggiore per il token e riutilizzarlo, piuttosto che dover riscrivere una richiesta PUT ogni volta che devi richiedere metadati dell'istanza. Non esiste un limite pratico al numero di token simultanei, ognuno dei quali rappresenta la propria sessione. IMDSv2 è, tuttavia, ancora vincolato dai normali limiti di connessione e limitazione IMDS. Per ulteriori informazioni, consulta Throttling delle query.

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. Se hai bisogno di un limite di hop maggiore, puoi regolarlo usando il comando. modify-instance-metadata-options AWS CLI Ad esempio, potrebbe essere necessario un limite di hop maggiore per la compatibilità con le versioni precedenti dei servizi container in esecuzione sull'istanza. Per ulteriori informazioni, consulta Modifica delle opzioni dei metadati dell'istanza per le istanze esistenti.

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

Durante la migrazione a IMDSv2, ti consigliamo di utilizzare i seguenti strumenti e il percorso di transizione seguenti.

Strumenti per facilitare la transizione verso IMDSv2

Se il software lo utilizza IMDSv1, utilizza i seguenti strumenti per riconfigurare il software da utilizzare IMDSv2.

AWS software

Le versioni più recenti di AWS CLI e il AWS SDKs supportoIMDSv2. Per IMDSv2 utilizzarle, assicurati che le tue EC2 istanze abbiano le versioni più recenti della SDKs CLI e. Per informazioni sull'aggiornamento della CLI, consulta Installazione o aggiornamento di AWS CLI nella Guida per l'AWS Command Line Interface utente.

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

Per le versioni AWS SDK minime supportate IMDSv2, consultaUtilizzo di un SDK AWS supportato.

IMDS Packet Analyzer

L'IMDS Packet Analyzer è uno strumento open source che identifica e registra le chiamate dalla fase di avvio dell'istanza. IMDSv1 Questo può aiutare a identificare il software che effettua IMDSv1 le chiamate sulle EC2 istanze, consentendoti di individuare esattamente ciò che devi aggiornare per rendere le istanze pronte all'uso esclusivo. 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 non lo fa. IMDSv1 La MetadataNoToken CloudWatch 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.

Dopo aver disabilitato IMDSv1, puoi utilizzare la MetadataNoTokenRejected CloudWatch 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 ulteriori informazioni, consulta Parametri dell'istanza.

Aggiornamenti a e EC2 APIs CLIs

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'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. Per le istanze esistenti in un gruppo Auto Scaling, puoi utilizzare l'API per richiedere ModifyInstanceMetadataOptionsl'uso 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 IMDSv2 configurata di default

Quando avvii un'istanza, puoi configurarla automaticamente per l'utilizzo di IMDSv2 default (il HttpTokens parametro è impostato surequired) avviandola con un'AMI configurata con il ImdsSupport parametro impostato v2.0 su. È 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 di AMI.

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 in esecuzione 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 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 ulteriore livello di protezione per imporre la modifica da IMDSv1 a. IMDSv2 A livello di gestione degli accessi rispetto alle credenziali APIs richiamate tramite EC2 Role, è possibile utilizzare una nuova chiave di condizione nelle policy IAM o nelle policy di controllo AWS Organizations del servizio ()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 UnauthorizedOperation risposta. 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 UnauthorizedOperation errore.

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.

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

Fase 1: all'inizio

Aggiorna il SDKs software e il software che utilizza le credenziali Role sulle relative EC2 istanze a versioni compatibili con. CLIs IMDSv2 Per ulteriori informazioni sull'aggiornamento della CLI, consulta Installazione o aggiornamento all'ultima versione di AWS CLI nella Guida per l'AWS Command Line Interface utente.

Quindi, modifica il software che accede direttamente ai metadati dell'istanza (in altre parole, che non utilizza un SDK) utilizzando le richieste. IMDSv2 È possibile utilizzare l'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 Questa metrica mostra il numero di IMDSv1 chiamate all'IMDS sulle tue istanze. Per ulteriori informazioni, consulta Parametri dell'istanza.

Passaggio 3: Quando l'utilizzo è pari a zero IMDSv1

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

  • Account predefinito

    Puoi IMDSv2 impostarlo come obbligatorio come account predefinito. Quando viene avviata un'istanza, la configurazione dell'istanza viene impostata automaticamente sull'account predefinito.

    Per impostare l'account predefinito, completa queste operazioni:

    • EC2 Console Amazon: nella EC2 dashboard, in Attributi dell'account, Protezione e sicurezza dei dati, 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 impostazione predefinita 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:

    • EC2 Console Amazon: nella procedura guidata di avvio dell'istanza, imposta Metadata accessibile su Enabled e la versione Metadata solo su V2 (token richiesto). Per ulteriori informazioni, consulta Configurazione dell'istanza all'avvio.

    • AWS CLI: utilizza il comando run-instances e specifica che è richiesto. IMDSv2

  • Istanze esistenti

    Per le istanze esistenti, procedi come indicato di seguito:

    • EC2 Console Amazon: nella pagina Istanze, seleziona l'istanza, scegli Azioni, Impostazioni istanza, Modifica le 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 IMDSv2 utilizzato solo.

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

Passaggio 4: verifica se le istanze sono passate a IMDSv2

Puoi verificare se alcune istanze non sono ancora configurate per richiedere l'uso di IMDSv2, in altre parole, IMDSv2 sono ancora configurate come. optional Se alcune istanze sono ancora configurate comeoptional, è possibile modificare le opzioni relative ai metadati dell'istanza IMDSv2 required ripetendo il passaggio 3 precedente.

Per filtrare le istanze:

  • EC2 Console Amazon: nella pagina Istanze, filtra le istanze utilizzando il filtro IMDSv2 = opzionale. 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 l'opzione IMDSv2per aggiungere la IMDSv2colonna 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

Passaggio 5: quando tutte le istanze sono passate a IMDSv2

Le chiavi di condizione ec2:MetadataHttpTokensec2:MetadataHttpPutResponseHopLimit, e ec2:MetadataHttpEndpoint IAM possono essere utilizzate per controllare 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.

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

Utilizzo di un SDK AWS supportato

Per essere utilizzate IMDSv2, le EC2 istanze devono utilizzare una versione AWS SDK che supporti l'utilizzo. IMDSv2 Le versioni più recenti di tutto il AWS SDKs supporto che utilizza. IMDSv2

Importante

Ti consigliamo di rimanere al passo con i nuovi rilasci degli SDK per poter usufruire delle funzionalità, degli aggiornamenti di sicurezza e delle dipendenze sottostanti più recenti. L'uso continuato di una versione SDK non supportata è sconsigliato ed è a tua discrezione. Per ulteriori informazioni, consulta la politica di manutenzione di AWS SDKs and Tools nella AWS SDKs and Tools Reference Guide.

Le seguenti sono le versioni minime che supportano l'utilizzo di IMDSv2:

Esempi per IMDSv2

Esegui i seguenti esempi sulla tua EC2 istanza Amazon per recuperare i metadati dell'istanza. IMDSv2

Nelle istanze Windows, puoi usare Windows PowerShell oppure puoi installare cURL o wget. Se installi uno strumento di terze parti su un'istanza Windows, assicurati di leggere attentamente la relativa documentazione, dal momento che le chiamate e l'output potrebbero essere diversi da quanto documentato in questa sede.

Recupero delle versioni disponibili dei metadati dell'istanza

Questo esempio recupera le versioni disponibili dei metadati dell'istanza. Ogni versione fa riferimento a una build dei metadati dell'istanza quando sono state rilasciate nuove categorie di metadati dell'istanza. Le versioni di compilazione dei metadati dell'istanza non sono correlate alle versioni dell' EC2 API Amazon. Le versioni precedenti sono disponibili in presenza di script basati sulla struttura e sulle informazioni presenti in una versione precedente.

cURL
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/ 1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01 2009-04-04 2011-01-01 2011-05-01 2012-01-12 2014-02-25 2014-11-05 2015-10-20 2016-04-19 ... latest
PowerShell
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
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/ 1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01 2009-04-04 2011-01-01 2011-05-01 2012-01-12 2014-02-25 2014-11-05 2015-10-20 2016-04-19 ... latest

Recupero degli elementi di metadati di primo livello

Questo esempio recupera gli elementi di metadati di primo livello. Per ulteriori informazioni sugli elementi nella risposta, consulta Categorie di metadati dell'istanza.

Tieni presente che i tag sono inclusi in questo output solo se hai consentito l'accesso. Per ulteriori informazioni, consulta Per consentire l'accesso ai tag nei metadati delle istanze.

cURL
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ events/ hostname iam/ instance-action instance-id instance-life-cycle instance-type local-hostname local-ipv4 mac metrics/ network/ placement/ profile public-hostname public-ipv4 public-keys/ reservation-id security-groups services/ tags/
PowerShell
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
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ hostname iam/ instance-action instance-id instance-life-cycle instance-type local-hostname local-ipv4 mac metrics/ network/ placement/ profile public-hostname public-ipv4 public-keys/ reservation-id security-groups services/ tags/

Ottenimento dei valori per gli elementi di metadati

Gli esempi seguenti consentono di recuperare i valori di alcuni degli elementi di metadati di primo livello che sono stati ottenuti nell'esempio precedente. Queste richieste utilizzano il token memorizzato che è stato creato utilizzando il comando nell'esempio precedente. Il token non deve essere scaduto.

cURL
[ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/ami-id ami-0abcdef1234567890
[ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/reservation-id r-0efghijk987654321
[ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/local-hostname ip-10-251-50-12.ec2.internal
[ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-hostname ec2-203-0-113-25.compute-1.amazonaws.com
PowerShell
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/ami-id ami-0abcdef1234567890
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/reservation-id r-0efghijk987654321
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/local-hostname ip-10-251-50-12.ec2.internal
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/public-hostname ec2-203-0-113-25.compute-1.amazonaws.com

Recupero dell'elenco di chiavi pubbliche disponibili

Questo esempio recupera l'elenco delle chiavi pubbliche disponibili.

cURL
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys/ 0=my-public-key
PowerShell
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
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/public-keys/ 0=my-public-key

Visualizzazione dei formati in cui è disponibile la chiave pubblica 0

Questo esempio mostra i formati in cui è disponibile la chiave pubblica 0.

cURL
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys/0/ openssh-key
PowerShell
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
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key openssh-key

Recupero della chiave pubblica 0 (nel formato di chiave OpenSSH)

Questo esempio recupera la chiave pubblica 0 (nel formato di chiave OpenSSH).

cURL
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key ssh-rsa MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE my-public-key
PowerShell
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
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key ssh-rsa MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE my-public-key

Recupero dell'ID della sottorete per un'istanza

In questo esempio viene recuperato l'ID della sottorete per un'istanza.

cURL
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/network/interfaces/macs/02:29:96:8f:6a:2d/subnet-id subnet-be9b61d7
PowerShell
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
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/network/interfaces/macs/02:29:96:8f:6a:2d/subnet-id subnet-be9b61d7

Ottenere i tag dell'istanza per un'istanza

Se l'accesso ai tag dell'istanza nei metadati dell'istanza è abilitato, puoi ottenere i tag per un'istanza dai metadati dell'istanza. Per ulteriori informazioni, consulta Recupero dei tag dai metadati dell'istanza.

Esempi per IMDSv1

Esegui i seguenti esempi sulla tua EC2 istanza Amazon per recuperare i metadati dell'istanza. IMDSv1

Nelle istanze Windows, puoi usare Windows PowerShell oppure puoi installare cURL o wget. Se installi uno strumento di terze parti su un'istanza Windows, assicurati di leggere attentamente la relativa documentazione, dal momento che le chiamate e l'output potrebbero essere diversi da quanto documentato in questa sede.

Recupero delle versioni disponibili dei metadati dell'istanza

Questo esempio recupera le versioni disponibili dei metadati dell'istanza. Ogni versione fa riferimento a una build dei metadati dell'istanza quando sono state rilasciate nuove categorie di metadati dell'istanza. Le versioni di compilazione dei metadati dell'istanza non sono correlate alle versioni dell' EC2 API Amazon. Le versioni precedenti sono disponibili in presenza di script basati sulla struttura e sulle informazioni presenti in una versione precedente.

cURL
[ec2-user ~]$ curl http://169.254.169.254/ 1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01 2009-04-04 2011-01-01 2011-05-01 2012-01-12 2014-02-25 2014-11-05 2015-10-20 2016-04-19 ... latest
PowerShell
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/ 1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01 2009-04-04 2011-01-01 2011-05-01 2012-01-12 2014-02-25 2014-11-05 2015-10-20 2016-04-19 ... latest

Recupero degli elementi di metadati di primo livello

Questo esempio recupera gli elementi di metadati di primo livello. Per ulteriori informazioni sugli elementi nella risposta, consulta Categorie di metadati dell'istanza.

Tieni presente che i tag sono inclusi in questo output solo se hai consentito l'accesso. Per ulteriori informazioni, consulta Per consentire l'accesso ai tag nei metadati delle istanze.

cURL
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ events/ hostname iam/ instance-action instance-id instance-type local-hostname local-ipv4 mac metrics/ network/ placement/ profile public-hostname public-ipv4 public-keys/ reservation-id security-groups services/ tags/
PowerShell
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ hostname iam/ instance-action instance-id instance-type local-hostname local-ipv4 mac metrics/ network/ placement/ profile public-hostname public-ipv4 public-keys/ reservation-id security-groups services/ tags/

Ottenimento dei valori per gli elementi di metadati

Questi esempi consentono di recuperare i valori di alcuni degli elementi di metadati di primo livello che sono stati ottenuti nell'esempio precedente.

cURL
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/ami-id ami-0abcdef1234567890
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/reservation-id r-0efghijk987654321
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/local-hostname ip-10-251-50-12.ec2.internal
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/public-hostname ec2-203-0-113-25.compute-1.amazonaws.com
PowerShell
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/ami-id ami-0abcdef1234567890
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/reservation-id r-0efghijk987654321
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/local-hostname ip-10-251-50-12.ec2.internal
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/public-hostname ec2-203-0-113-25.compute-1.amazonaws.com

Recupero dell'elenco di chiavi pubbliche disponibili

Questo esempio recupera l'elenco delle chiavi pubbliche disponibili.

cURL
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/public-keys/ 0=my-public-key
PowerShell
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/public-keys/ 0=my-public-key

Visualizzazione dei formati in cui è disponibile la chiave pubblica 0

Questo esempio mostra i formati in cui è disponibile la chiave pubblica 0.

cURL
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/public-keys/0/ openssh-key
PowerShell
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key openssh-key

Recupero della chiave pubblica 0 (nel formato di chiave OpenSSH)

Questo esempio recupera la chiave pubblica 0 (nel formato di chiave OpenSSH).

cURL
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key ssh-rsa MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE my-public-key
PowerShell
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key ssh-rsa MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE my-public-key

Recupero dell'ID della sottorete per un'istanza

In questo esempio viene recuperato l'ID della sottorete per un'istanza.

cURL
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/02:29:96:8f:6a:2d/subnet-id subnet-be9b61d7
PowerShell
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/network/interfaces/macs/02:29:96:8f:6a:2d/subnet-id subnet-be9b61d7

Ottenere i tag dell'istanza per un'istanza

Se l'accesso ai tag dell'istanza nei metadati dell'istanza è abilitato, puoi ottenere i tag per un'istanza dai metadati dell'istanza. Per ulteriori informazioni, consulta Recupero dei tag dai metadati dell'istanza.