Cours > Module > Chapitre

Lab : Explorer et utiliser EC2 Instance Metadata

[Lab] Explorer et utiliser EC2 Instance Metadata (IMDS)

Objectifs

  • Lancer une instance EC2 sous AWS.

  • Comprendre et utiliser Instance Metadata Service (IMDS).

  • Récupérer les métadonnées de l’instance depuis le terminal.

  • Expérimenter IMDSv2 pour une meilleure sécurité.

Prérequis

  • Un compte AWS actif.

  • Accès à la console AWS et à un terminal local avec AWS CLI installé.

  • Une clé SSH valide pour se connecter à l’instance.

Étape 1 : Création d’une instance EC2

  • Accéder à la console AWS

    1. Lancer une nouvelle instance

      • Cliquez sur Instances → Launch instance.

  • Donnez un nom à votre instance (ex: Lab-EC2-Metadata).

      • Sélectionnez une image Amazon Machine Image (AMI), par exemple :

        • Amazon Linux 2023 (recommandé)

  • Choisissez un type d’instance : t2.micro (gratuite avec Free Tier).

      • Continuer sans paire de clés (Keypair)

      • Choisissez le VPC par défaut

      • Créer un groupe de sécurité qui autorise le trafic ssh depuis votre IP ou depuis Internet (0.0.0.0/0)

    1. Configurer les paramètres avancés

  • Dans Advanced details, vérifiez que

  • Métadonnées accessibles = Activé

  • Version des métadonnées = V1 et V2 (jeton facultatif)

  1. Lancer l’instance

    • Cliquez sur Launch instance et attendez quelques minutes que l’instance démarre.

  2. Se connecter avec EC2 Instance connect

    • Allez dans la liste des instances.

    • Sélectionnez votre instance EC2 et cliquez sur Connect

    • Choisissez l’option EC2 Instance Connect.

    • Une fois connecté, vous devriez voir une invite de commande similaire à :
      [ec2-user@ip-172-31-XX-XX ~]$

Étape 3 : Accéder aux métadonnées de l'instance

Le service IMDS fournit des informations sur l’instance via une requête HTTP.

Lister les catégories disponibles

				
					curl http://169.254.169.254/latest/meta-data/
				
			

Exemple de sortie :

				
					ami-id
instance-id
instance-type
local-ipv4
public-ipv4
security-groups

				
			

Récupérer l’ID de l’instance

				
					i-0abc123def456gh78
				
			

Récupérer le type d’instance

				
					curl http://169.254.169.254/latest/meta-data/instance-type
				
			

Récupérer l’adresse IP privée de l’instance

				
					curl http://169.254.169.254/latest/meta-data/local-ipv4
				
			

Obtenir l’AMI utilisée pour lancer l’instance

				
					curl http://169.254.169.254/latest/meta-data/ami-id
				
			

Étape 4 : Tester Instance Metadata Service v2 (IMDSv2)

Obtenir un jeton d’authentification

				
					TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
				
			

Utiliser le jeton pour récupérer des métadonnées

				
					
curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
				
			

Récupérer l’ID de l’instance avec IMDSv2

				
					curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id
				
			

Étape 5 : Automatiser la récupération des métadonnées

Créer un script Bash

				
					#!/bin/bash
echo "Instance ID: $(curl -s http://169.254.169.254/latest/meta-data/instance-id)"
echo "Type: $(curl -s http://169.254.169.254/latest/meta-data/instance-type)"
echo "Local IP: $(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)"
echo "Public IP: $(curl -s http://169.254.169.254/latest/meta-data/public-ipv4)"


				
			
  • Enregistrer et quitter (CTRL + X, Y, ENTER)

Rendre le script exécutable et l’exécuter
bash

				
					chmod +x metadata-info.sh
./metadata-info.sh
				
			

Étape 6 : Sécuriser l’accès aux métadonnées

Par défaut, IMDSv1 permet un accès facile mais peut être exploité. Il est recommandé de forcer l’utilisation d’IMDSv2 uniquement.

Forcer IMDSv2
A l’aide d’AWS CloudShell, exécutez la commande suivante sur AWS CLI en ayant renseigné avec l’id de votre instance en lieu et place de i-xxxxxxxxxx  :

				
					aws ec2 modify-instance-metadata-options --instance-id i-xxxxxxxxxx --http-tokens required
				
			
  1. Explication :
  • –http-tokens required oblige l’utilisation de IMDSv2 uniquement.

Tester après avoir désactivé IMDSv1

				
					curl http://169.254.169.254/latest/meta-data/
				
			

Cela ne devrait plus marcher car IMDSv1 est désactivé.

Conclusion

Ce lab vous a permis de :

  • Lancer une instance EC2 et s’y connecter via SSH.

  • Accéder aux métadonnées d’une instance avec IMDSv1 et IMDSv2.

  • Expérimenter la sécurisation des métadonnées avec IMDSv2 uniquement.

  • Automatiser la récupération des informations EC2 avec un script.

×

Panier