Objetivo: Evaluar conocimientos de ciberseguridad mediante la implementación de una arquitectura segura en AWS, aplicando principios de defensa en profundidad y mejores prácticas de seguridad en la nube.
Restricciones obligatorias (a menos que se explicite lo contrario):
- Región:
us-east-1 - Principio de seguridad: Aplicar siempre el menor privilegio posible
- Etiquetado: Todos los recursos deben incluir tags de proyecto y función para trazabilidad
Propósito de Seguridad: Establecer una máquina de auditoría controlada para verificar el cumplimiento de los controles de seguridad implementados. Dentro de unos días te proporcionaré un script que podrás ejecutar en ella y que analizará los elementos que hayas configurado para decirte qué secciones has completado correctamente y qué puntuaciones tienes. Mi idea es que automáticamente me envíe un informe firmado digitalmente que incluya tu número de cuenta, de forma que después pueda cotejar que has completado correctamente el mayor número de pasos posibles. Recuerda: el script todavía no está disponible.
Requisitos:
- Instancia: Ubuntu en la default VPC
- Acceso: Permisos AWS vía IAM role (principio de menor privilegio)
- Función: Ejecutar script de verificación de compliance
Proceso de auditoría:
- El script verificará la configuración de seguridad de todos los componentes
- Generará un informe de cumplimiento firmado criptográficamente
- Utilizará tu número de cuenta AWS como identificador único
- Reportará automáticamente los resultados
Propósito de Seguridad: Implementar almacenamiento seguro con controles de acceso apropiados y principio de menor privilegio.
Crea un bucket de datos con las siguientes características de seguridad:
- Etiquetado:
proyecto=cybersec,funcion=datos - Contenido: Sube pokemon.csv a la raíz del bucket
- Acceso: Solo mediante credenciales IAM válidas (sin acceso público)
- Principio aplicado: Confidencialidad mediante control de acceso
- 1 punto: Verificación de acceso controlado - el script validará que:
- El archivo es accesible únicamente con permisos IAM apropiados
- No existe acceso público no autorizado
- Los controles de acceso funcionan correctamente
Propósito de Seguridad: Configurar hosting web seguro con exposición controlada de contenido público.
Crea un bucket para contenido web con estas características de seguridad:
- Etiquetado:
proyecto=cybersec,funcion=web - Funcionalidad: Configurado como servidor web estático
- Contenido: Archivo
index.htmlen la raíz - Exposición controlada: Acceso público solo al contenido web autorizado
- Principio aplicado: Disponibilidad con exposición mínima necesaria
- 1 punto: Verificación de acceso público controlado:
- El archivo index.html es accesible vía URL pública
- La configuración web es correcta y segura
- No se expone contenido no autorizado
Propósito de Seguridad: Implementar arquitectura de red defensiva con segmentación por tiers y control de tráfico.
💡 Recomendación: Configuración manual para reforzar el aprendizaje de seguridad en redes. El wizard de AWS no cubre todos los aspectos de seguridad requeridos.
🛠️ Recursos de apoyo: cidr.xyz para planificación CIDR, o consulta con IA para diseño de redes.
Arquitectura de Seguridad en Capas:
-
Etiquetado:
proyecto=cybersec,funcion=red -
Rango principal: CIDR /16 (permite crecimiento futuro)
-
Segmentación defensiva en tres tiers:
🌍 Tier Público (DMZ)
- Acceso directo a internet vía Internet Gateway
- Para recursos que requieren exposición externa controlada
- Capacidad: ~256 máquinas por subnet
🔐 Tier Privado (Aplicaciones)
- Acceso a internet solo saliente vía NAT Gateway
- Para lógica de aplicación sin exposición directa
- NAT Gateway zonal (alta disponibilidad por AZ)
- Capacidad: ~256 máquinas por subnet
🛡️ Tier Interno (Datos)
- Sin acceso a internet (máxima protección)
- Solo comunicación interna entre componentes
- Capacidad: ~1024 máquinas por subnet
-
1 punto - Diseño de red: Verificación de arquitectura CIDR
- Rangos de VPC y subnets cumplen especificaciones
- Segmentación correcta entre tiers de seguridad
-
2 puntos - Controles de tráfico: Verificación de tablas de rutas
- Rutas correctamente asignadas por tier de seguridad
- Flujo de tráfico sigue principios de defensa en profundidad
- Aislamiento efectivo entre capas según modelo de amenazas
Propósito de Seguridad: Implementar microsegmentación mediante Security Groups aplicando el principio de menor privilegio y comunicación restringida entre capas.
Función: Controlar acceso externo (Punto de entrada público)
- Etiquetado:
proyecto=cybersec,funcion=red - Nombre:
albsg - Reglas de entrada (mínimo necesario):
- Puerto 80 (HTTP) desde 0.0.0.0/0
- Puerto 443 (HTTPS) desde 0.0.0.0/0
- Principio: Exposición controlada solo en puertos web estándar
Función: Proteger capa de aplicación (Solo desde balanceador)
- Etiquetado:
proyecto=cybersec,funcion=red - Nombre:
appsg - Reglas de entrada (microsegmentación):
- Puerto 8080 exclusivamente desde
albsg
- Puerto 8080 exclusivamente desde
- Principio: Comunicación restringida - solo tráfico autorizado
Función: Máxima protección de datos (Solo desde aplicación)
- Etiquetado:
proyecto=cybersec,funcion=red - Nombre:
bdsg - Reglas de entrada (defensa en profundidad):
- Puerto 5432 (PostgreSQL) exclusivamente desde
appsg
- Puerto 5432 (PostgreSQL) exclusivamente desde
- Principio: Acceso a datos solo desde servicios autorizados
- 1 punto - Microsegmentación efectiva:
- Los tres Security Groups existen en la VPC del proyecto
- Enlazado correcto entre capas (comunicación en cascada)
- Implementación del principio de menor privilegio
- Verificación de que no existen reglas excesivamente permisivas
Propósito de Seguridad: Implementar almacenamiento de datos con máxima protección, alta disponibilidad y principios de confidencialidad.
Configuración de Seguridad para Datos:
- Motor: PostgreSQL (base de datos empresarial)
- Aislamiento: Subnet Group exclusivamente en subnets internas (sin acceso directo a internet)
- Alta Disponibilidad:
- Nodo principal (operaciones normales)
- Nodo standby (continuidad del negocio)
- Control de Acceso: Security Group
bdsg(acceso restringido) - Principios aplicados:
- Confidencialidad (ubicación en tier interno)
- Disponibilidad (configuración Multi-AZ)
- Integridad (respaldos automáticos)
- 1 punto - Protección de datos efectiva:
- Base de datos correctamente aislada en tier interno
- Configuración Multi-AZ para disponibilidad
- Security Group apropiado aplicado
- Verificación de que no es accesible desde internet
Propósito de Seguridad: Implementar punto de entrada controlado con distribución segura de tráfico y monitoreo de salud de servicios.
Función: Agrupar destinos de aplicación con monitoreo de salud
- Etiquetado:
proyecto=cybersec,funcion=lb - Nombre:
maintg - Puerto destino: 8080 (puerto no estándar para seguridad por oscuridad)
- Health Check: Activo con configuración por defecto
- Principio: Verificación continua de disponibilidad de servicios
Función: Punto de entrada único y controlado desde internet
- Etiquetado:
proyecto=cybersec,funcion=lb - Nombre:
pokemonlb - Protección: Security Group
albsg(acceso web controlado) - Listener: Puerto 80 (HTTP) - punto de entrada público
- Enrutamiento: Todo el tráfico dirigido a
maintg - Principio: Centralización de acceso para mejor control y monitoreo
- 1 punto - Entrada controlada efectiva:
- Target Group y ALB cumplen especificación de seguridad
- Configuración de health checks funciona correctamente
- Acceso público controlado solo a través del balanceador
Propósito de Seguridad: Desplegar aplicación en tier privado con acceso controlado a recursos AWS y configuración automática segura.
Función: Definir configuración segura y consistente para instancias
- Etiquetado:
proyecto=cybersec,funcion=computacion - Base: AMI Ubuntu (sistema operativo base)
- Acceso AWS: IAM Role asignado (principio de menor privilegio)
- Hipotético uso: descarga segura de
pokemon.csvdesde bucket de datos
- Hipotético uso: descarga segura de
- Configuración: User data desde userdata.sh (bootstrap automático)
- Principio: Configuración inmutable y reproducible
Función: Mantener disponibilidad en tier privado sin exposición directa
- Base: Launch Template anterior (herencia de configuración segura)
- Ubicación: Subnets privadas exclusivamente (no públicas, no internas)
- Integración: Auto-registro en Target Group
maintg - Capacidad: 2 instancias fijas (sin elasticidad para simplicidad)
- Principio: Disponibilidad sin exposición directa a internet
-
1 punto - Configuración segura de instancias:
- Launch Template cumple especificación de seguridad
- IAM Role correctamente asignado con permisos mínimos
-
1 punto - Despliegue y funcionamiento seguro:
- Auto Scaling Group en subnets privadas únicamente
- Instancias registradas como healthy en Target Group
- Comunicación externa solo a través del balanceador
- Verificación de funcionamiento completo (obtención de pokémon via internet)
Total: 10 puntos distribuidos en verificación de implementación de:
- 🔒 Controles de acceso (buckets S3)
- 🌐 Segmentación de red (VPC y subnets)
- 🔥 Microsegmentación (Security Groups)
- 🗄️ Protección de datos (Base de datos)
- ⚖️ Entrada controlada (Load Balancer)
- 💻 Despliegue seguro (Computación)
Principios de Ciberseguridad Aplicados:
- ✅ Defensa en profundidad
- ✅ Principio de menor privilegio
- ✅ Segmentación de red
- ✅ Disponibilidad con seguridad
- ✅ Trazabilidad mediante etiquetado
solo falta un error