

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.

# Passer à l’utilisation de Service des métadonnées d’instance Version 2
<a name="instance-metadata-transition-to-version-2"></a>

Si vous souhaitez configurer vos instances pour n'accepter que les appels IMDSv2 (Instance Metadata Service Version 2), nous vous recommandons d'utiliser les outils et le chemin de transition suivants.

**Topics**
+ [Outils pour la transition vers IMDSv2](#tools-for-transitioning-to-imdsv2)
+ [Chemin recommandé pour demander l’accès à IMDSv2](#recommended-path-for-requiring-imdsv2)

## Outils pour la transition vers IMDSv2
<a name="tools-for-transitioning-to-imdsv2"></a>

Les outils suivants peuvent vous aider à identifier, surveiller et gérer la transition de votre logiciel d'IMDSv1 à IMDSv2. Pour obtenir des instructions sur l'utilisation de ces outils, consultez[Chemin recommandé pour demander l’accès à IMDSv2](#recommended-path-for-requiring-imdsv2).

**AWS logiciel **  
Les dernières versions des AWS SDK AWS CLI et prennent en charge IMDSv2. Pour utiliser IMDSv2, mettez à jour vos instances EC2 afin d'utiliser les dernières versions. Pour connaître les versions minimales du AWS SDK qui prennent en charge IMDSv2, consultez. [Utilisez un AWS Kit SDK](configuring-instance-metadata-service.md#use-a-supported-sdk-version-for-imdsv2)  
Tous les logiciels Amazon Linux 2 et Amazon Linux 2023 prennent en charge IMDSv2. Amazon Linux 2023 désactive IMDSv1 par défaut.

**Analyseur de packages IMDS**  
IMDS Packet Analyzer est un outil open source qui identifie et enregistre les appels IMDSv1 pendant la phase de démarrage et les opérations d'exécution de votre instance. En analysant ces journaux, vous pouvez identifier avec précision le logiciel qui effectue des appels IMDSv1 sur vos instances et déterminer ce qui doit être mis à jour pour prendre en charge IMDSv2 uniquement sur vos instances. Vous pouvez exécuter l’analyseur de packages IMDS à partir d’une ligne de commande ou l’installer en tant que service. Pour plus d'informations, voir [AWS ImdsPacketAnalyzer ](https://github.com/aws/aws-imds-packet-analyzer) la suite * GitHub*.

**CloudWatch**  
CloudWatch fournit les deux mesures suivantes pour surveiller vos instances :  
`MetadataNoToken`— IMDSv2 utilise des sessions adossées à des jetons, contrairement à IMDSv1. La `MetadataNoToken` métrique suit le nombre d'appels au service de métadonnées d'instance (IMDS) qui utilisent IMDSv1. En suivant cette métrique jusqu’à zéro, vous pouvez déterminer si la totalité de votre logiciel a été mis à niveau vers IMDSv2 et le moment auquel cela se produit.  
`MetadataNoTokenRejected`— Une fois que vous avez désactivé IMDSv1, vous pouvez utiliser la `MetadataNoTokenRejected` métrique pour suivre le nombre de tentatives et de refus d'un appel IMDSv1. En suivant cette métrique, vous pouvez déterminer si votre logiciel doit être mis à jour pour utiliser IMDSv2.  
Pour chaque instance EC2, ces métriques s'excluent mutuellement. Lorsque IMDSv1 est activé (`httpTokens = optional`), émet uniquement`MetadataNoToken`. Lorsque IMDSv1 est désactivé (`httpTokens = required`), émet uniquement`MetadataNoTokenRejected`. Pour savoir quand utiliser ces mesures, consultez[Chemin recommandé pour demander l’accès à IMDSv2](#recommended-path-for-requiring-imdsv2).  
Pour de plus amples informations, veuillez consulter [Métriques des instances](viewing_metrics_with_cloudwatch.md#ec2-cloudwatch-metrics).

**API de lancement **  
**Nouvelles instances : ** utilisez l'[RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)API pour lancer de nouvelles instances qui nécessitent l'utilisation d'IMDSv2. Pour de plus amples informations, veuillez consulter [Configurer les options de métadonnées d’instance pour les nouvelles instances](configuring-IMDS-new-instances.md).  
**Instances existantes : ** utilisez l'[ModifyInstanceMetadataOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataOptions.html)API pour exiger l'utilisation d'IMDSv2 sur les instances existantes. Pour de plus amples informations, veuillez consulter [Configurer les options de métadonnées d’instance pour les instances existantes](configuring-IMDS-existing-instances.md).  
**Nouvelles instances lancées par des groupes Auto Scaling : ** pour exiger l'utilisation d'IMDSv2 sur toutes les nouvelles instances lancées par des groupes Auto Scaling, vos groupes Auto Scaling peuvent utiliser un modèle de lancement ou une configuration de lancement. Lorsque vous [créez un modèle de lancement](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) ou [une configuration de lancement](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/create-launch-configuration.html), vous devez configurer les paramètres `MetadataOptions` pour exiger l’utilisation de IMDSv2. Le groupe Auto Scaling lance de nouvelles instances à l’aide du nouveau modèle de lancement ou de la nouvelle configuration de lancement, mais les instances existantes ne sont pas affectées.   
**Instances existantes dans un groupe Auto Scaling : ** utilisez l'[ModifyInstanceMetadataOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataOptions.html)API pour exiger l'utilisation d'IMDSv2 sur les instances existantes, ou mettez fin aux instances et le groupe Auto Scaling lancera de nouvelles instances de remplacement avec les paramètres d'options de métadonnées d'instance définis dans le nouveau modèle de lancement ou la nouvelle configuration de lancement.

**AMI**  
Les AMI configurées avec le `ImdsSupport` paramètre défini pour `v2.0` lanceront des instances qui nécessitent IMDSv2 par défaut. Amazon Linux 2023 est configuré avec`ImdsSupport = v2.0`.  
**Nouvelles AMI : ** utilisez la commande [ CLI ](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) register-image pour définir le `ImdsSupport` paramètre `v2.0` lors de la création d'une nouvelle AMI.  
**AMI existantes : ** utilisez la commande [ CLI ](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) modify-image-attribute pour définir le `ImdsSupport` paramètre `v2.0` lors de la modification d'une AMI existante.  
Pour de plus amples informations, veuillez consulter [Configurer l’AMI](configuring-IMDS-new-instances.md#configure-IMDS-new-instances-ami-configuration).

**Account-level contrôles **  
Vous pouvez configurer des valeurs par défaut pour toutes les options de métadonnées d'instance au niveau du compte. Les valeurs par défaut sont automatiquement appliquées lorsque vous lancez une instance. Pour plus d'informations, voir[Définissez IMDSv2 comme valeur par défaut pour le compte](configuring-IMDS-new-instances.md#set-imdsv2-account-defaults).  
Vous pouvez également imposer l'obligation d'utiliser IMDSv2 au niveau du compte. Lorsque l'application de la norme IMDSv2 est activée :  
+ **Nouvelles instances : les ** instances configurées pour être lancées avec IMDSv1 activé ne pourront pas être lancées
+ **Instances existantes avec IMDSv1 désactivé : les ** tentatives d'activation d'IMDSv1 sur les instances existantes seront empêchées.
+ **Instances existantes sur lesquelles IMDSv1 est activé : ** les instances existantes sur lesquelles IMDSv1 est déjà activé ne seront pas affectées.
Pour de plus amples informations, veuillez consulter [Appliquez IMDSv2 au niveau du compte](configuring-IMDS-new-instances.md#enforce-imdsv2-at-the-account-level).

**Politiques IAM et politiques de contrôle des services**  
Vous pouvez utiliser une politique IAM ou une politique de contrôle des AWS Organizations services (SCP) pour contrôler les utilisateurs comme suit :  
+ Impossible de lancer une instance à l'aide de l'[RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)API à moins que l'instance ne soit configurée pour utiliser IMDSv2.
+ Impossible de modifier une instance existante à l'aide de l'[ModifyInstanceMetadataOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataOptions.html)API pour réactiver IMDSv1.
La politique IAM ou la politique de contrôle des services doit contenir les clés de condition IAM suivantes :  
+ `ec2:MetadataHttpEndpoint`
+ `ec2:MetadataHttpPutResponseHopLimit`
+ `ec2:MetadataHttpTokens`
Si un paramètre de l'appel d'API ou de CLI ne correspond pas à l'état spécifié dans la politique qui contient la clé de condition, l'appel d'API ou de CLI échoue avec une `UnauthorizedOperation` réponse.  
Vous pouvez en outre choisir une couche de protection supplémentaire afin d’imposer le passage de IMDSv1 à IMDSv2. Au niveau de la couche de gestion des accès en ce qui concerne les API appelées via les informations d'identification des rôles EC2, vous pouvez utiliser une clé de condition dans les politiques IAM ou les politiques de contrôle des AWS Organizations services (SCP). Si vous utilisez la clé de condition `ec2:RoleDelivery` avec la valeur `2.0` dans vos politiques IAM, les appels d’API effectués avec des informations d’identification de rôle EC2 obtenues à partir de IMDSv1 recevront une réponse `UnauthorizedOperation`. Vous pouvez aboutir au même résultat plus généralement avec cette condition requise par une SCP. Cela garantit que les informations d'identification fournies via IMDSv1 ne peuvent pas être réellement utilisées pour appeler des API, car tout appel d'API ne correspondant pas à la condition spécifiée recevra une `UnauthorizedOperation` erreur.  
Par exemple les stratégies IAM, consultez [Utiliser des métadonnées d’instance](ExamplePolicies_EC2.md#iam-example-instance-metadata). Pour plus d’informations sur les SCP, consultez la section [Politiques de contrôle des services](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dans le *Guide de l’utilisateur AWS Organizations *.

**Politiques déclaratives **  
Utilisez les politiques déclaratives (une fonctionnalité de AWS Organizations) pour définir de manière centralisée les paramètres par défaut des comptes IMDS, y compris l'application de l'IMDSv2, dans l'ensemble de votre organisation. Pour un exemple de politique, consultez l'**onglet Métadonnées d'**instance dans la [ section ](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_syntax.html#declarative-policy-examples) Stratégies déclaratives prises en charge du Guide * de l'*AWS Organizations utilisateur.

## Chemin recommandé pour demander l’accès à IMDSv2
<a name="recommended-path-for-requiring-imdsv2"></a>

**Topics**
+ [Étape 1 : Identifier les instances avec IMDSv2=facultatif et auditer l'utilisation d'IMDSv1](#path-step-1)
+ [Étape 2 : Mettre à jour le logiciel vers IMDSv2](#path-step-2)
+ [Étape 3 : Exiger IMDSv2 sur les instances](#path-step-3)
+ [Étape 4 : définir IMDSv2=Required comme valeur par défaut](#path-step-4)
+ [Étape 5 : Forcer les instances à exiger IMDSv2](#path-step-5)

### Étape 1 : Identifier les instances avec IMDSv2=facultatif et auditer l'utilisation d'IMDSv1
<a name="path-step-1"></a>

Pour évaluer l'étendue de votre migration vers IMDSv2, identifiez les instances configurées pour autoriser IMDSv1 ou IMDSv2, et auditez les appels IMDSv1.

1. **Identifiez les instances configurées pour autoriser IMDSv1 ou IMDSv2 : **

------
#### [ Amazon EC2 console ]

   1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. Dans le panneau de navigation, choisissez **Instances**.

   1. Pour afficher uniquement les instances configurées pour autoriser IMDSv1 ou IMDSv2, ajoutez le filtre ** IMDSv2 = facultatif. **

   1. Sinon, pour savoir si IMDSv2 est ** facultatif ** ou ** obligatoire ** pour toutes les instances, ouvrez la ** fenêtre ** Préférences (icône représentant un engrenage), activez ** IMDSv2 ** et choisissez Confirmer. ** ** Cela ajoute la ** colonne ** IMDSv2 à la table ** Instances**.

------
#### [ AWS CLI ]

   Utilisez la [ commande ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-metadata-options.html) describe-instances et filtrez par`metadata-options.http-tokens = optional`, comme suit :

   ```
   aws ec2 describe-instances --filters "Name=metadata-options.http-tokens,Values=optional" --query "Reservations[*].Instances[*].[InstanceId]" --output text
   ```

------

1. **Audit IMDSv1 appelle chaque instance : **

   Utilisez la CloudWatch métrique`MetadataNoToken`. Cette métrique indique le nombre d’appels IMDSv1 à l’IMDS sur vos instances. Pour de plus amples informations, veuillez consulter [Métriques des instances](viewing_metrics_with_cloudwatch.md#ec2-cloudwatch-metrics).

1. **Identifiez les logiciels de vos instances qui effectuent des appels IMDSv1 : **

   Utilisez l'analyseur de paquets [ IMDS open source ](https://github.com/aws/aws-imds-packet-analyzer) pour identifier et enregistrer les appels IMDSv1 pendant la phase de démarrage et les opérations d'exécution de votre instance. Utilisez ces informations pour identifier le logiciel à mettre à jour afin que vos instances soient prêtes à utiliser IMDSv2 uniquement. Vous pouvez exécuter l’analyseur de packages IMDS à partir d’une ligne de commande ou l’installer en tant que service.

### Étape 2 : Mettre à jour le logiciel vers IMDSv2
<a name="path-step-2"></a>

Mettez à jour tous les kits de développement logiciel, les interfaces de ligne de commande et les logiciels qui utilisent les informations d'identification des rôles sur vos instances vers IMDSv2-compatible les versions. Pour en savoir plus sur la mise à jour de la CLI, consultez la section [Installation ou mise à jour de la dernière version de l’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dans le *Guide de l’utilisateur AWS Command Line Interface *.

### Étape 3 : Exiger IMDSv2 sur les instances
<a name="path-step-3"></a>

Après avoir confirmé l'absence d'appel IMDSv1 par le biais de la `MetadataNoToken` métrique, configurez vos instances existantes pour qu'elles nécessitent IMDSv2. Configurez également toutes les nouvelles instances pour qu'elles nécessitent IMDSv2. En d'autres termes, désactivez IMDSv1 sur toutes les instances existantes et nouvelles.

1. **Configurez les instances existantes pour qu'elles nécessitent IMDSv2 : **

------
#### [ Amazon EC2 console ]

   1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. Dans le panneau de navigation, choisissez **Instances**.

   1. Sélectionnez votre instance.

   1. Choisissez **Actions**, **Paramètres de l’instance**, puis **Modifier les options des métadonnées d’instance**.

   1. Pour **IMDSv2**, choisissez **Requis**.

   1. Choisissez **Enregistrer**.

------
#### [ AWS CLI ]

   Utilisez la commande [ CLI ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-metadata-options.html) modify-instance-metadata-options pour spécifier que seul IMDSv2 doit être utilisé. 

------
**Note**  
Vous pouvez modifier ce paramètre sur les instances en cours d'exécution. La modification prend effet immédiatement sans qu'il soit nécessaire de redémarrer l'instance.

   Pour de plus amples informations, veuillez consulter [Exigence d’utilisation d’IMDSv2](configuring-IMDS-existing-instances.md#modify-require-IMDSv2).

1. **Surveillez les problèmes après la désactivation d'IMDSv1 : **

   1. Suivez le nombre de tentatives et de refus d'un appel IMDSv1 à l'aide de la `MetadataNoTokenRejected` CloudWatch métrique.

   1. Si la `MetadataNoTokenRejected` métrique enregistre les appels IMDSv1 sur une instance qui rencontre des problèmes logiciels, cela indique que le logiciel doit être mis à jour pour utiliser IMDSv2.

1. **Configurez les nouvelles instances pour qu'elles nécessitent IMDSv2 : **

------
#### [ Amazon EC2 console ]

   1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. Suivez les étapes pour [ lancer une instance](ec2-launch-instance-wizard.md).

   1. Développez les détails ** avancés et**, pour la version ** des métadonnées**, choisissez ** V2 uniquement (jeton requis)**.

   1. Dans le panneau **Summary** (Résumé), vérifiez la configuration de votre instance, puis choisissez **Launch instance** (Lancer l’instance).

      Pour de plus amples informations, veuillez consulter [Configurer l’instance au lancement](configuring-IMDS-new-instances.md#configure-IMDS-new-instances-instance-settings).

------
#### [ AWS CLI ]

   AWS CLI : utilisez la commande de [run-instances](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/run-instances.html) et indiquez que IMDSv2 est requis.

------

### Étape 4 : définir IMDSv2=Required comme valeur par défaut
<a name="path-step-4"></a>

Vous pouvez définir IMDSv2=Required comme configuration par défaut au niveau du compte ou de l'organisation. Cela garantit que toutes les instances récemment lancées sont automatiquement configurées pour nécessiter IMDSv2.

1. **Définissez la valeur par défaut au niveau du compte : **

------
#### [ Amazon EC2 console ]

   1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

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

   1. Sur la ** fiche Attributs du ** compte, sous ** Paramètres**, choisissez Protection et sécurité des ** données**.

   1. Dans les paramètres par défaut ** de l'IMDS**, choisissez ** Gérer. **

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

   1. Pour la version ** des métadonnées**, choisissez ** V2 uniquement (jeton requis)**.

   1. Choisissez **Mettre à jour**.

------
#### [ AWS CLI ]

   Utilisez la commande CLI [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-metadata-defaults.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-metadata-defaults.html) modify-instance-metadata-defaults et spécifiez et. `--http-tokens required` `--http-put-response-hop-limit {{2}}`

------

   Pour de plus amples informations, veuillez consulter [Définissez IMDSv2 comme valeur par défaut pour le compte](configuring-IMDS-new-instances.md#set-imdsv2-account-defaults).

1. **Vous pouvez également définir la valeur par défaut au niveau de l'organisation à l'aide d'une politique déclarative : **

   Utilisez une politique déclarative pour définir la valeur par défaut de l'organisation pour IMDSv2 sur obligatoire. Pour un exemple de politique, consultez l'**onglet Métadonnées d'**instance dans la [ section ](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_syntax.html#declarative-policy-examples) Stratégies déclaratives prises en charge du Guide * de l'*AWS Organizations utilisateur.

### Étape 5 : Forcer les instances à exiger IMDSv2
<a name="path-step-5"></a>

Après avoir confirmé qu'aucune de vos instances ne dépend d'IMDSv1, nous vous recommandons d'appliquer IMDSv2 à toutes les nouvelles instances.

Utilisez l'une des options suivantes pour appliquer IMDSv2 :

1. **Appliquez IMDSv2 à l'aide d'une propriété de compte **

   Vous pouvez imposer l'utilisation d'IMDSv2 au niveau du compte pour chacun. 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. Pour de plus amples informations, veuillez consulter [Appliquez IMDSv2 au niveau du compte](configuring-IMDS-new-instances.md#enforce-imdsv2-at-the-account-level). Pour appliquer ce paramètre au niveau de l'organisation, définissez une politique déclarative. Pour un exemple de politique, consultez l'**onglet Métadonnées d'**instance dans la [ section ](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_syntax.html#declarative-policy-examples) Stratégies déclaratives prises en charge du Guide * de l'*AWS Organizations utilisateur.

   Pour éviter un renversement de l'application, vous devez utiliser une politique IAM pour empêcher l'accès à l'[ModifyInstanceMetadataDefaults](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataDefaults.html)API. Pour de plus amples informations, veuillez consulter [Utiliser une politique IAM](configuring-IMDS-new-instances.md#configure-IMDS-new-instances-iam-policy).
**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é.
**Avertissement**  
Si l'application IMDSv2 est activée et n'`httpTokens`est 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 IMDSv1-enabled instance échoue](troubleshooting-launch.md#launching-an-imdsv1-enabled-instance-fails).

1. **Vous pouvez également appliquer IMDSv2 à l'aide des clés de condition IAM ou SCP suivantes : **
   + `ec2:MetadataHttpTokens`
   + `ec2:MetadataHttpPutResponseHopLimit`
   + `ec2:MetadataHttpEndpoint`

   Ces clés de condition contrôlent l'utilisation des [ ModifyInstanceMetadataOptions ](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataOptions.html) API [ RunInstances ](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) et des CLI correspondantes. Si une stratégie est créée et qu’un paramètre de l’appel d’API ne correspond pas à l’état spécifié dans la stratégie à l’aide de la clé de condition, l’appel de l’API ou de l’interface de ligne commande échoue avec la réponse `UnauthorizedOperation`.

   Par exemple les stratégies IAM, consultez [Utiliser des métadonnées d’instance](ExamplePolicies_EC2.md#iam-example-instance-metadata).