AWS Shield y Shield Advanced: guía completa contra ataques DDoS

WAF filtra el contenido malicioso que llega a tu aplicación. Shield es la capa que evita que ni siquiera llegue: absorbe las inundaciones de tráfico antes de que toquen tu infraestructura. Qué cubre gratis, qué añade Advanced y cuándo vale la pena pagarlo.

Un cliente lanza una campaña de marketing un lunes a las 9am. A las 9:15, el sitio empieza a caerse. No hay ninguna inyección SQL en los logs, no hay ningún payload raro en las peticiones, WAF no marca nada como malicioso. Simplemente hay demasiado tráfico — millones de paquetes por segundo saturando la capacidad de red, no la lógica de la aplicación. Eso no es un problema que WAF resuelva. Ese es el trabajo de AWS Shield.

Ya escribí dos veces sobre AWS WAF porque protege la capa 7 (contenido de las peticiones HTTP). Pero WAF y Shield son primos, no gemelos: Shield trabaja en las capas 3 y 4 (red y transporte) para frenar los ataques volumétricos y de protocolo antes de que lleguen a donde WAF puede inspeccionarlos. Uno sin el otro deja un hueco. En este post cubro qué te protege AWS de forma gratuita ahora mismo, qué añade Shield Advanced, y cómo decidir si te conviene pagarlo.

💡 Nota
Si ya leíste el post de defensa en profundidad en AWS, Shield vive en la Capa 1 (seguridad de red), junto a WAF y Network Firewall. Este post profundiza en esa pieza específica.

¿Qué es AWS Shield?

AWS Shield es el servicio gestionado de protección contra ataques de denegación de servicio distribuido (DDoS) de AWS. Existen dos niveles:

Shield Standard: lo que ya tienes activado hoy

No necesitas hacer nada para tener Shield Standard — viene incluido y protege automáticamente cualquier recurso detrás de CloudFront y Route 53, y de forma general la infraestructura de red de AWS. Cubre los ataques DDoS más comunes en capas 3 y 4:

Para la gran mayoría de sitios y APIs pequeñas o medianas, Shield Standard es suficiente. El problema aparece cuando el negocio depende de disponibilidad crítica: e-commerce durante campañas, fintech, gaming, o cualquier arquitectura donde cada minuto caído tiene un costo directo medible.

Shield Advanced: cuándo necesitas más

Shield Advanced no reemplaza a Standard, lo extiende. Estas son las diferencias que realmente importan:

Capacidad Shield Standard Shield Advanced
Costo Gratis ~$3,000 USD/mes (compromiso 1 año) + tarifas de transferencia de datos
Capas protegidas 3 y 4 (red/transporte) 3, 4 y 7 (integrado con WAF)
Detección Automática, genérica Basada en el patrón normal de tu tráfico (baseline por recurso)
Visibilidad Ninguna específica Métricas en CloudWatch, notificaciones en tiempo real, reportes post-ataque
Soporte humano No DDoS Response Team (DRT) 24/7
Protección de costos No Créditos por el escalamiento (EC2, ELB, CloudFront, Route 53) causado por un ataque
Recursos cubiertos Automático, sin selección CloudFront, Route 53, ALB/NLB/CLB, Global Accelerator, Elastic IP (los defines tú)

El punto que más valor tiene en la práctica no es la mitigación en sí — Standard ya frena la mayoría de ataques volumétricos — sino tres cosas que Standard no ofrece: visibilidad (saber que estás siendo atacado y con qué), protección de capa 7 automatizada junto a WAF, y protección de costos (si un ataque te obliga a escalar horizontalmente, AWS te acredita esa factura).

⚠️ El DRT no actúa solo por tener Advanced
Para que el equipo de respuesta de AWS pueda tocar tus recursos durante un incidente (por ejemplo, ajustar reglas de WAF en tu nombre), necesitas asociar explícitamente un rol de IAM que les dé permiso. Sin ese rol, Advanced te da mejor detección pero el DRT no puede intervenir directamente.

Ejemplo: suscribirse a Shield Advanced y habilitar el acceso del DRT

# Activar la suscripción a Shield Advanced (compromiso de 1 año)
aws shield create-subscription

# Crear el rol de IAM que el DDoS Response Team puede asumir durante un incidente
aws iam create-role --role-name AWSShieldDRTAccessRole \
    --assume-role-policy-document file://drt-trust-policy.json

aws iam attach-role-policy --role-name AWSShieldDRTAccessRole \
    --policy-arn arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy

# Asociar el rol para que el DRT pueda actuar en tu nombre
aws shield associate-drt-role --role-arn arn:aws:iam::123456789012:role/AWSShieldDRTAccessRole

Ejemplo: proteger un recurso específico y activar mitigación automática en capa 7

# Proteger una distribución de CloudFront
aws shield create-protection \
    --name "cloudfront-prod-shop" \
    --resource-arn arn:aws:cloudfront::123456789012:distribution/EDFDVBD6EXAMPLE

# Activar respuesta automática en capa de aplicación (requiere un Web ACL de WAF asociado)
aws shield enable-application-layer-automatic-response \
    --resource-arn arn:aws:cloudfront::123456789012:distribution/EDFDVBD6EXAMPLE \
    --action Block={}

Con la respuesta automática habilitada, cuando Shield Advanced detecta un patrón anómalo en capa 7, crea y ajusta reglas de WAF por sí mismo, en minutos, sin que tengas que estar mirando una consola a las 3am.

Agrupar recursos: Protection Groups

Si tu arquitectura tiene varios recursos que reciben tráfico correlacionado (por ejemplo, un ALB detrás de CloudFront, con Route 53 al frente), agrúpalos en un Protection Group para que Shield analice el tráfico combinado en vez de cada recurso aislado — mejora la detección porque ve el patrón completo.

aws shield create-protection-group \
    --protection-group-id "grupo-shop-prod" \
    --aggregation SUM \
    --pattern ALL

AWS Shield vs WAF vs Network Firewall: quién hace qué

Es el error más común que veo: pensar que activando uno ya no necesitas los otros. Son capas distintas de la misma estrategia de defense in depth:

La combinación real en producción: Shield absorbe el volumen en el borde, WAF filtra el contenido malicioso que sobrevive, y Security Groups/NACLs cierran lo que no debería estar expuesto desde el inicio.

¿Cuándo vale la pena pagar los $3,000/mes de Advanced?

No es una pregunta técnica, es una pregunta de negocio. Pagas Advanced cuando el costo de un minuto caído supera claramente el costo mensual de la suscripción:

Si tu carga de trabajo es un blog, una landing page o una API interna de bajo tráfico, Shield Standard —que ya tienes gratis— cubre el riesgo real. No pagues por una capa de protección que tu perfil de riesgo no justifica.

Checklist de implementación

  1. Verifica que tus recursos públicos estén detrás de CloudFront o Route 53 — es donde Shield Standard aplica de forma más efectiva.
  2. Evalúa tu perfil de riesgo real: ¿cuánto cuesta un minuto de caída? ¿Tienes SLA que lo exija?
  3. Si contratas Advanced, asocia el rol del DRT — sin eso, pierdes la mitad del valor de la suscripción.
  4. Combina Shield Advanced con un Web ACL de WAF y activa la respuesta automática en capa de aplicación.
  5. Agrupa recursos correlacionados en Protection Groups para mejorar la detección.
  6. Configura alarmas en CloudWatch sobre las métricas DDoSDetected y DDoSAttackBitsPerSecond para enterarte antes que tus usuarios.
  7. Documenta el proceso de escalamiento: quién contacta al DRT, cuándo, y con qué autoridad para aprobar cambios de emergencia.

Si estás persiguiendo el AWS Certified Security - Specialty, Shield aparece directo en el dominio de Infrastructure Security del examen, casi siempre en preguntas que te piden distinguir cuándo usar Shield, cuándo WAF, y cuándo ambos juntos.

Conclusión

Shield Standard ya te está protegiendo ahora mismo sin que hayas hecho nada, y para la mayoría de cargas de trabajo eso es suficiente. Shield Advanced no es "más seguridad" en abstracto — es visibilidad, respuesta automatizada en capa 7 junto con WAF, un equipo humano al que puedes llamar, y protección financiera cuando el ataque sí llega. La decisión de pagarlo no depende de qué tan grande sea tu infraestructura, sino de qué tan caro es para el negocio que esa infraestructura deje de responder.

WAF, Shield y Network Firewall no compiten entre sí — se completan. Si ya tienes WAF activo y no has revisado qué tan expuesto estás a nivel de red, ese es el siguiente hueco que vale la pena cerrar.