Blog · 07

Conectividad privada en AWS con Terraform, y el fallo que pilló la CI

PrivateLink, DNS privado y endpoints de SSM en cinco módulos, probados sin cuenta de AWS.

Por qué este laboratorio

Viene de operar un entorno híbrido con AWS y Azure, donde una necesidad habitual es llegar a un servicio de forma privada, sin internet gateway y sin NAT. Este laboratorio construye ese patrón de principio a fin con Terraform.

Qué he hecho

Cinco módulos de Terraform:

  • Una VPC privada con flow logs.
  • Un NLB interno con un endpoint service que exige aceptación y principals explícitos.
  • Un interface endpoint con un security group estrecho.
  • Una zona privada de Route 53 con alias y logs de consultas.
  • Endpoints de SSM y S3, más un laboratorio con dos instancias de prueba (IMDSv2, sin IP pública, Session Manager).

Cómo se prueba

terraform test con el proveedor de AWS simulado (5 tests) y un pipeline de GitHub Actions con fmt, validate, test y tfsec, todo en verde. Tener el laboratorio encendido cuesta unos 0,11 $ la hora.

Qué aprendí

La CI con Terraform encontró un fallo real que OpenTofu no marcó: un for_each sobre IDs que no se conocen en el plan. Está corregido y explicado en docs/decisions.md.

Siguientes pasos

  • Ejecutar terraform apply en una cuenta de AWS de pruebas (el laboratorio cuesta unos 0,11 $ por hora).
  • Conectar tus VPC, los principals permitidos y tu zona DNS privada.
  • Mantener las comprobaciones de CI (fmt, validate, test, tfsec) en tu pipeline.

¿Quieres llevarlo a tu entorno o adaptarlo a tu caso? Escríbeme y lo vemos.

Tech Career Lab · newsletter

¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.

Apúntate y llévate las 33 ideas →