IMDSfornitore di credenziali - AWS SDKs 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à.

IMDSfornitore di credenziali

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 vari bit di informazioni all'istanza. Se all'istanza è associato un ruolo, può fornire un set di credenziali valide per quel ruolo. SDKsPossono utilizzare quell'endpoint per risolvere le credenziali come parte della catena di provider di credenziali predefinita. Per impostazione predefinita, viene utilizzata la versione 2 (IMDSv2) di Instance Metadata Service, una versione più sicura IMDS che utilizza un token di sessione. Se ciò fallisce a causa di una condizione non riutilizzabile (codici di HTTP errore 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 credenziali.

  • false— Utilizzare IMDS per ottenere credenziali.

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

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

Nota

I nuovi SDKs non supportano IMDSv1 e, quindi, non supportano questa impostazione. Per i dettagli, consulta la tabellaCompatibilità con AWS SDKs.

Valore predefinito: false.

Valori validi:

  • true— Non utilizzare IMDSv1 come riserva.

  • false— Utilizzare IMDSv1 come riserva.

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

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

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

Valori validi: validi. URI

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

La modalità endpoint di. IMDS

Valore predefinito:IPv4.

Valori validi:IPv4,IPv6.

Nota

Il fornitore di IMDS credenziali fa parte diComprendi la catena di fornitori di credenziali. Tuttavia, il fornitore di IMDS credenziali viene controllato 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, anziché affidarsi alla catena di fornitori di credenziali per scoprire automaticamente quale provider restituisce credenziali valide, specificate l'uso del fornitore di credenziali nel IMDS codice. È possibile specificare le fonti delle credenziali direttamente quando si creano client di servizio.

Sicurezza per IMDS le credenziali

Per impostazione predefinita, quando non AWS SDK è configurato con credenziali valide, SDK 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 su reti non affidabili in cui Amazon EC2 Instance Metadata Service può essere impersonato.

Nota

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

Disabilitazione dell'uso delle credenziali Amazon EC2 IMDS

Il modo in cui imposti questa variabile di ambiente dipende dal sistema operativo in uso e dal fatto che desideri 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 tra 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 tra più sessioni di shell e riavvii del sistema, puoi utilizzare invece 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.

Compatibilità con AWS SDKs

Di seguito sono SDKs supportate le funzionalità e le impostazioni descritte in questo argomento. Vengono annotate eventuali eccezioni parziali. Tutte le impostazioni delle proprietà di JVM sistema sono supportate SDK AWS for Kotlin solo da AWS SDK for Java and the.

SDK Supportato Note o ulteriori informazioni
AWS CLI v2
SDKper C++
SDKper Go V2 (1.x)
SDKper Go 1.x (V1) Per utilizzare le impostazioni dei config file condivisi, devi attivare il caricamento dal file di configurazione; vedi Sessioni.
SDKper Java 2.x
SDKper Java 1.x Parziale JVMproprietà di sistema: utilizzate com.amazonaws.sdk.disableEc2MetadataV1 al posto diaws.disableEc2MetadataV1; aws.ec2MetadataServiceEndpoint e aws.ec2MetadataServiceEndpointMode non sono supportate.
SDKper JavaScript 3.x
SDKper JavaScript 2.x
SDKper Kotlin Non utilizza IMDSv1 il fallback.
SDKper. NET3.x
SDKper PHP 3.x
SDKper Python (Boto3)
SDKper Ruby 3.x
SDKper Rust Non utilizza il IMDSv1 fallback.
SDKper Swift
Utensili per PowerShell È possibile disabilitare il IMDSv1 fallback in modo esplicito nel codice utilizzando. [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true