Modificando main.tf para enlazar módulos IAM en Terraform
Clase 14 de 30 • Curso de Ciberseguridad para Desarrollo Web
Contenido del curso
Funciona en mi local
Introducción a DevSecOps
Seguridad en la arquitectura
- 11

Arquitectura AWS para métricas de Git
02:24 min - 12

Configuración de AWS CLI para Terraform
09:34 min - 13

Terraform IAM: roles y policies automáticos
17:44 min - 14

Modificando main.tf para enlazar módulos IAM en Terraform
Viendo ahora - 15

Bucket S3 para Lambdas con Terraform
16:44 min - 16

Configuración de Postgres RDS con VPC y seguridad
14:10 min - 17

Configurando VPC para AWS Lambda con Terraform
12:29 min - 18

Cómo configurar API Gateway para Lambdas
05:42 min
Evitando vulnerabilidades en el código
- 19

Configuración completa de Auth0 para tokens
07:14 min - 20

Authorizer Lambda con Auth0 y JWT
16:56 min - 21

Conecta Go a Postgres usando AWS Secrets
13:35 min - 22

Conexión segura de Lambdas a Secrets con VPC
11:27 min - 23

Validación de webhooks desde GitHub con user-agent
12:08 min - 24

Cómo validar integridad de webhooks con HMAC
14:32 min
Controles de seguridad sobre datos
Monitoring y alertas
CORS y cierre
Aprende a crear infraestructura como código con Terraform en AWS de forma clara y segura. Desde la inicialización hasta la verificación en IAM, aquí verás cómo conectar modules, pasar ARNs entre policies y roles, y aplicar cambios con confianza. Ideal para sentar la base de tus funciones Lambda.
¿Cómo iniciar Terraform y preparar el entorno?
Para empezar, se navega a la carpeta de infraestructura y se inicializa Terraform. La primera ejecución con backend deshabilitado no aplica, así que se repite sin esa opción. Además, se formatea el código para mantener un estándar.
¿Qué comandos ejecutar para inicializar y formatear?
- Entrar a la carpeta infra y ejecutar:
terraform init -backend=false. - Repetir la inicialización sin bandera:
terraform init. - Formatear todo el repositorio:
terraform fmt -recursive.
# Inicialización (intento con backend deshabilitado)
terraform init -backend=false
# Inicialización válida
terraform init
# Formateo recursivo
terraform fmt -recursive
¿Para qué sirve terraform plan?
- Muestra qué se va a crear, cambiar o borrar.
- No ejecuta cambios, solo los anuncia.
- Útil para validar módulos y referencias antes de aplicar.
terraform plan
Nota: la inicialización prepara la metadata y el state (mencionado como terraform.tf.state) necesaria para operar.
¿Cómo conectar módulos IAM con main.tf?
El plan no mostraba cambios porque el archivo principal no referenciaba nada. Se crea main.tf y se conectan los modules de policies y roles, pasando los ARNs exportados del primero al segundo. Luego, se expone un output con el role creado.
¿Cómo referenciar policies y roles con ARNs?
- Crear
main.tfen la carpeta de infra. - Inicializar el module
policiescon susourcelocal. - Inicializar el module
rolesy pasarle las ARNs exportadas porpolicies. - Exponer un output con el
repoCollectorRoleArn.
module "policies" {
source = "./policies"
}
module "roles" {
source = "./roles"
RDSPolicyArn = module.policies.canAccessRDSArn
LogPolicyArn = module.policies.canLogArn
}
output "repoCollectorRoleArn" {
value = module.roles.repoCollectorRoleArn
}
¿Qué hacer si el plan no detecta cambios?
- Verifica que
main.tfexista y referencie los modules. - Ejecuta
terraform initnuevamente para reconocer los nuevos modules. - Repite
terraform plany valida la creación de dos policies y un role.
terraform init
terraform plan
¿Cómo aplicar cambios y verificar en AWS IAM?
Con el plan listo, se ejecuta terraform apply y se confirma con yes. Al finalizar, verás “Apply complete” y el resumen de recursos creados. Después, se valida en la consola de AWS IAM que existan el role y las policies vinculadas.
¿Qué recursos se crean y cómo se ven?
- Una policy de logs y una policy de RDS.
- Un role (ejemplo visto: RepoCollectorPlatzi) con las policies adjuntas:
canAccessRDSycanLog. - Definiciones en formato JSON, igual que las generadas con el policy generator.
terraform apply
# Confirmar
yes
¿Qué habilidades y conceptos clave se practican?
- Infraestructura como código con Terraform.
- Uso de comandos: init, fmt, plan, apply.
- Módulos reutilizables: policies y roles con source local.
- Exportación de valores entre módulos mediante outputs y ARNs.
- AWS IAM: creación y vinculación de policies y roles.
- Validación en consola de AWS y lectura de JSON de policy.
Ya quedó la base para las funciones Lambda: roles y policies listos. Enseguida, se compilarán los artefactos y se subirán a C3 para su despliegue con Terraform. ¿Qué parte te gustaría profundizar: módulos, outputs, o verificación en IAM? Cuéntalo en comentarios.