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 accepter uniquement les appels du service de métadonnées d'instance version 2 (IMDSv2), nous vous recommandons d'utiliser les outils et le chemin de transition suivants.
Outils de transition vers IMDSv2
Les outils suivants peuvent vous aider à identifier, surveiller et gérer la transition de votre logiciel de IMDSv1 vers IMDSv2. Pour obtenir des instructions sur l'utilisation de ces outils, reportez-vous àChemin recommandé pour exiger IMDSv2.
- AWS logiciel
-
Les dernières versions du AWS SDK AWS CLI et du kit de développement prennent en charge l'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 prises en charge IMDSv2, consultezUtiliser un AWS SDK compatible.
Tous les packages logiciels Amazon Linux 2 et Amazon Linux 2023 sont pris en charge IMDSv2. Amazon Linux 2023 est désactivé IMDSv1 par défaut.
- Analyseur de packages IMDS
-
IMDS Packet Analyzer est un outil open source qui identifie et enregistre les IMDSv1 appels 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 effectuant des IMDSv1 appels sur vos instances et déterminer ce qui doit être mis à jour pour IMDSv2 ne prendre en charge que 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
ci-dessous GitHub. - CloudWatch
-
CloudWatch fournit les deux mesures suivantes pour surveiller vos instances :
MetadataNoToken— IMDSv2 utilise des sessions basées sur des jetons, ce qui n'est IMDSv1 pas le cas. LaMetadataNoTokenmétrique suit le nombre d'appels utilisés par le service de métadonnées d'instance (IMDS). 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 IMDSv1 appel. En suivant cette métrique, vous pouvez déterminer si votre logiciel doit être mis à jour pour être utilisé IMDSv2.Pour chaque instance EC2, ces métriques s'excluent mutuellement. Lorsque cette option IMDSv1 est activée (
httpTokens = optional),MetadataNoTokenémet uniquement. Lorsque cette IMDSv1 option est désactivée (httpTokens = required),MetadataNoTokenRejectedémet uniquement. Pour savoir dans quels cas utiliser ces mesures, consultezChemin recommandé pour exiger IMDSv2.Pour de plus amples informations, veuillez consulter Métriques des instances.
- Lancer APIs
-
Nouvelles instances : utilisez l'RunInstancesAPI pour lancer de nouvelles instances nécessitant l'utilisation de 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 IMDSv2 d'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 les groupes Auto Scaling : pour exiger l'utilisation de toutes IMDSv2 les nouvelles instances lancées par les 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 instances existantes, ou mettez fin aux instances et le groupe Auto Scaling lancera de nouvelles instances de remplacement avec les paramètres des options de métadonnées d'instance définis dans le nouveau modèle de lancement ou dans la nouvelle configuration de lancement.
- AMIs
-
AMIs configuré avec le
ImdsSupportparamètre défini surv2.0lancera les instances qui nécessitent IMDSv2 par défaut. Amazon Linux 2023 est configuré avecImdsSupport = v2.0.Nouveau AMIs : utilisez la commande register-image CLI pour définir le
ImdsSupportparamètre surv2.0lors de la création d'une nouvelle AMI.Existant AMIs : utilisez la commande modify-image-attributeCLI pour définir le
ImdsSupportparamètre surv2.0lorsque vous modifiez une AMI existante.Pour de plus amples informations, veuillez consulter Configurer l’AMI.
- Contrôles au niveau du compte
-
Vous pouvez configurer des valeurs par défaut pour toutes les options de métadonnées de l'instance au niveau du compte. Les valeurs par défaut sont automatiquement appliquées lorsque vous lancez une instance. Pour plus d'informations, voirDéfinir IMDSv2 comme valeur par défaut pour le compte.
Vous pouvez également imposer l'obligation d'utilisation IMDSv2 au niveau du compte. Lorsque IMDSv2 l'application est activée :
-
Nouvelles instances : les instances configurées pour être lancées avec IMDSv1 activé ne pourront pas être lancées
-
Instances existantes IMDSv1 désactivées : les tentatives d'activation IMDSv1 sur des instances existantes seront empêchées.
-
Instances existantes IMDSv1 activées : les instances existantes IMDSv1 déjà activées ne seront pas affectées.
Pour de plus amples informations, veuillez consulter Appliquer IMDSv2 au niveau du compte.
-
- Politiques IAM et SCPs
-
Vous pouvez utiliser une stratégie 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 être utilisée IMDSv2.
-
Impossible de modifier une instance existante à l'aide de l'ModifyInstanceMetadataOptionsAPI pour la réactiverIMDSv1.
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 du rôle EC2, vous pouvez utiliser une clé de condition dans les politiques IAM ou les politiques de contrôle des AWS Organizations services ()SCPs. Plus précisément, en utilisant la clé de condition
ec2:RoleDeliveryavec une valeur de2.0dans vos politiques IAM, les appels d'API effectués avec les informations d'identification du rôle EC2 obtenues IMDSv1 recevront uneUnauthorizedOperationréponse. 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, APIs 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 SCPs, consultez la section Politiques de contrôle des services dans le Guide de AWS Organizations l'utilisateur.
-
- 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 leur IMDSv2 application, au sein de votre organisation. Pour un exemple de politique, consultez l'onglet Métadonnées d'instance dans la section Politiques déclaratives prises en charge du Guide de l'AWS Organizations utilisateur.
Chemin recommandé pour exiger 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 =optional et auditer leur utilisation IMDSv1
Pour évaluer l'étendue de votre IMDSv2 migration, identifiez les instances configurées pour autoriser l'un IMDSv1 ou IMDSv2 l'autre des appels et des IMDSv1 appels d'audit.
-
Identifiez les instances configurées pour autoriser l'une IMDSv1 ou l'autre des options IMDSv2 suivantes :
-
L'audit IMDSv1 fait appel à chaque instance :
Utilisez la CloudWatch métrique
MetadataNoToken. Cette métrique indique le nombre d' IMDSv1 appels à l'IMDS sur vos instances. Pour plus d'informations, consultez la section Mesures relatives aux instances. -
Identifiez les logiciels présents sur vos instances qui passent des IMDSv1 appels :
Utilisez l'analyseur de paquets IMDS
open source pour identifier et enregistrer les IMDSv1 appels 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 à être utilisées 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 pour IMDSv2
Mettez à jour tous les SDKs logiciels qui utilisent les informations d'identification de rôle sur vos instances CLIs, ainsi que les logiciels qui utilisent les informations d'identification des rôles, vers des versions IMDSv2 compatibles. 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 des instances
Après avoir confirmé l'absence d' IMDSv1 appels par le biais de la MetadataNoToken métrique, configurez vos instances existantes en conséquence IMDSv2. Configurez également toutes les nouvelles instances à requérir IMDSv2. En d'autres termes, IMDSv1 désactivez-le sur toutes les instances existantes et nouvelles.
-
Configurez les instances existantes pour exiger 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 Exiger l'utilisation de IMDSv2.
-
Surveillez les problèmes après la désactivation IMDSv1 :
-
Suivez le nombre de tentatives et de refus d'un IMDSv1 appel à l'aide de la
MetadataNoTokenRejectedCloudWatch métrique. -
Si la
MetadataNoTokenRejectedmétrique enregistre les IMDSv1 appels à une instance qui rencontre des problèmes logiciels, cela indique que le logiciel doit être mis à jour pour être utilisé IMDSv2.
-
-
Configurez les nouvelles instances pour exiger 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 nouvellement lancées sont automatiquement configurées pour être requises IMDSv2.
-
Définissez le niveau par défaut du compte :
Pour de plus amples informations, veuillez consulter Définir 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 IMDSv2 sur obligatoire. Pour un exemple de politique, consultez l'onglet Métadonnées d'instance dans la section Politiques déclaratives prises en charge du Guide de l'AWS Organizations utilisateur.
Étape 5 : appliquer les instances à exiger IMDSv2
Une fois que vous avez confirmé qu'il n'existe aucune IMDSv1 dépendance à l'égard de l'une de vos instances, nous vous recommandons de l'appliquer IMDSv2 à toutes les nouvelles instances.
Utilisez l'une des options suivantes pour appliquer IMDSv2 :
-
Appliquer IMDSv2 à l'aide d'une propriété de compte
Vous pouvez imposer l'utilisation de 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 l'exiger IMDSv2. Cette application s'applique quelle que soit la configuration de l'instance ou de l'AMI. Pour de plus amples informations, veuillez consulter Appliquer 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 Politiques 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 IMDSv1 sur les instances existantes actuellement IMDSv1 désactivées.
Avertissement
Si IMDSv2 l'application 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 instance IMDSv1 activée échoue. -
Vous pouvez également appliquer IMDSv2 en utilisant les clés de condition IAM ou SCP suivantes :
-
ec2:MetadataHttpTokens -
ec2:MetadataHttpPutResponseHopLimit -
ec2:MetadataHttpEndpoint
Ces touches de condition contrôlent l'utilisation du RunInstancesModifyInstanceMetadataOptions APIs et du correspondant CLIs. 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.
-