IMDSfournisseur d'informations d'identification - AWS SDKset outils

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

IMDSfournisseur d'informations d'identification

Le service de métadonnées d'instance (IMDS) fournit des données sur votre instance que vous pouvez utiliser pour configurer ou gérer l'instance en cours d'exécution. Pour plus d'informations sur les données disponibles, consultez la section Utilisation des métadonnées d'instance dans le guide de EC2 l'utilisateur Amazon. Amazon EC2 fournit un point de terminaison local à la disposition des instances qui peut fournir diverses informations à l'instance. Si un rôle est attaché à l'instance, elle peut fournir un ensemble d'informations d'identification valides pour ce rôle. Ils SDKs peuvent utiliser ce point de terminaison pour résoudre les informations d'identification dans le cadre de leur chaîne de fournisseurs d'informations d'identification par défaut. La version 2 (IMDSv2) du service de métadonnées d'IMDSinstance, une version plus sécurisée utilisant un jeton de session, est utilisée par défaut. Si cela échoue en raison d'une condition non réessayable (codes HTTP d'erreur 403, 404, 405), il IMDSv1 est utilisé comme solution de secours.

Configurez cette fonctionnalité à l'aide des méthodes suivantes :

AWS_EC2_METADATA_DISABLED- variable d'environnement

Essayer ou non d'utiliser Amazon EC2 Instance Metadata Service (IMDS) pour obtenir des informations d'identification.

Valeur par défaut : false.

Valeurs valides:

  • true— Ne pas utiliser IMDS pour obtenir des informations d'identification.

  • false— IMDS À utiliser pour obtenir des informations d'identification.

ec2_metadata_v1_disabled- partagé AWS configréglage du fichier
AWS_EC2_METADATA_V1_DISABLED- variable d'environnement
aws.disableEc2MetadataV1- propriété JVM du système : Java/Kotlin uniquement

S'il faut ou non utiliser le service de métadonnées d'instance version 1 (IMDSv1) comme solution de secours en cas d'IMDSv2échec.

Note

Les nouveautés SDKs ne sont pas compatibles avec ce paramètre IMDSv1 et ne le prennent donc pas en charge. Pour plus de détails, voir le tableauCompatibilité avec AWS SDKs.

Valeur par défaut : false.

Valeurs valides:

  • true— Ne pas utiliser IMDSv1 comme solution de secours.

  • false— À utiliser IMDSv1 comme solution de secours.

ec2_metadata_service_endpoint- partagé AWS configréglage du fichier
AWS_EC2_METADATA_SERVICE_ENDPOINT- variable d'environnement
aws.ec2MetadataServiceEndpoint- propriété JVM du système : Java/Kotlin uniquement

Le point final deIMDS.

Valeur par défaut : si elle ec2_metadata_service_endpoint_mode est égaleIPv4, le point de terminaison par défaut esthttp://169.254.169.254. Si ec2_metadata_service_endpoint_mode égalIPv6, le point de terminaison par défaut esthttp://[fd00:ec2::254].

Valeurs valides : validesURI.

ec2_metadata_service_endpoint_mode- partagé AWS configréglage du fichier
AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE- variable d'environnement
aws.ec2MetadataServiceEndpointMode- propriété JVM du système : Java/Kotlin uniquement

Le mode de point de terminaison deIMDS.

Valeur par défaut :IPv4.

Valeurs valides :IPv4,IPv6.

Note

Le fournisseur d'informations d'IMDSidentification fait partie duChaîne de fournisseurs d'identifiants. Cependant, le fournisseur IMDS d'informations d'identification n'est vérifié qu'après plusieurs autres fournisseurs de cette série. Par conséquent, si vous souhaitez que votre programme utilise les informations d'identification de ce fournisseur, vous devez supprimer les autres fournisseurs d'informations d'identification valides de votre configuration ou utiliser un profil différent. Sinon, au lieu de vous fier à la chaîne de fournisseurs d'informations d'identification pour découvrir automatiquement quel fournisseur renvoie des informations d'identification valides, spécifiez l'utilisation du fournisseur d'IMDSinformations d'identification dans le code. Vous pouvez spécifier les sources d'informations d'identification directement lorsque vous créez des clients de service.

Sécurité des IMDS informations d'identification

Par défaut, lorsque AWS SDKn'est pas configuré avec des informations d'identification valides, SDK elle tentera d'utiliser le service de métadonnées d'EC2instance Amazon (IMDS) pour récupérer les informations d'identification d'un AWS rôle. Ce comportement peut être désactivé en définissant la variable d'AWS_EC2_METADATA_DISABLEDenvironnement surtrue. Cela empêche toute activité réseau inutile et améliore la sécurité sur les réseaux non fiables sur lesquels le service de métadonnées d'EC2instance Amazon peut être usurpé.

Note

AWS SDKles clients configurés avec des informations d'identification valides ne les utiliseront jamais IMDS pour récupérer des informations d'identification, quels que soient ces paramètres.

Désactiver l'utilisation des informations d'identification Amazon EC2 IMDS

La façon dont vous définissez cette variable d'environnement dépend du système d'exploitation utilisé et du fait que vous souhaitez ou non que la modification soit persistante.

Linux et macOS

Les clients utilisant Linux ou macOS peuvent définir cette variable d'environnement à l'aide de la commande suivante :

$ export AWS_EC2_METADATA_DISABLED=true

Si vous souhaitez que ce paramètre soit permanent pendant plusieurs sessions et redémarrages du système, vous pouvez ajouter la commande ci-dessus à votre fichier de profil shell, telle que .bash_profile.zsh_profile, ou.profile.

Windows

Les clients utilisant Windows peuvent définir cette variable d'environnement à l'aide de la commande suivante :

$ set AWS_EC2_METADATA_DISABLED=true

Si vous souhaitez que ce paramètre soit persistant sur plusieurs sessions shell et redémarrages du système, vous pouvez utiliser la commande suivante à la place :

$ setx AWS_EC2_METADATA_DISABLED=true
Note

La setx commande n'applique pas la valeur à la session shell en cours. Vous devrez donc recharger ou rouvrir le shell pour que la modification soit prise en compte.

Compatibilité avec AWS SDKs

Les éléments suivants SDKs prennent en charge les fonctionnalités et les paramètres décrits dans cette rubrique. Toute exception partielle est notée. Tous les paramètres des propriétés JVM du système sont pris en charge par le AWS SDK for Java et le Kit AWS SDK pour Kotlin uniquement.

SDK Pris en charge Remarques ou informations supplémentaires
AWS CLI v2 Oui
SDKpour C++ Oui
SDKpour Go V2 (1.x) Oui
SDKpour Go 1.x (V1) Oui Pour utiliser les paramètres des config fichiers partagés, vous devez activer le chargement à partir du fichier de configuration ; voir Sessions.
SDKpour Java 2.x Oui
SDKpour Java 1.x Partielle JVMpropriétés du système : à utiliser à la com.amazonaws.sdk.disableEc2MetadataV1 place de aws.disableEc2MetadataV1 ; aws.ec2MetadataServiceEndpoint et aws.ec2MetadataServiceEndpointMode non prise en charge.
SDKpour JavaScript 3.x Oui
SDKpour JavaScript 2.x Oui
SDKpour Kotlin Oui N'utilise pas de solution de IMDSv1 secours.
SDKpour. NET3. x Oui
SDKpour PHP 3.x Oui
SDKpour Python (Boto3) Oui
SDKpour Ruby 3.x Oui
SDKpour Rust Oui N'utilise pas de solution de IMDSv1 secours.
SDKpour Swift Oui
Outils pour PowerShell Oui Vous pouvez désactiver le IMDSv1 repli de manière explicite dans le code en utilisant[Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true.