View a markdown version of this page

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 pour les nouvelles instances.

Note

Les paramètres de ces options sont configurés au niveau du compte, soit directement dans le compte, soit à l’aide d’une politique déclarative. Ils doivent être configurés dans chaque endroit Région AWS où vous souhaitez configurer les options de métadonnées de l’instance. L’utilisation d’une politique déclarative vous permet d’appliquer les paramètres à plusieurs régions simultanément, ainsi qu’à plusieurs comptes simultanément. Lorsqu’une politique déclarative est utilisée, vous ne pouvez pas modifier les paramètres directement dans un compte. Cette rubrique décrit la procédure à suivre pour configurer les paramètres directement à l’intérieur d’un compte. Pour plus d’informations sur l’utilisation des politiques déclaratives, consultez la section Politiques déclaratives dans le Guide de l’utilisateur AWS Organizations .

Exigence d’utilisation d’IMDSv2

Vous pouvez utiliser les méthodes suivantes pour demander l’utilisation d’IMDSv2 sur vos nouvelles instances.

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

Vous pouvez définir la version par défaut du service de métadonnées d'instance (IMDS) au niveau du compte pour chacun Région AWS. Cela signifie que lorsque vous lancez une nouvelle instance, la version des métadonnées de l’instance est automatiquement définie sur la valeur par défaut au niveau du compte. Vous pouvez toutefois modifier manuellement la valeur au lancement ou après le lancement. Pour plus d’informations sur la manière dont les paramètres au niveau du compte et les remplacements manuels affectent une instance, consultez Ordre de priorité pour les options de métadonnées des instances.

Note

La définition de la valeur par défaut au niveau du compte ne réinitialise pas les instances existantes. Par exemple, si vous définissez la valeur par défaut du compte sur IMDSv2, les instances existantes définies sur IMDSv1 ne sont pas affectées. Si vous souhaitez modifier la valeur des instances existantes, vous devez modifier manuellement la valeur des instances elles-mêmes.

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, et IMDSv1 soit désactivé. Avec ce compte par défaut, lorsque vous lancez une instance, les valeurs par défaut pour 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 sur 2.

Note

Avant de définir le compte par défaut sur IMDSv2, assurez-vous que vos instances ne dépendent pas d’IMDSv1. Pour de plus amples informations, veuillez consulter Chemin recommandé pour exiger IMDSv2.

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 la Région AWS, utilisez le sélecteur de région situé dans le coin supérieur droit de la page.

  3. Dans le panneau de navigation, sélectionnez Dashboard (Tableau de bord).

  4. Sur la fiche Attributs du compte, sous Paramètres, choisissez 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 Service de métadonnées d’instance, sélectionnez Activer.

    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 est par défaut de 2 si l’AMI a le paramètre ImdsSupport: v2.0 ; sinon, elle est par défaut de 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 commande modify-instance-metadata-defaults 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é, au lancement, la valeur par défaut est 2 si l’AMI nécessite ImdsSupport: v2.0 ; 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

Voici un exemple de sortie.

{ "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 commande get-instance-metadata-defaults et spécifiez la région.

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

Voici un exemple de sortie.

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

Le champ ManagedBy indique l’entité qui a configuré les paramètres. Dans cet exemple, account indique que les paramètres ont été configurés directement dans le compte. Une valeur de declarative-policy signifierait que les paramètres ont été configurés par une politique déclarative. Pour plus d’informations, consultez la rubrique Politiques gérées dans le Guide de l’utilisateur AWS Organizations .

Pour définir IMDSv2 comme compte par défaut pour toutes les régions

Utilisez la commande modify-instance-metadata-defaults pour modifier les paramètres au niveau du compte IMDS pour toutes les régions. 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é, au lancement, la valeur par défaut est 2 si l’AMI nécessite ImdsSupport: v2.0 ; sinon, elle est définie par défaut sur 1.

echo -e "Region \t Modified" ; \ echo -e "-------------- \t ---------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 modify-instance-metadata-defaults \ --region $region \ --http-tokens required \ --http-put-response-hop-limit 2 \ --output text) echo -e "$region \t $output" ); done

Voici un exemple de sortie.

Region Modified -------------- --------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Pour afficher les paramètres de compte par défaut pour les options de métadonnées de l’instance pour toutes les régions

Utilisez la commande get-instance-metadata-defaults.

echo -e "Region \t Level Hops HttpTokens" ; \ echo -e "-------------- \t ------------ ---- ----------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 get-instance-metadata-defaults \ --region $region \ --output text) echo -e "$region \t $output" ); done

Voici un exemple de sortie.

Region Level Hops HttpTokens -------------- ------------ ---- ---------- ap-south-1 ACCOUNTLEVEL 2 required eu-north-1 ACCOUNTLEVEL 2 required eu-west-3 ACCOUNTLEVEL 2 required ...
PowerShell
Pour définir IMDSv2 comme compte par défaut pour la région spécifiée

Utilisez l'Edit-EC2InstanceMetadataDefaultapplet de commande et spécifiez la région dans laquelle vous souhaitez modifier les paramètres au niveau du compte IMDS. Incluez -HttpToken set to required et -HttpPutResponseHopLimit 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é, au lancement, la valeur par défaut est 2 si l’AMI nécessite ImdsSupport: v2.0 ; sinon, elle est définie par défaut sur 1.

Edit-EC2InstanceMetadataDefault ` -Region us-east-1 ` -HttpToken required ` -HttpPutResponseHopLimit 2

Voici un exemple de sortie.

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 l'Get-EC2InstanceMetadataDefaultapplet de commande et spécifiez la région.

Get-EC2InstanceMetadataDefault -Region us-east-1 | Format-List

Voici un exemple de sortie.

HttpEndpoint : HttpPutResponseHopLimit : 2 HttpTokens : required InstanceMetadataTags :
Pour définir IMDSv2 comme compte par défaut pour toutes les régions

Utilisez l'Edit-EC2InstanceMetadataDefaultapplet de commande pour modifier les paramètres au niveau du compte IMDS pour toutes les régions. Incluez -HttpToken set to required et -HttpPutResponseHopLimit 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é, au lancement, la valeur par défaut est 2 si l’AMI nécessite ImdsSupport: v2.0 ; sinon, elle est définie par défaut sur 1.

(Get-EC2Region).RegionName | ` ForEach-Object { [PSCustomObject]@{ Region = $_ Modified = (Edit-EC2InstanceMetadataDefault ` -Region $_ ` -HttpToken required ` -HttpPutResponseHopLimit 2) } } | ` Format-Table Region, Modified -AutoSize

Sortie attendue

Region Modified ------ -------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Pour afficher les paramètres de compte par défaut pour les options de métadonnées de l’instance pour toutes les régions

Utilisez l’applet de commande Get-EC2InstanceMetadataDefault.

(Get-EC2Region).RegionName | ` ForEach-Object { [PSCustomObject]@{ Region = $_ HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit HttpTokens = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens } } | ` Format-Table -AutoSize

Exemple de sortie

Region HttpPutResponseHopLimit HttpTokens ------ ----------------------- ---------- ap-south-1 2 required eu-north-1 2 required eu-west-3 2 required ...

Appliquez IMDSv2 au niveau du compte

Vous pouvez imposer l'utilisation de l'IMDSv2 au niveau du compte pour chacun d'entre eux. Région AWS Lorsqu'elles sont appliquées, les instances ne peuvent être lancées que si elles sont configurées pour nécessiter IMDSv2. Cette application s'applique quelle que soit la manière dont l'instance ou l'AMI est configurée.

Note

Avant d'activer l'application de l'IMDSv2 au niveau du compte, assurez-vous que vos applications et AMI sont compatibles avec IMDSv2. Pour de plus amples informations, veuillez consulter Chemin recommandé pour exiger IMDSv2. Si l'application IMDSv2 est activée et n'httpTokensest définie ni required dans la configuration de l'instance au lancement, ni dans les paramètres du compte, ni dans la configuration de l'AMI, le lancement de l'instance échouera. Pour plus d’informations sur le dépannage, consultez Le lancement d'une instance IMDSv1 activée échoue.

Note

Ce paramètre ne modifie pas la version IMDS des instances existantes, mais bloque l'activation d'IMDSv1 sur les instances existantes pour lesquelles IMDSv1 est actuellement désactivé.

Console
Pour appliquer IMDSv2 au compte dans la région spécifiée
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Pour modifier la Région AWS, utilisez le sélecteur de région en haut à droite de la page.

  3. Dans le panneau de navigation, sélectionnez Dashboard (Tableau de bord).

  4. Sur la fiche Attributs du compte, sous Paramètres, choisissez 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 Choisir une version des métadonnées, sélectionnez V2 (jeton obligatoire).

    2. Pour Enforce IMDSv2, choisissez Activé.

    3. Choisissez Mettre à jour.

AWS CLI
Pour appliquer IMDSv2 au compte dans la région spécifiée

Utilisez la commande modify-instance-metadata-defaults et spécifiez la région dans laquelle appliquer IMDSv2.

aws ec2 modify-instance-metadata-defaults \ --region us-east-1 \ --http-tokens required \ --http-tokens-enforced enabled

Voici un exemple de sortie.

{ "Return": true }
Pour afficher le paramètre d'application de l'IMDSv2 pour le compte dans une région spécifique

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

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

Voici un exemple de sortie.

{ "AccountLevel": { "HttpTokens": "required", "HttpTokensEnforced": "enabled" }, "ManagedBy": "account" }

Le champ ManagedBy indique l’entité qui a configuré les paramètres. Dans cet exemple, account indique que les paramètres ont été configurés directement dans le compte. Une valeur de declarative-policy signifierait que les paramètres ont été configurés par une politique déclarative. Pour plus d'informations, consultez la section Politiques déclaratives dans le Guide de l'utilisateur AWS des organisations.

Pour appliquer l'IMDSv2 au compte dans toutes les régions

Utilisez la commande https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html modify-instance-metadata-defaults pour appliquer IMDSv2 dans toutes les régions.

echo -e "Region \t Modified" ; \ echo -e "-------------- \t ---------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 modify-instance-metadata-defaults \ --region $region \ --http-tokens-enforced enabled \ --output text) echo -e "$region \t $output" ); done

Voici un exemple de sortie.

Region Modified -------------- --------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Pour consulter les paramètres d'application de l'IMDSv2 pour le compte dans toutes les régions

Utilisez la commande get-instance-metadata-defaults.

echo -e "Region \t Level HttpTokensEnforced" ; \ echo -e "-------------- \t ------------ ----------------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 get-instance-metadata-defaults \ --region $region \ --query 'AccountLevel.HttpTokensEnforced' \ --output text) echo -e "$region \t ACCOUNTLEVEL $output" ); done

Voici un exemple de sortie.

Region Level HttpTokensEnforced -------------- ------------ ------------------ ap-south-1 ACCOUNTLEVEL enabled eu-north-1 ACCOUNTLEVEL enabled eu-west-3 ACCOUNTLEVEL enabled ...
PowerShell
Pour appliquer IMDSv2 au compte dans la région spécifiée

Utilisez l'Edit-EC2InstanceMetadataDefaultapplet de commande et spécifiez la région dans laquelle appliquer IMDSv2.

Edit-EC2InstanceMetadataDefault ` -Region us-east-1 ` -HttpToken required ` -HttpPutResponseHopLimit 2

Voici un exemple de sortie.

@{ Return = $true }
Pour afficher le paramètre d'application de l'IMDSv2 pour le compte dans une région spécifique

Utilisez la Get-EC2InstanceMetadataDefault commande et spécifiez la région.

Get-EC2InstanceMetadataDefault -Region us-east-1

Voici un exemple de sortie.

@{ AccountLevel = @{ HttpTokens = "required" HttpTokensEnforced = "enabled" } ManagedBy = "account" }

Le champ ManagedBy indique l’entité qui a configuré les paramètres. Dans cet exemple, account indique que les paramètres ont été configurés directement dans le compte. Une valeur de declarative-policy signifierait que les paramètres ont été configurés par une politique déclarative. Pour plus d'informations, consultez la section Politiques déclaratives dans le Guide de l'utilisateur AWS des organisations.

Pour appliquer l'IMDSv2 au compte dans toutes les régions

Utilisez la commande https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html modify-instance-metadata-defaults pour appliquer IMDSv2 dans toutes les régions.

echo -e "Region \t Modified" ; \ echo -e "-------------- \t ---------" ; \ for region in $( aws ec2 describe-regions \ --region us-east-1 \ --query "Regions[*].[RegionName]" \ --output text ); do (output=$( aws ec2 modify-instance-metadata-defaults \ --region $region \ --http-tokens-enforced enabled \ --output text) echo -e "$region \t $output" ); done

Voici un exemple de sortie.

Region Modified -------------- --------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Pour définir IMDSv2 comme compte par défaut pour toutes les régions

Utilisez l'Edit-EC2InstanceMetadataDefaultapplet de commande pour modifier les paramètres au niveau du compte IMDS pour toutes les régions. Incluez -HttpToken set to required et -HttpPutResponseHopLimit 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é, au lancement, la valeur par défaut est 2 si l’AMI nécessite ImdsSupport: v2.0 ; sinon, elle est définie par défaut sur 1.

(Get-EC2Region).RegionName | ` ForEach-Object { [PSCustomObject]@{ Region = $_ Modified = (Edit-EC2InstanceMetadataDefault ` -Region $_ ` -HttpToken required ` -HttpPutResponseHopLimit 2) } } | ` Format-Table Region, Modified -AutoSize

Sortie attendue

Region Modified ------ -------- ap-south-1 True eu-north-1 True eu-west-3 True ...
Pour afficher les paramètres de compte par défaut pour les options de métadonnées de l’instance pour toutes les régions

Utilisez l’applet de commande Get-EC2InstanceMetadataDefault.

(Get-EC2Region).RegionName | ` ForEach-Object { [PSCustomObject]@{ Region = $_ HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit HttpTokens = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens } } | ` Format-Table -AutoSize

Exemple de sortie

Region HttpPutResponseHopLimit HttpTokens ------ ----------------------- ---------- ap-south-1 2 required eu-north-1 2 required eu-west-3 2 required ...

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

Dans un environnement de conteneurs, lorsque IMDSv2 est nécessaire, nous recommandons de fixer la limite de saut à 2. Pour de plus amples informations, veuillez consulter Considérations sur l’accès aux métadonnées d’instance.

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

    • (Environnement de conteneur) Pour Limite de sauts de réponse aux métadonnées, choisissez 2.

    Pour de plus amples informations, veuillez consulter Détails avancés.

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.

Dans un environnement de conteneurs, lorsque IMDSv2 est nécessaire, nous recommandons de fixer la limite de saut à 2 avec HttpPutResponseHopLimit=2.

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

L'exemple d'New-EC2Instanceapplet de commande suivant lance une c6i.large instance avec MetadataOptions_HttpEndpoint set to enabled et le MetadataOptions_HttpTokens paramètre to. 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
CloudFormation

Pour spécifier les options de métadonnées pour une instance utilisant CloudFormation, consultez la LaunchTemplate MetadataOptions propriété AWS : :EC2 : : dans le Guide de l'AWS CloudFormation 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 Version des métadonnées défini sur 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 d'Register-EC2Imageapplet de commande 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.

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’exemple modify-image-attribute 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-0abcdef1234567890 \ --imds-support v2.0
PowerShell

L'exemple d'Edit-EC2ImageAttributeapplet de commande 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 effectue l'une des opérations suivantes :

  • Empêche les utilisateurs de lancer de nouvelles instances, sauf s'ils ont besoin d'IMDSv2 sur la nouvelle instance.

  • Empêche les utilisateurs d'appeler l' ModifyInstanceMetadataOptions API pour modifier les options de métadonnées d'une instance en cours d'exécution. Restreignez l'accès à la propriété ModifyInstanceMetadataOptions HttpTokens pour empêcher les mises à jour involontaires des instances en cours d'exécution.

  • Empêchez les utilisateurs d'appeler l' ModifyInstanceMetadataDefaults API pour modifier les paramètres par défaut du compte HttpTokens et httpTokensEnforced. La restriction de l'accès à ces deux propriétés garantit que seuls les rôles autorisés peuvent modifier les paramètres par défaut du compte.

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

Pour vous assurer que les utilisateurs ne peuvent lancer que des instances nécessitant l'utilisation d'IMDSv2 lorsqu'ils demandent des métadonnées d'instance, procédez comme suit :

  • Restreignez l'accès à la fois à ModifyInstanceMetadataDefaults l'API ModifyInstanceMetadataOptions et, plus précisément, httpTokens aux httpTokensEnforced propriétés et.

  • Définissez ensuite le compte par défaut sur httpTokens = required ethttpTokensEnforced = enabled.

    Pour examiner l’exemple de stratégie IAM, consultez Utiliser des métadonnées d’instance.

Activer les points de terminaison IPv4 et IPv6 IMDS

L’IMDS possède deux points de terminaison sur une instance : IPv4 (169.254.169.254) et IPv6 ([fd00:ec2::254]). Lorsque vous activez l’IMDS, le point de terminaison IPv4 est automatiquement activé. Le point de terminaison IPv6 reste désactivé même si vous lancez une instance dans un IPv6-only sous-réseau. Pour activer le point de terminaison IPv6, vous devez le faire explicitement. Lorsque vous activez le point de terminaison IPv6, le point de terminaison IPv4 reste activé.

Vous pouvez activer le point de terminaison IPv6 au lancement de l’instance ou après.

Conditions requises pour activer le point de terminaison IPv6

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

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

    • Pour le Point de terminaison IPv6 des métadonnées, choisissez Activé.

Pour de plus amples informations, veuillez consulter Détails avancés.

AWS CLI
Activer le point de terminaison IPv6 activé pour IMDS au lancement de l’instance

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
Pour activer le point de terminaison IMDS IPv6 au lancement de l’instance

L'exemple d'New-EC2Instanceapplet de commande 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 de plus amples informations, veuillez consulter 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.

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 de plus amples informations, veuillez consulter Détails avancés.

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 avec MetadataOptions_HttpEndpoint set to. disabled

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

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

Autoriser l’accès aux identifications dans les métadonnées d’instance

Par défaut, les balises d’instance ne sont pas accessibles dans les métadonnées d’instance. Pour chaque instance, vous devez explicitement autoriser l’accès. Si l’accès est autorisé, les clés des balises d’instance doivent respecter des restrictions de caractères spécifiques, sinon le lancement de l’instance échouera. Pour de plus amples informations, veuillez consulter Activation de l’accès aux balises dans les métadonnées d’instance.