View a markdown version of this page

Fornitore di credenziali IMDS - AWS SDK e strumenti

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

Fornitore di credenziali IMDS

Nota

Per informazioni sulla comprensione del layout delle pagine delle impostazioni o sull'interpretazione della tabella Support by AWS SDKs and tools che segue, vedere. Informazioni sulle pagine delle impostazioni di questa guida

Instance Metadata Service (IMDS) fornisce dati sull'istanza che puoi utilizzare per configurare o gestire l'istanza in esecuzione. Per ulteriori informazioni sui dati disponibili, consulta Work with instance metadata nella Amazon EC2 User Guide. Amazon EC2 fornisce un endpoint locale disponibile per le istanze in grado di fornire varie informazioni all'istanza. Se all'istanza è associato un ruolo, può fornire un set di credenziali valide per quel ruolo. Gli SDK possono utilizzare tale endpoint per risolvere le credenziali come parte della catena di fornitori di credenziali predefinita. Per impostazione predefinita, viene utilizzata la versione 2 di Instance Metadata Service (IMDSv2), una versione più sicura di IMDS che utilizza un token di sessione. Se ciò non riesce a causa di una condizione non ripetibile (codici di errore HTTP 403, 404, 405), IMDSv1 viene utilizzato come fallback.

Configura questa funzionalità utilizzando quanto segue:

AWS_EC2_METADATA_DISABLED- variabile di ambiente

Se tentare o meno di utilizzare Amazon EC2 Instance Metadata Service (IMDS) per ottenere le credenziali.

Valore predefinito: false.

Valori validi:

  • true— Non utilizzare IMDS per ottenere le credenziali.

  • false— Usa IMDS per ottenere le credenziali.

ec2_metadata_v1_disabled- impostazione dei file condivisi AWS config
AWS_EC2_METADATA_V1_DISABLED- variabile d'ambiente
aws.disableEc2MetadataV1- Proprietà del sistema JVM: solo Java/Kotlin

Se utilizzare o meno Instance Metadata Service Version 1 (IMDSv1) come riserva in caso di errore di IMDSv2.

Nota

I nuovi SDK non supportano IMDSv1 e, quindi, non supportano questa impostazione. Per i dettagli, consulta la tabella. Supporto da parte di AWS SDK e strumenti

Valore predefinito: false.

Valori validi:

  • true— Non utilizzare IMDSv1 come riserva.

  • false— Usa IMDSv1 come riserva.

ec2_metadata_service_endpoint- impostazione dei file condivisi AWS config
AWS_EC2_METADATA_SERVICE_ENDPOINT- variabile d'ambiente
aws.ec2MetadataServiceEndpoint- Proprietà del sistema JVM: solo Java/Kotlin

L'endpoint dell'IMDS. Questo valore sostituisce la posizione predefinita in cui gli AWS SDK e gli strumenti cercheranno i metadati delle istanze Amazon EC2.

Valore predefinito: se è ec2_metadata_service_endpoint_mode ugualeIPv4, l'endpoint predefinito è. http://169.254.169.254 Se ec2_metadata_service_endpoint_mode è ugualeIPv6, l'endpoint predefinito è. http://[fd00:ec2::254]

Valori validi: URI valido.

ec2_metadata_service_endpoint_mode- impostazione AWS config del file condiviso
AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE- variabile d'ambiente
aws.ec2MetadataServiceEndpointMode- Proprietà del sistema JVM: solo Java/Kotlin

La modalità endpoint di IMDS.

Valore predefinito:. IPv4

Valori validi: IPv4,IPv6.

Nota

Il fornitore di credenziali IMDS fa parte di. Comprendi la catena di fornitori di credenziali Tuttavia, il fornitore di credenziali IMDS viene verificato solo dopo diversi altri provider di questa serie. Pertanto, se si desidera che il programma utilizzi le credenziali di questo provider, è necessario rimuovere altri provider di credenziali validi dalla configurazione o utilizzare un profilo diverso. In alternativa, invece di affidarsi alla catena di provider di credenziali per scoprire automaticamente quale provider restituisce credenziali valide, specifica nel codice l'uso del provider di credenziali IMDS. È possibile specificare le fonti delle credenziali direttamente quando si creano i client di servizio.

Sicurezza per le credenziali IMDS

Per impostazione predefinita, quando l' AWS SDK non è configurato con credenziali valide, tenterà di utilizzare Amazon EC2 Instance Metadata Service (IMDS) per recuperare le credenziali per un ruolo. AWS Questo comportamento può essere disabilitato impostando la variabile di ambiente su. AWS_EC2_METADATA_DISABLED true Ciò impedisce attività di rete non necessarie e migliora la sicurezza sulle reti non attendibili in cui l'Amazon EC2 Instance Metadata Service potrebbe essere impersonato.

Nota

AWS I client SDK configurati con credenziali valide non utilizzeranno mai IMDS per recuperare le credenziali, indipendentemente da nessuna di queste impostazioni.

Disattivazione dell'uso delle credenziali IMDS di Amazon EC2

Il modo in cui imposti questa variabile di ambiente dipende dal sistema operativo in uso e dal fatto che tu voglia o meno che la modifica sia persistente.

Linux e macOS

I clienti che utilizzano Linux o macOS possono impostare questa variabile di ambiente con il seguente comando:

$ export AWS_EC2_METADATA_DISABLED=true

Se desideri che questa impostazione sia persistente per più sessioni di shell e riavvii del sistema, puoi aggiungere il comando precedente al file del profilo della shell, ad esempio, .bash_profile.zsh_profile, o. .profile

Windows

I clienti che utilizzano Windows possono impostare questa variabile di ambiente con il seguente comando:

$ set AWS_EC2_METADATA_DISABLED=true

Se desideri che questa impostazione sia persistente per più sessioni di shell e per i riavvii del sistema, puoi invece utilizzare il seguente comando:

$ setx AWS_EC2_METADATA_DISABLED=true
Nota

Il setx comando non applica il valore alla sessione di shell corrente, quindi sarà necessario ricaricare o riaprire la shell affinché la modifica abbia effetto.

Supporto da parte di AWS SDK e strumenti

I seguenti SDK supportano le funzionalità e le impostazioni descritte in questo argomento. Vengono annotate eventuali eccezioni parziali. Tutte le impostazioni delle proprietà del sistema JVM sono supportate da AWS SDK per Java and the only. AWS SDK per Kotlin

SDK Supportata Note o ulteriori informazioni
AWS CLI   v2 Sì
SDK per C++ Sì
SDK per Go V2 (1.x) Sì
SDK per Go 1.x (V1) Sì Per utilizzare le impostazioni dei config file condivisi, devi attivare il caricamento dal file di configurazione; vedi Sessioni. https://docs.aws.amazon.com/sdk-for-go/api/aws/session/
SDK per Java 2.x Sì
SDK per Java 1.x Parziale Proprietà del sistema JVM: utilizzare com.amazonaws.sdk.disableEc2MetadataV1 al posto diaws.disableEc2MetadataV1; aws.ec2MetadataServiceEndpoint e non supportate. aws.ec2MetadataServiceEndpointMode
SDK per 3.x JavaScript Sì
SDK per 2.x JavaScript Sì
SDK per Kotlin Sì Non utilizza il fallback di IMDSv1.
SDK per .NET 4.x Sì
SDK per .NET 3.x Sì
SDK per PHP 3.x Sì
SDK per Python (Boto3) Sì
SDK per Ruby 3.x Sì
SDK per Rust Sì Non utilizza il fallback IMDSv1.
SDK per Swift Sì
Strumenti per V5 PowerShell Sì È possibile disabilitare il fallback di IMDSv1 in modo esplicito nel codice utilizzando. [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true
Strumenti per V4 PowerShell Sì È possibile disabilitare il fallback di IMDSv1 in modo esplicito nel codice utilizzando. [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true