Configuración de AWS CLI para Terraform

Clase 12 de 30Curso de Ciberseguridad para Desarrollo Web

Resumen

La infraestructura como código con Terraform en AWS permite definir, versionar y auditar tu arquitectura con precisión. Aquí verás cómo conectar AWS CLI, crear access keys seguras en IAM, levantar una función Lambda desde cero y preparar buckets para código y metadatos de Terraform, manteniendo trazabilidad y control en todo momento.

¿Qué es infraestructura como código con Terraform en AWS?

La infraestructura como código se basa en describir servidores, provisiones y configuraciones mediante archivos de código. Terraform, herramienta de código abierto, crea, modifica y elimina recursos de forma eficiente según lo definido en tus archivos, dejándolos en AWS tal como los especificaste.

  • Versionado y cambios controlados de la arquitectura con archivos declarativos.
  • Creación, modificación y eliminación de recursos de forma rápida.
  • Paridad entre entornos y facilidad para auditar.

¿Por qué IaC es seguridad y auditoría?

Implementar IaC es en sí mismo una práctica de seguridad: permite replicar exactamente la infraestructura, auditar cambios y evitar modificaciones directas en la consola de AWS sin trazabilidad. Así, cada cambio queda registrado y es reproducible.

¿Qué rol cumple el Makefile en las Lambdas?

Terraform no construye software: solo provee arquitectura. Para empaquetar el código de las Lambdas en binarios, se definen pasos en un Makefile: compilar, generar el archivo .zip y dejarlo listo para ser referenciado desde AWS.

¿Cómo configurar AWS CLI, IAM y access keys de forma segura?

Se requiere acceso programático para que la línea de comandos pueda gestionar recursos. El flujo parte en IAM con un usuario administrador y continúa en la terminal con aws configure.

  • En IAM: usuario admin, pestaña de credenciales de seguridad, crear nueva access key para CLI.
  • Guardar la access key de forma segura: archivo CSV o un gestor como Bitwarden.
  • Verificar instalación de AWS CLI v2 y configurar con región por defecto.

¿Qué parámetros define aws configure?

  • Access key ID: pegar el valor creado en IAM.
  • Secret access key: mantenerlo confidencial.
  • Default region: por ejemplo, Ohio es us-east-2.
  • Output format: none.

¿Cómo verificar permisos con IAM?

Tras configurar, se valida que la CLI tenga permisos equivalentes a la consola ejecutando la API de IAM para listar usuarios. El resultado debe mostrar el usuario configurado, confirmando que la CLI quedó bien enlazada.

¿Cómo crear una función Lambda y preparar buckets para Terraform?

Desde la consola de AWS se puede crear una Lambda desde cero con runtime Amazon Linux, permisos mínimos necesarios y arquitectura por defecto. La función inicia vacía y requiere un código fuente en .zip.

  • Orígenes del código: subir manualmente el .zip o referenciar una ubicación en EC3.
  • El .zip debe contener el binario ya compilado (producido con Makefile).
  • Para automatizar, se prepara un bucket que almacenará el código de las Lambdas.

¿Cómo empaquetar y subir el código fuente en .zip?

  • Compilar el código y generar el binario con Makefile.
  • Empaquetar en .zip respetando la estructura esperada por Lambda.
  • Subir el .zip manualmente o dejarlo en EC3 para que la función lo consuma.

¿Qué requisitos tiene el nombre del bucket?

Para que Terraform administre versiones de la infraestructura y detecte cuándo actualizar, se crea un bucket dedicado en Ohio (us-east-2), con ajustes recomendados:

  • Bloquear acceso público al bucket.
  • Deshabilitar versioning si no se requiere.
  • Usar un nombre globalmente único en AWS (no solo en tu cuenta).

Con esto, queda lista la base para compilar el código a binario, subirlo y administrar la arquitectura con Terraform de forma coherente y auditada.

¿Tienes dudas sobre la configuración de CLI, la creación de Lambdas o los buckets para Terraform? Cuéntame en los comentarios qué parte quieres profundizar.