Passer à l’utilisation de Service des métadonnées d’instance Version 2 - 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.

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 SDKs support AWS CLI et IMDSv2. Pour les utiliserIMDSv2, mettez à jour vos EC2 instances afin d'utiliser les dernières versions. Pour connaître les versions minimales du AWS SDK prises en charge IMDSv2, consultezUtilisation d’un kit SDK AWS pris en charge.

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 ImdsPacketAnalyzerci-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. La MetadataNoToken mé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— Après avoir désactivé IMDSv1, vous pouvez utiliser la MetadataNoTokenRejected mé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 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 Amazon EC2 Auto Scaling : pour exiger l'utilisation de IMDSv2 toutes les nouvelles instances lancées par les groupes Amazon EC2 Auto Scaling, vos groupes Amazon EC2 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 MetadataOptions pour exiger l'utilisation de IMDSv2. Le groupe Amazon EC2 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 Amazon EC2 Auto Scaling : utilisez l'ModifyInstanceMetadataOptionsAPI pour exiger l'utilisation d'IMDSv2 instances existantes, ou mettez fin aux instances et le groupe Amazon EC2 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 la nouvelle configuration de lancement.

AMIs

AMIs configuré avec le ImdsSupport paramètre défini sur v2.0 lancera 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 ImdsSupport paramètre sur v2.0 lors de la création d'une nouvelle AMI.

Existant AMIs : utilisez la commande modify-image-attributeCLI pour définir le ImdsSupport paramètre sur v2.0 lorsque vous modifiez une AMI existante.

Pour de plus amples informations, veuillez consulter Configurer l’AMI.

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 si l'instance n'est pas configurée pour être utilisée IMDSv2.

  • Impossible de modifier une instance en cours d'exécution à 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 contenant la clé de condition, l'appel d'API ou de CLI échoue avec une UnauthorizedOperation réponse.

En outre, vous pouvez choisir une couche de protection supplémentaire pour appliquer le passage de IMDSv1 à IMDSv2. Au niveau de la couche de gestion des accès, en ce qui concerne les informations d'identification APIs appelées via le EC2 rôle, vous pouvez utiliser une clé de condition dans les politiques IAM ou dans les politiques de contrôle des AWS Organizations services (SCPs). Plus précisément, en utilisant la clé de condition ec2:RoleDelivery avec une valeur de 2.0 dans vos politiques IAM, les appels d'API effectués avec les informations d'identification de EC2 rôle obtenues auprès de IMDSv1 recevront une UnauthorizedOperation ré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 une UnauthorizedOperation erreur.

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 et appliquer IMDSv2 de manière centralisée la version IMDS par défaut au sein de votre organisation. Pour un exemple de politique, consultez l'onglet Paramètres par défaut des métadonnées d'instance dans la section Politiques déclaratives prises en charge du guide de l'AWS Organizations utilisateur.

Étape 1 : Identifier les instances dont l'utilisation est IMDSv2 = facultatif et auditer l'utilisation IMDSv1

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

  1. Identifiez les instances configurées pour autoriser l'une IMDSv1 ou l'autre des options IMDSv2 suivantes :

    Amazon EC2 console
    1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

    2. Dans le panneau de navigation, choisissez Instances.

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

    4. Sinon, pour savoir si IMDSv2 c'est facultatif ou obligatoire pour toutes les instances, ouvrez la fenêtre des préférences (icône en forme de roue dentée), activez-la IMDSv2et choisissez Confirmer. La IMDSv2colonne est alors ajoutée au tableau Instances.

    AWS CLI

    Utilisez la commande describe-instances et filtrez parmetadata-options.http-tokens = optional, comme suit :

    aws ec2 describe-instances --filters "Name=metadata-options.http-tokens,Values=optional" --query "Reservations[*].Instances[*].[InstanceId]" --output text
  2. L'audit IMDSv1 fait appel à chaque instance :

    Utilisez la CloudWatch métriqueMetadataNoToken. 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.

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

  1. Configurez les instances existantes pour exiger IMDSv2 :

    Amazon EC2 console
    1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

    2. Dans le panneau de navigation, choisissez Instances.

    3. Sélectionnez votre instance.

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

    5. Pour IMDSv2, choisissez Obligatoire.

    6. Choisissez Enregistrer.

    AWS CLI

    Utilisez la commande modify-instance-metadata-optionsCLI pour spécifier que seule cette IMDSv2 option doit être utilisée.

    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.

  2. Surveillez les problèmes après la désactivation IMDSv1 :

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

    2. Si la MetadataNoTokenRejected mé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.

  3. Configurez les nouvelles instances pour exiger IMDSv2 :

    Amazon EC2 console
    1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

    2. Suivez les étapes pour lancer une instance.

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

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

    AWS CLI

    AWS CLI: utilisez la commande run-instances et spécifiez que IMDSv2 c'est obligatoire.

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

  1. Définissez le niveau par défaut du compte :

    Amazon EC2 console
    1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

    2. Sur le EC2 tableau de bord, sous Attributs du compte, sélectionnez Protection et sécurité des données.

    3. Dans la section Paramètres par défaut de l'IMDS, sélectionnez Gérer.

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

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

    6. Choisissez Mettre à jour.

    AWS CLI

    Utilisez la commande modify-instance-metadata-defaultsCLI et spécifiez --http-tokens required et--http-put-response-hop-limit 2.

    Pour de plus amples informations, veuillez consulter Définir IMDSv2 comme valeur par défaut pour le compte.

  2. 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 Paramètres par défaut des 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

Utilisez les clés de condition IAM ou SCP suivantes pour renforcer IMDSv2 l'utilisation :

  • ec2:MetadataHttpTokens

  • ec2:MetadataHttpPutResponseHopLimit

  • ec2:MetadataHttpEndpoint

Ces touches de condition contrôlent l'utilisation RunInstancesdes ModifyInstanceMetadataOptions APIs et correspondants 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.