Qué demuestra
- Detectar: un script de solo lectura audita el módulo 1 y encuentra lo que se dejó abierto a propósito. Se puede entregar al cliente para que lo corra en su propia cuenta.
- Proteger el borde: el mismo ataque devuelve 200 contra el balanceador sin WAF y 403 contra el que sí lo tiene.
- Entrar sin puertas abiertas: sesión administrativa por Bastion hacia una instancia sin IP pública. El puerto 22 existe, pero solo desde una IP.
- Prevenir: una Security Zone rechaza crear un bucket público, y deja crear el privado.
Arquitectura
ANTES (módulo 1) DESPUÉS (módulo 2)
┌──────────────────────────┐ ┌────────────────────────────────────┐
│ subred pública │ │ pública [LB + WAF] ← solo esto │
│ [LB sin WAF] │ │ │ NSG: 80 solo del LB │
│ [app-1 con IP pública] │ │ privada [app-1] [app-2] sin IP │
│ [app-2 con IP pública] │ │ │ NSG: BD solo de app │
│ lista por defecto: │ │ privada [datos] sin internet │
│ puerto 22 ← 0.0.0.0/0 │ │ Bastion → 22 solo desde su endpoint│
└──────────────────────────┘ │ Registro de red · alertas de cambio│
└────────────────────────────────────┘
Desplegar
También se puede ejecutar con Terraform desde un equipo: ver la carpeta del módulo.
Paso a paso
Resumen. El detalle, con todos los comandos y la tabla de diagnóstico, está en el manual del módulo.
Activar la postura antes que nada
Cloud Guard tarda en acumular hallazgos: encenderlo el mismo día de la sesión es encenderlo tarde.
Verificar las reglas del WAF
Las claves de las capacidades de protección cambian entre regiones. El manual trae el comando; hacerlo antes del primer despliegue.
Desplegar el laboratorio seguro
Entre 8 y 12 minutos.
Auditar el módulo 1
./scripts/10-auditoria-rapida.shcontra el compartment del laboratorio anterior. Debe encontrar varios hallazgos altos. Correrlo también contra este: casi todo debe salir limpio. Que encuentre cosas en uno y no en el otro es la mejor prueba de que el script funciona.Comparar los dos balanceadores
./scripts/20-prueba-waf.shimprime una tabla de dos columnas con los códigos HTTP. Se lee de un vistazo.Entrar por el bastión
Crear la sesión toma uno o dos minutos: conviene hacerlo antes, no en vivo.
Hacerlo a mano, en la consola
Este módulo también está escrito pantalla por pantalla, para construirlo desde la consola de Oracle Cloud sin Terraform. Sirve para entender qué hay debajo del código, y para que alguien que nunca ha tocado OCI pueda reproducirlo solo.
Qué se simplificó, y por qué
Un laboratorio que no dice en qué se apartó de una arquitectura real enseña mal. Esto es lo que este módulo simplifica a propósito:
| El balanceador escucha en HTTP, no en HTTPS | Para no depender de un certificado en el laboratorio. En producción es 443 con certificado gestionado y el 80 solo redirige — es el control B-03 del checklist. |
| La base de datos no se despliega | La capa de datos existe en la red, con sus reglas, para que el diagrama de tres capas quede completo y se pueda mostrar. |
| El origen permitido hacia la base es el CIDR de la subred | Y no la IP exacta del endpoint del bastión, porque referenciarla crearía una dependencia circular. En esa subred solo hay dos cosas, así que el alcance real es el mismo. |
Cómo se relaciona con los demás
Audita el módulo 1. Sus tres controles de identidad, aislamiento y registro son los que hereda el validador del módulo 3, y su alerta de cambios críticos aparece como señal en el módulo 5.