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
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.
Outils pour la transition vers IMDSv2
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, consultezChemin recommandé pour demander l’accès à 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
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
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. LaMetadataNoTokenmé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 laMetadataNoTokenRejectedmé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 uniquementMetadataNoToken. Lorsque IMDSv1 est désactivé (httpTokens = required), émet uniquementMetadataNoTokenRejected. Pour savoir quand utiliser ces mesures, consultezChemin recommandé pour demander l’accès à IMDSv2.Pour de plus amples informations, veuillez consulter Métriques des instances.
- API de lancement
-
Nouvelles instances : utilisez l'RunInstancesAPI 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.
Instances existantes : utilisez l'ModifyInstanceMetadataOptionsAPI 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.
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 ou une configuration de lancement, vous devez configurer les paramètres
MetadataOptionspour 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'ModifyInstanceMetadataOptionsAPI 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
ImdsSupportparamètre défini pourv2.0lanceront des instances qui nécessitent IMDSv2 par défaut. Amazon Linux 2023 est configuré avecImdsSupport = v2.0.Nouvelles AMI : utilisez la commande CLI register-image pour définir le
ImdsSupportparamètrev2.0lors de la création d'une nouvelle AMI.AMI existantes : utilisez la commande CLI modify-image-attribute pour définir le
ImdsSupportparamètrev2.0lors de la modification d'une AMI existante.Pour de plus amples informations, veuillez consulter Configurer l’AMI.
- 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, voirDéfinissez IMDSv2 comme valeur par défaut pour le compte.
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.
-
- 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'RunInstancesAPI à moins que l'instance ne soit configurée pour utiliser IMDSv2.
-
Impossible de modifier une instance existante à l'aide de l'ModifyInstanceMetadataOptionsAPI 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
UnauthorizedOperationré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:RoleDeliveryavec la valeur2.0dans 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éponseUnauthorizedOperation. 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 uneUnauthorizedOperationerreur.Par exemple les stratégies IAM, consultez Utiliser des métadonnées d’instance. Pour plus d’informations sur les SCP, consultez la section Politiques de contrôle des services 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 Stratégies déclaratives prises en charge du Guide de l'AWS Organizations utilisateur.
Chemin recommandé pour demander l’accès à IMDSv2
À l'aide des outils ci-dessus, nous recommandons le chemin suivant pour effectuer la transition vers IMDSv2 :
Étape 1 : Identifier les instances avec IMDSv2=facultatif et auditer l'utilisation d'IMDSv1
Pour évaluer l'étendue de votre migration vers IMDSv2, identifiez les instances configurées pour autoriser IMDSv1 ou IMDSv2, et auditez les appels IMDSv1.
-
Identifiez les instances configurées pour autoriser IMDSv1 ou IMDSv2 :
-
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. -
Identifiez les logiciels de vos instances qui effectuent des appels IMDSv1 :
Utilisez l'analyseur de paquets IMDS open source
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
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 dans le Guide de l’utilisateur AWS Command Line Interface .
Étape 3 : Exiger IMDSv2 sur les instances
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.
-
Configurez les instances existantes pour qu'elles nécessitent IMDSv2 :
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.
-
Surveillez les problèmes après la désactivation d'IMDSv1 :
-
Suivez le nombre de tentatives et de refus d'un appel IMDSv1 à l'aide de la
MetadataNoTokenRejectedCloudWatch métrique. -
Si la
MetadataNoTokenRejectedmé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.
-
-
Configurez les nouvelles instances pour qu'elles nécessitent IMDSv2 :
Étape 4 : définir IMDSv2=Required comme valeur par défaut
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.
-
Définissez la valeur par défaut au niveau du compte :
Pour de plus amples informations, veuillez consulter Définissez IMDSv2 comme valeur par défaut pour le compte.
-
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 Stratégies déclaratives prises en charge du Guide de l'AWS Organizations utilisateur.
Étape 5 : Forcer les instances à exiger IMDSv2
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 :
-
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. 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 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'ModifyInstanceMetadataDefaultsAPI. Pour de plus amples informations, veuillez consulter Utiliser une politique IAM.
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'
httpTokensest définie nirequireddans 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. -
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 API RunInstances 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.
-