Contenido del curso

Cómo consultar metadatos de EC2 con IMDSv2

Resumen

Cuando trabajas con instancias EC2, llega un momento en el que necesitas obtener información dinámica como el tipo de instancia, la zona de disponibilidad o el identificador único. Aquí aprenderás a consultar los metadatos de una instancia EC2 usando el Instance Metadata Service versión 2 (IMDSv2), una habilidad clave para administrar servidores en AWS y un tema frecuente en el examen de certificación.

¿Qué es el Instance Metadata Service y por qué importa?

El Instance Metadata Service (IMDS) es el servicio que te permite consultar información interna de tu instancia EC2 desde dentro de la propia máquina. Piensa en él como una ventanilla privada: tu instancia le pregunta a AWS quién es, dónde está corriendo y cómo está configurada.

Dentro del panel de EC2, al seleccionar tu instancia y revisar el tab de detalles, verás que el IMDS aparece configurado en versión 2 y como requerida. Esa es la configuración recomendada por AWS [00:50].

¿Qué diferencia hay entre IMDSv1 e IMDSv2? La versión 2 exige un token de sesión antes de devolver los metadatos, lo que añade una capa extra de seguridad frente a accesos no autorizados. La versión 1 no usa token y AWS recomienda evitarla.

¿Cómo obtengo el token y consulto los metadatos?

Para empezar, conéctate a tu instancia usando EC2 Instance Connect desde la consola, igual que en clases anteriores. Una vez dentro de la terminal, el flujo tiene tres movimientos: pedir el token, guardarlo y usarlo en una llamada curl hacia la dirección interna del servicio [01:20].

La dirección que debes recordar es 169.254.169.254. Apréndela de memoria, porque es una de esas preguntas típicas del examen de AWS Certified.

  • Solicitas un token al endpoint de IMDSv2 con una petición PUT.
  • Verificas que el token se guardó correctamente con un echo.
  • Haces una llamada curl incluyendo el token en el header para traer los metadatos.

Con esa llamada puedes traer un montón de información: el nombre del host, el identificador de la instancia, la IPv4 privada, la zona de disponibilidad, métricas y mucho más [02:10].

¿Y si solo quiero un dato específico?

No necesitas traer todo el bloque de metadatos. Puedes personalizar el comando para pedir un campo puntual. Por ejemplo, si solo quieres el identificador de la instancia, ajustas la ruta del curl y obtienes únicamente ese valor [02:35].

Esto es útil cuando estás escribiendo scripts que deben adaptarse al entorno: la instancia se autodescubre y reacciona según su zona, su tipo o su ID, sin que tú tengas que codificar nada de forma estática.

¿Por qué AWS recomienda IMDSv2 sobre IMDSv1?

La razón es simple: seguridad. IMDSv1 permitía obtener metadatos con una petición HTTP directa, lo que abría la puerta a ataques de tipo Server Side Request Forgery (SSRF). IMDSv2 cierra esa puerta exigiendo un token de sesión que solo se puede generar desde dentro de la instancia.

¿Puedo cambiar mi instancia a IMDSv1? Sí, técnicamente puedes hacerlo desde la configuración de la instancia, pero AWS recomienda mantener IMDSv2 como requerida para proteger información sensible.

Usar IMDSv2 te da un beneficio doble: cumples buenas prácticas de seguridad y te alineas con lo que el examen de certificación espera que respondas.

¿Qué información puedo traer desde los metadatos?

Dentro del catálogo de metadatos disponibles encontrarás campos muy útiles para automatizar tareas y monitorear tu infraestructura.

  • Identificador de la instancia: el ID único que AWS le asigna.
  • Tipo de instancia: por ejemplo, t2.micro o m5.large.
  • Zona de disponibilidad: en qué AZ está corriendo.
  • IPv4 privada y nombre de host: datos de red internos.
  • Métricas y etiquetas: información operativa adicional.

La documentación oficial de AWS lista todos los campos disponibles, así que ténla a mano cuando estés construyendo tus propios scripts de descubrimiento.

Si llegaste hasta aquí y resolviste el desafío de consultar los metadatos por tu cuenta, vas por excelente camino. Cuéntame en los comentarios si tuviste alguna complicación con el token o con el curl, y comparte qué campo de metadatos te resultó más útil para tu caso de uso.