Utilizzate l'Instance Metadata Service 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à.

Utilizzate l'Instance Metadata Service 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 Instance Metadata Service (IMDS) su ogni istanza in modo che il codice locale o gli utenti lo debbano utilizzareIMDSv2. Quando si specifica che IMDSv2 deve essere utilizzato, IMDSv1 non funziona più. Per informazioni su come configurare l'istanza da utilizzareIMDSv2, consultaConfigura le opzioni del servizio Instance Metadata.

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 diIMDSv2, consulta Aggiungere una difesa approfondita contro firewall aperti, reverse proxy e SSRF vulnerabilità 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'IPv4indirizzo dell'Instance Metadata Service (IMDS):169.254.169.254. Se stai recuperando i metadati dell'istanza per EC2 le istanze tramite l'IPv6indirizzo, assicurati di abilitare e utilizzare invece l'indirizzo:. IPv6 [fd00:ec2::254] L'IPv6indirizzo di IMDS è compatibile con i comandi. IMDSv2 L'IPv6indirizzo è 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'IMDSv2istanza 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) o 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'utente AMI utilizzato per avviare l'istanza, viene riutilizzato il token memorizzato $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'utente AMI utilizzato per avviare l'istanza, viene riutilizzato il token memorizzato $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 è necessario per accedere ai metadati utilizzando. IMDSv2

  2. Includi il token in tutte GET le richieste a. IMDS Quando l'utilizzo del token è impostato surequired, le richieste senza un token valido o con un token scaduto ricevono un codice 401 - Unauthorized HTTP di errore.

    • 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 PUT richiesta deve includere un'intestazione che specifichi il tempo di live (TTL) per il token, in secondi, fino a un massimo di sei ore (21.600 secondi). Il token rappresenta una sessione logica. TTLspecifica il periodo di validità del token e, quindi, 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 numero limitato di richieste, potrebbe essere più semplice generare e utilizzare immediatamente un token ogni volta che è necessario accedere a. 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 effettivo al numero di token simultanei, ciascuno dei quali rappresenta la propria sessione. IMDSv2è tuttavia ancora vincolato dai normali limiti di IMDS connessione e limitazione. Per ulteriori informazioni, consulta Throttling delle query.

HTTPGETe HEAD i metodi sono consentiti nelle IMDSv2 richieste di metadati delle istanze. PUTle richieste vengono rifiutate se contengono un' X-Forwarded-Forintestazione.

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 modify-instance-metadata-options AWS CLI comando. 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 aIMDSv2, ti consigliamo di utilizzare i seguenti strumenti e il percorso di transizione seguenti.

Strumenti per facilitare la transizione verso IMDSv2

Se il software lo utilizzaIMDSv1, utilizza i seguenti strumenti per riconfigurare il software da utilizzareIMDSv2.

AWS software

Le versioni più recenti di AWS CLI e il AWS SDKs supportoIMDSv2. Per IMDSv2 utilizzarle, assicurati che le tue EC2 istanze dispongano delle versioni più recenti di CLI andSDKs. Per informazioni sull'aggiornamento diCLI, consulta Installazione, aggiornamento e disinstallazione 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 AWS SDK versioni minime supportateIMDSv2, consultaUtilizza un file supportato AWS SDK.

IMDSPacket Analyzer

IMDSPacket 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 È possibile eseguire IMDS Packet Analyzer da una riga di comando o installarlo come servizio. Per ulteriori informazioni, vedere IMDSPacket Analyzer su. GitHub

CloudWatch

IMDSv2utilizza 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 Tracciando questa metrica fino a zero, puoi determinare se e quando tutto il tuo software è stato aggiornato per essere utilizzato. IMDSv2

Dopo aver disabilitatoIMDSv1, 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, è possibile utilizzare il RunInstancesAPIper 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, è possibile utilizzare ModifyInstanceMetadataOptionsAPIper 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 si crea un modello di avvio o si crea una configurazione di avvio, è necessario configurare MetadataOptions i parametri per richiedere l'uso 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 ModifyInstanceMetadataOptionsAPIil per richiedere l'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.

Utilizzate una configurazione predefinita AMI IMDSv2

Quando si avvia un'istanza, è possibile configurarla automaticamente per l'utilizzo di IMDSv2 default (il HttpTokens parametro è impostato surequired) avviandola con un'AMIistanza configurata con il ImdsSupport parametro impostato su. v2.0 È possibile impostare il ImdsSupport parametro su v2.0 quando lo si registra AMI utilizzando il CLI comando register-image oppure è possibile modificarne uno esistente AMI utilizzando il comando. modify-image-attributeCLI Per ulteriori informazioni, consulta Configura la AMI.

IAMpolitiche e SCPs

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

  • Non è possibile avviare un'istanza utilizzando il RunInstancesAPIa meno che l'istanza non sia configurata per l'usoIMDSv2.

  • Impossibile modificare un'istanza in esecuzione utilizzando ModifyInstanceMetadataOptionsAPIto reenable. IMDSv1

La IAM politica o SCP deve contenere le seguenti chiavi di IAM condizione:

  • ec2:MetadataHttpEndpoint

  • ec2:MetadataHttpPutResponseHopLimit

  • ec2:MetadataHttpTokens

Se un parametro della CLI chiamata API o non corrisponde allo stato specificato nella politica che contiene la chiave di condizione, la CLI chiamata API o ha esito negativo e viene generata una UnauthorizedOperation risposta.

Inoltre, puoi scegliere un ulteriore livello di protezione per applicare la modifica da IMDSv1 aIMDSv2. A livello di gestione degli accessi rispetto alle credenziali APIs richiamate tramite EC2 Role, è possibile utilizzare una nuova chiave di condizione nelle IAM politiche o nelle politiche di controllo AWS Organizations del servizio ()SCPs. In particolare, utilizzando la chiave di condizione ec2:RoleDelivery con un valore pari 2.0 a nelle IAM politiche, le API chiamate effettuate con le credenziali EC2 Role ottenute da IMDSv1 riceveranno una UnauthorizedOperation risposta. La stessa cosa può essere ottenuta in modo più ampio con quella condizione richiesta da un. SCP Ciò garantisce che le credenziali fornite tramite IMDSv1 non possano essere effettivamente utilizzate per la chiamata APIs poiché qualsiasi API chiamata che non corrisponde alla condizione specificata riceverà un UnauthorizedOperation errore.

Ad esempio, IAM le politiche, vediUtilizzo dei metadati delle istanze. Per ulteriori informazioniSCPs, vedere Service Control Policies nella Guida AWS Organizations per l'utente.

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

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 informazioni sull'aggiornamento diCLI, consulta Aggiornamento alla versione più recente di AWS CLI nella Guida per l'utente.AWS Command Line Interface

Quindi, modificate il software che accede direttamente ai metadati dell'istanza (in altre parole, che non ne utilizza unoSDK) utilizzando le richieste. IMDSv2 È possibile utilizzare IMDSPacket 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 CloudWatch metrica. MetadataNoToken Questa metrica mostra il numero di IMDSv1 chiamate verso le tue IMDS 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. 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:

    • EC2Console Amazon: nella EC2 dashboard, in Attributi dell'account, Protezione e sicurezza dei dati, per IMDSimpostazioni predefinite, 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: Usa il comando e specifica e modify-instance-metadata-defaultsCLI. --http-tokens required --http-put-response-hop-limit 2

  • Nuove istanze

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

    • EC2Console 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 CLI e specifica che è richiesto. IMDSv2

  • Istanze esistenti

    Per le istanze esistenti, procedi come indicato di seguito:

    • EC2Console 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: Usa il modify-instance-metadata-optionsCLIcomando per specificare che deve essere IMDSv2 usato 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 diIMDSv2, 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:

  • EC2Console 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 CLI 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

I tasti ec2:MetadataHttpTokensec2:MetadataHttpPutResponseHopLimit, e ec2:MetadataHttpEndpoint IAM condition possono essere utilizzati per controllare l'uso di RunInstancese ModifyInstanceMetadataOptionsAPIse corrispondenti. CLIs Se viene creata una policy e un parametro della API chiamata non corrisponde allo stato specificato nella policy utilizzando la chiave condition, la CLI chiamata API o ha esito negativo e viene generata una UnauthorizedOperation risposta. Ad esempio, IAM le politiche, vedereUtilizzo dei metadati delle istanze.

Inoltre, dopo aver disabilitatoIMDSv1, 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

Utilizza un file supportato AWS SDK

Per essere utilizzateIMDSv2, le EC2 istanze devono utilizzare una AWS SDK versione che supporti l'utilizzoIMDSv2. Le versioni più recenti di tutto il AWS SDKs supporto che utilizzaIMDSv2.

Importante

Ti consigliamo di rimanere aggiornato sulle SDK versioni per tenerti aggiornato sulle funzionalità più recenti, sugli aggiornamenti di sicurezza e sulle dipendenze sottostanti. L'uso continuato di una SDK versione non supportata non è consigliato e viene eseguito a tua discrezione. Per ulteriori informazioni, consulta la politica di manutenzione di AWS SDKs and Tools nella AWS SDKsand Tools Reference Guide.

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

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 installare c URL o wget. Se installate uno strumento di terze parti su un'istanza di Windows, assicuratevi di leggere attentamente la documentazione di accompagnamento, poiché le chiamate e l'output potrebbero essere diversi da quelli descritti qui.

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 build dei metadati delle istanze non sono correlate alle EC2 API versioni di 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 della risposta, consultaCategorie 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/

Ottieni i valori per gli elementi di metadati

Questi esempi ottengono i valori di alcuni degli elementi di metadati di primo livello ottenuti nell'esempio precedente. Queste richieste utilizzano il token memorizzato 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

Ottieni la chiave pubblica 0 (nel formato SSH chiave aperta)

In questo esempio viene ottenuta la chiave pubblica 0 (nel formato Open SSH key).

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 di istanza nei metadati dell'istanza è attivato, è possibile 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 installare c URL o wget. Se installate uno strumento di terze parti su un'istanza di Windows, assicuratevi di leggere attentamente la documentazione di accompagnamento, poiché le chiamate e l'output potrebbero essere diversi da quelli descritti qui.

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 build dei metadati delle istanze non sono correlate alle EC2 API versioni di 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 della risposta, consultaCategorie 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/

Ottieni i valori per gli elementi di metadati

Questi esempi ottengono i valori di alcuni degli elementi di metadati di primo livello 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

Ottieni la chiave pubblica 0 (nel formato SSH chiave aperta)

In questo esempio viene ottenuta la chiave pubblica 0 (nel formato Open SSH key).

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 di istanza nei metadati dell'istanza è attivato, è possibile ottenere i tag per un'istanza dai metadati dell'istanza. Per ulteriori informazioni, consulta Recupero dei tag dai metadati dell'istanza.