Configurer les options de métadonnées d’instance pour les nouvelles instances - Amazon Elastic Compute Cloud

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.

Configurer les options de métadonnées d’instance pour les nouvelles instances

Vous pouvez configurer les options de métadonnées d’instance suivantes.

Exigence d’utilisation d’IMDSv2

Vous pouvez utiliser les méthodes suivantes pour exiger l'utilisation d'IMDSv2 sur vos instances.

Définissez IMDSv2 comme valeur par défaut pour le compte

Vous pouvez définir la version des métadonnées d'instance par défaut au niveau du compte pour chacune d'entre elles Région AWS. Lorsqu'une instance est lancée, la version des métadonnées de l'instance est automatiquement définie sur la valeur au niveau du compte.

Si vous n'avez jamais modifié la valeur par défaut au niveau du compte, cela indique qu'il n'y a aucune préférence.

Vous pouvez définir le compte par défaut pour la version des métadonnées de l'instance sur IMDSv2 afin que toutes les nouvelles instances du compte soient lancées avec IMDSv2 (en d'autres termes, IMDSv1 est désactivé). Avec ce compte par défaut, lorsque vous lancez une instance, les valeurs par défaut de l'instance sont les suivantes :

  • Console : la version des métadonnées est définie sur V2 uniquement (jeton requis) et la limite de sauts de réponse des métadonnées est définie sur 2.

  • AWS CLI: HttpTokens est défini sur required et HttpPutResponseHopLimit est défini sur2.

Note

Avant de définir la valeur par défaut du compte pour la version des métadonnées sur V2 uniquement (jeton requis), assurez-vous qu'aucune de vos instances n'effectue d'appels IMDSv1. La MetadataNoToken CloudWatch métrique suit les appels IMDSv1. Lorsqu'aucune MetadataNoToken utilisation d'IMDSv1 n'est enregistrée, vos instances sont prêtes à passer entièrement à l'utilisation d'IMDSv2.

Au lancement, vous pouvez modifier les valeurs dans la configuration de l'instance. Pour plus d’informations, consultez Définissez la version des métadonnées de l'instance.

Console
Pour définir IMDSv2 comme compte par défaut pour la région spécifiée
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Pour modifier le Région AWS, utilisez le sélecteur de région dans le coin supérieur droit de la page.

  3. Dans le panneau de navigation, choisissez Tableau de bord du EC2.

  4. Sous Attributs du compte, sélectionnez Protection et sécurité des données.

  5. À côté des paramètres IMDS par défaut, choisissez Gérer.

  6. Sur la page Gérer les paramètres par défaut de l'IMDS, procédez comme suit :

    1. Pour le service de métadonnées d'instance, choisissez Enabled.

    2. Pour Choisir une version des métadonnées, sélectionnez V2 (jeton obligatoire).

    3. Pour la limite de sauts de réponse aux métadonnées, spécifiez 2 si vos instances hébergeront des conteneurs. Sinon, sélectionnez Aucune préférence. Lorsqu'aucune préférence n'est spécifiée, au lancement, la valeur par défaut est 2 si l'AMI nécessite IMDSv2 ; sinon, elle est définie par défaut sur 1.

    4. Choisissez Mettre à jour.

AWS CLI
Pour définir IMDSv2 comme compte par défaut pour la région spécifiée

Utilisez la modify-instance-metadata-defaultscommande et spécifiez la région dans laquelle vous souhaitez modifier les paramètres au niveau du compte IMDS. Incluez --http-tokens set to required et --http-put-response-hop-limit set to 2 si vos instances hébergeront des conteneurs. Dans le cas contraire, spécifiez -1 pour n'indiquer aucune préférence. Lorsque -1 (aucune préférence) est spécifiée, au lancement, la valeur par défaut est 2 si l'AMI nécessite IMDSv2 ; sinon, elle est définie par défaut sur. 1

aws ec2 modify-instance-metadata-defaults \ --region us-east-1 \ --http-tokens required \ --http-put-response-hop-limit 2

Sortie attendue

{ "Return": true }
Pour afficher les paramètres de compte par défaut pour les options de métadonnées de l'instance pour la région spécifiée

Utilisez la get-instance-metadata-defaultscommande et spécifiez la région.

aws ec2 get-instance-metadata-defaults --region us-east-1

Exemple de sortie

{ "AccountLevel": { "HttpTokens": "required", "HttpPutResponseHopLimit": 2 } }

Configurer l’instance au lancement

Quand vous lancez une instance, vous pouvez configurer l’instance pour imposer l’utilisation de IMDSv2 en configurant les champs suivants :

  • Console Amazon EC2 : définissez Metadata version (Version des métadonnées) sur V2 only (token required) (V2 uniquement [jeton obligatoire]).

  • AWS CLI : définissez HttpTokens sur required.

Lorsque vous spécifiez que IMDSv2 est requis, vous devez également activer le point de terminaison du service des métadonnées d’instance (IMDS) en définissant Métadonnées accessibles sur Activé (console) ou HttpEndpoint sur enabled (AWS CLI).

New console
Pour imposer l’utilisation d’IMDSv2 sur une nouvelle instance
  • Lors du lancement d’une nouvelle instance dans la console Amazon EC2, développez Détails avancés, et procédez comme suit :

    • PourAccéder aux métadonnées, choisissezActivé.

    • Pour Choisir une version des métadonnées, sélectionnez V2 (jeton obligatoire).

    Pour plus d’informations, consultez Détails avancés.

Old console
Pour imposer l’utilisation d’IMDSv2 sur une nouvelle instance
  • Lors du lancement d’une nouvelle instance dans la console Amazon EC2, sélectionnez les options suivantes sur la page Configurer les détails de l’instance :

    • Sous Détails avancés, pour Métadonnées accessibles, sélectionnez Activé.

    • Pour Version des métadonnées, sélectionnez V2 (jeton obligatoire).

Pour plus d’informations, consultez Étape 3 : Configurer les détails de l’instance.

AWS CLI
Pour imposer l’utilisation d’IMDSv2 sur une nouvelle instance

L’exemple run-instances ci-dessous lance une instance c6i.large avec --metadata-options défini sur HttpTokens=required. Lorsque vous spécifiez une valeur pour HttpTokens, vous devez également définir HttpEndpoint sur enabled. Comme l’en-tête de jeton sécurisé est défini sur required pour les demandes de récupération de métadonnées, cette option impose à l’instance l’utilisation de IMDSv2 lors de la demande des métadonnées d’instance.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c6i.large \ ... --metadata-options "HttpEndpoint=enabled,HttpTokens=required"
PowerShell
Pour imposer l’utilisation d’IMDSv2 sur une nouvelle instance

L'exemple d'New-EC2Instanceapplet de commande suivant lance une c6i.large instance dont le paramètre est MetadataOptions_HttpEndpoint défini sur enabled et le MetadataOptions_HttpTokens paramètre sur. required Lorsque vous spécifiez une valeur pour HttpTokens, vous devez également définir HttpEndpoint sur enabled. Comme l’en-tête de jeton sécurisé est défini sur required pour les demandes de récupération de métadonnées, cette option impose à l’instance l’utilisation de IMDSv2 lors de la demande des métadonnées d’instance.

New-EC2Instance ` -ImageId ami-0abcdef1234567890 ` -InstanceType c6i.large ` -MetadataOptions_HttpEndpoint enabled ` -MetadataOptions_HttpTokens required
AWS CloudFormation

Pour spécifier les options de métadonnées pour une instance utilisant AWS CloudFormation, consultez la AWS::EC2::LaunchTemplate MetadataOptionspropriété dans le guide de AWS CloudFormation l'utilisateur.

Configurer l’AMI

Lorsque vous enregistrez une nouvelle AMI ou que vous modifiez une AMI existante, vous pouvez définir le paramètre imds-support sur v2.0. Les instances lancées à partir de cette AMI verront le paramètre Metadata version (Version des métadonnées) défini sur V2 only (token required) (V2 uniquement [jeton obligatoire]) (console) ou HttpTokens défini sur required (AWS CLI). Avec ces paramètres, l’instance impose l’utilisation de IMDSv2 lors de la demande de métadonnées d’instance.

Notez que lorsque vous définissez imds-support sur v2.0, les instances lancées à partir de cette AMI verront également le paramètre Metadata response hop limit (Limite de saut de réponse des métadonnées) (console) ou http-put-response-hop-limit (AWS CLI) défini sur 2.

Important

N’utilisez ce paramètre que si votre logiciel AMI prend en charge IMDSv2. Une fois que vous avez défini la valeur sur v2.0, vous ne pouvez pas revenir en arrière. La seule façon de « réinitialiser » votre AMI est de créer une nouvelle AMI à partir de l’instantané sous-jacent.

Configuration d’une nouvelle AMI pour IMDSv2

Pour configurer une nouvelle AMI IMDSv2, utilisez l’une des méthodes suivantes.

AWS CLI

L’exemple register-image suivant enregistre une AMI en utilisant l’instantané spécifié d’un volume racine EBS en tant que périphérique /dev/xvda. Spécifiez v2.0 pour le paramètre imds-support, de sorte que les instances lancées à partir de cette AMI imposent l’utilisation de IMDSv2 pour pouvoir demander des métadonnées d’instance.

aws ec2 register-image \ --name my-image \ --root-device-name /dev/xvda \ --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0123456789example} \ --architecture x86_64 \ --imds-support v2.0
PowerShell

L'exemple de Register-EC2Imagecmdlet suivant enregistre une AMI en utilisant l'instantané spécifié d'un volume racine EBS en tant que périphérique. /dev/xvda Spécifiez v2.0 pour le paramètre ImdsSupport, de sorte que les instances lancées à partir de cette AMI imposent l’utilisation de IMDSv2 pour pouvoir demander des métadonnées d’instance.

Import-Module AWS.Tools.EC2 # Required for Amazon.EC2.Model object creation. Register-EC2Image ` -Name 'my-image' ` -RootDeviceName /dev/xvda ` -BlockDeviceMapping ( New-Object ` -TypeName Amazon.EC2.Model.BlockDeviceMapping ` -Property @{ DeviceName = '/dev/xvda'; EBS = (New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice -Property @{ SnapshotId = 'snap-0123456789example; VolumeType = 'gp3' } ) } ) ` -Architecture X86_64 ` -ImdsSupport v2.0
Configuration d’une AMI existante pour IMDSv2

Pour configurer une AMI existante pour IMDSv2, utilisez l’une des méthodes suivantes.

AWS CLI

L'modify-image-attributeexemple suivant modifie une AMI existante pour IMDSv2 uniquement. Spécifiez v2.0 pour le paramètre imds-support, de sorte que les instances lancées à partir de cette AMI imposent l’utilisation de IMDSv2 pour pouvoir demander des métadonnées d’instance.

aws ec2 modify-image-attribute \ --image-id ami-0123456789example \ --imds-support v2.0
PowerShell

L'exemple de Edit-EC2ImageAttributecmdlet suivant modifie une AMI existante pour IMDSv2 uniquement. Spécifiez v2.0 pour le paramètre imds-support, de sorte que les instances lancées à partir de cette AMI imposent l’utilisation de IMDSv2 pour pouvoir demander des métadonnées d’instance.

Edit-EC2ImageAttribute ` -ImageId ami-0abcdef1234567890 ` -ImdsSupport 'v2.0'

Utiliser une politique IAM

Vous pouvez créer une politique IAM qui empêche les utilisateurs de lancer de nouvelles instances qui n’utilisent pas IMDSv2.

Pour imposer l’utilisation de IMDSv2 sur toutes les nouvelles instances en utilisant une politique IAM

Pour vous assurer que les utilisateurs peuvent uniquement lancer les instances nécessitant l’utilisation de IMDSv2 lors de la demande de métadonnées d’instance, vous pouvez spécifier que la condition imposant l’utilisation de IMDSv2 devra être remplie pour qu’une instance puisse être lancée. Pour examiner l’exemple de stratégie IAM, consultez Utiliser des métadonnées d’instance.

Configurer les points de terminaison IPv4 et IPv6

Par défaut, le point de terminaison IPv6 est désactivé. Cela est vrai même si vous lancez une instance dans un sous-réseau IPv6 uniquement. Vous pouvez choisir d’activer le point de terminaison IPv6 lors du lancement de l’instance.

Le point de terminaison IPv6 de l'IMDS n'est accessible que sur les instances créées sur le système AWS Nitro.

Utilisez l’une des méthodes suivantes pour lancer une instance avec le point de terminaison IPv6 activé pour IMDS.

New console
Activation du point de terminaison IPv6 IMDS au lancement
  • Lancez l’instance dans la console Amazon EC2 avec les informations suivantes spécifiées sous Advanced details (Détails avancés) :

    • Pour Transport des métadonnées, choisissez Activé.

Pour plus d’informations, consultez Détails avancés.

AWS CLI

L’exemple run-instances suivant lance une instance c6i.large avec le point de terminaison IPv6 activé pour l’IMDS. Pour activer le point de terminaison IPv6, pour le paramètre --metadata-options, spécifiez HttpProtocolIpv6=enabled. Lorsque vous spécifiez une valeur pour HttpProtocolIpv6, vous devez également définir HttpEndpoint sur enabled.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c6i.large \ ... --metadata-options "HttpEndpoint=enabled,HttpProtocolIpv6=enabled"
PowerShell

L'exemple de New-EC2Instancecmdlet suivant lance une c6i.large instance avec le point de terminaison IPv6 activé pour l'IMDS. Pour activer le point de terminaison IPv6, définissez MetadataOptions_HttpProtocolIpv6 sur enabled. Lorsque vous spécifiez une valeur pour MetadataOptions_HttpProtocolIpv6, vous devez également définir MetadataOptions_HttpEndpoint sur enabled.

New-EC2Instance ` -ImageId ami-0abcdef1234567890 ` -InstanceType c6i.large ` -MetadataOptions_HttpEndpoint enabled ` -MetadataOptions_HttpProtocolIpv6 enabled

Désactiver l’accès aux métadonnées d’instance

Vous pouvez désactiver l’accès aux métadonnées de l’instance en désactivant l’IMDS lorsque vous lancez une instance. Vous pouvez activer l’accès ultérieurement en réactivant l’IMDS. Pour plus d’informations, consultez Activer l’accès aux métadonnées d’instance.

Important

Vous pouvez choisir de désactiver l’IMDS au lancement ou après le lancement. Si vous désactivez l’IMDS au lancement, les opérations suivantes risquent de ne pas fonctionner :

  • Vous pourriez ne pas avoir d’accès SSH à votre instance. La public-keys/0/openssh-key, qui est la clé SSH publique de votre instance, ne sera pas accessible, car lelle est normalement fournie et accessible à partir des métadonnées de l’instance EC2.

  • Les données utilisateur EC2 ne seront pas disponibles et ne seront pas exécutées au démarrage de l’instance. Les données utilisateur EC2 sont hébergées sur l’IMDS. Si vous désactivez l’IMDS, vous empêchez l’accès aux données utilisateur.

Pour accéder à cette fonctionnalité, vous pouvez réactiver l’IMDS après le lancement.

New console
Pour désactiver l’accès aux métadonnées d’instance
  • Lancez l’instance dans la console Amazon EC2 avec les informations suivantes spécifiées sous Advanced details (Détails avancés) :

    • PourAccéder aux métadonnées, choisissez Activé.

Pour plus d’informations, consultez Détails avancés.

Old console
Pour désactiver l’accès aux métadonnées d’instance
  • Lancez l’instance dans la console Amazon EC2 avec l’option suivante sélectionnée sur la page Configure Instance Details (Configurer les détails de l’instance) :

    • Sous Détails avancés, pour Métadonnées accessibles, sélectionnez Désactivé.

Pour plus d’informations, consultez Étape 3 : Configurer les détails de l’instance.

AWS CLI
Pour désactiver l’accès aux métadonnées d’instance au lancement

Lancez l’instance avec --metadata-options défini sur HttpEndpoint=disabled.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c6i.large \ ... --metadata-options "HttpEndpoint=disabled"
PowerShell
Pour désactiver l’accès aux métadonnées d’instance au lancement

L'exemple d'New-EC2Instanceapplet de commande suivant lance une instance dont la valeur est MetadataOptions_HttpEndpoint définie sur. disabled

New-EC2Instance ` -ImageId ami-0abcdef1234567890 ` -InstanceType c6i.large ` -MetadataOptions_HttpEndpoint disabled
AWS CloudFormation

Pour spécifier les options de métadonnées pour une instance utilisant AWS CloudFormation, consultez la AWS::EC2::LaunchTemplate MetadataOptionspropriété dans le guide de AWS CloudFormation l'utilisateur.