Azure Application Gateway es un balanceador de tráfico web de capa 7. Puede tomar decisiones de enrutamiento a partir de propiedades HTTP como host y path, terminar TLS y distribuir tráfico hacia uno o más backends.
Cuando utilizas WAF v2, agregas Web Application Firewall para proteger aplicaciones contra vulnerabilidades web comunes mediante reglas administradas y personalizadas.

Imagen: Microsoft Learn, documentación oficial de Azure Web Application Firewall.
Objetivo
Al terminar tendrás un flujo similar:
Internet
│
▼
Public IP
│
▼
Application Gateway WAF v2
├── Listener
├── WAF Policy
├── Routing Rule
├── Backend Settings
└── Health Probe
│
▼
Backend
Antes de desplegar: entiende las piezas
Frontend
Dirección IP que recibe las solicitudes.
Puede ser pública o privada según el escenario.
Listener
Espera solicitudes sobre una combinación de:
- IP frontend;
- puerto;
- protocolo;
- host name cuando aplica.
Backend pool
Contiene destinos como:
- VMs;
- VM Scale Sets;
- IPs;
- FQDNs;
- App Service en configuraciones soportadas.
Backend settings
Define cómo Application Gateway se conecta al backend:
- HTTP/HTTPS;
- puerto;
- timeout;
- host name;
- otras opciones.
Routing rule
Conecta listener con backend pool y settings.
Health probe
Comprueba si cada backend realmente puede atender solicitudes.
WAF Policy
Contiene:
- managed rule sets;
- custom rules;
- exclusions;
- modo Detection/Prevention.
Paso 1. Prepara la red
Application Gateway necesita una subnet dedicada.
Ejemplo:
vnet-web
10.40.0.0/16
snet-appgw
10.40.0.0/24
snet-backend
10.40.10.0/24
Microsoft recomienda dimensionar adecuadamente la subnet de Application Gateway v2 y en su guía Well-Architected recomienda /24 para soportar escalamiento y mantenimiento con margen.
No coloques VMs u otros workloads comunes dentro de snet-appgw.
Paso 2. Crea Application Gateway
En Azure Portal:
Create a resource → Application Gateway
Configura:
Tier: WAF V2
Virtual network: vnet-web
Subnet: snet-appgw
Para un escenario público:
Frontend IP type: Public
Crea una Public IP Standard cuando el wizard lo solicite.
Para producción, evalúa:
- zone redundancy;
- autoscaling;
- capacidad mínima/máxima;
- arquitectura regional.
Paso 3. Crea o asocia la WAF Policy
Puedes crear la política durante el despliegue o como recurso independiente.
En:
Web Application Firewall policies → Create
selecciona una política para:
Application Gateway
Al crearla, utilizarás un managed ruleset de Microsoft.
Detection vs Prevention
Detection
Registra coincidencias, pero no bloquea automáticamente de acuerdo con las reglas administradas.
Útil durante:
- onboarding;
- tuning;
- análisis de falsos positivos.
Prevention
Bloquea solicitudes que coinciden con reglas configuradas para bloquear.
Una estrategia empresarial frecuente es:
Detection
→ revisar logs
→ ajustar exclusiones
→ Prevention
No mantengas indefinidamente WAF en Detection sólo para evitar analizar alertas.
Paso 4. Configura el backend pool
En:
Application Gateway → Backend pools
agrega el destino.
Ejemplos:
10.40.10.4
10.40.10.5
o un FQDN soportado.
Si utilizas App Service debes tratar correctamente el host header y TLS hacia el backend. No reutilices sin análisis una configuración diseñada para VMs.
Paso 5. Configura Backend Settings
Define cómo el gateway se comunica con el backend.
Para laboratorio HTTP:
Protocol: HTTP
Port: 80
Para producción, normalmente deberías evaluar HTTPS end-to-end:
Client
HTTPS
│
App Gateway
HTTPS
│
Backend
No confundas terminación TLS con eliminación de cifrado interno.
Paso 6. Crea un health probe personalizado
Aunque Application Gateway dispone de probes predeterminados, una aplicación empresarial debería exponer un endpoint de salud útil.
Por ejemplo:
/health
El endpoint idealmente responde:
HTTP 200
cuando la instancia puede atender tráfico.
Configura:
Protocol: HTTP o HTTPS
Host: según backend
Path: /health
Interval: según requerimiento
Timeout: según aplicación
Unhealthy threshold: según tolerancia
Un probe mal diseñado puede marcar como healthy una aplicación funcionalmente rota o sacar del pool un backend que todavía está sano.
Paso 7. Crea el listener
Para laboratorio:
Protocol: HTTP
Port: 80
Para producción:
Protocol: HTTPS
Port: 443
Certificate: certificado válido
Si hospedas varios sitios, puedes utilizar listeners con host names diferentes.
Paso 8. Crea la routing rule
Una regla básica conecta:
Listener
↓
Backend pool
↓
Backend settings
Para múltiples aplicaciones puedes utilizar:
- reglas básicas;
- path-based routing;
- multi-site listeners.
Ejemplo:
/api/* → API backend
/images/* → static backend
Paso 9. Asocia la WAF Policy
La WAF Policy puede asociarse de manera global al Application Gateway y existen escenarios con asociaciones más específicas.
En una primera implementación utiliza una política global mientras entiendes el comportamiento de las reglas.
Después puedes evolucionar hacia políticas con necesidades distintas por sitio.
Paso 10. Revisa Backend Health
Antes de probar desde Internet ve a:
Application Gateway → Backend health
Esperas:
Healthy
Si aparece:
Unhealthy
no empieces cambiando WAF.
Primero revisa:
- DNS;
- route;
- NSG;
- backend port;
- host header;
- TLS/certificate;
- health probe.
Backend Health es una de las primeras herramientas de troubleshooting.
Paso 11. Prueba la aplicación
Obtén la IP pública del gateway.
Prueba:
curl -I http://<public-ip>
o, si configuraste HTTPS:
curl -I https://app.example.com
Esperas un código válido de tu aplicación.
Paso 12. Valida WAF
No ataques sistemas ajenos.
Para laboratorio utiliza una aplicación controlada y patrones de prueba documentados.
Revisa:
WAF Policy → Managed rules
y los logs configurados en Azure Monitor.
Tu objetivo es comprobar que:
Solicitud normal → permitida
Solicitud que coincide con regla → detectada/bloqueada según modo
Logging y observabilidad
Configura Diagnostic Settings para enviar logs y métricas al destino definido por tu organización.
Monitorea especialmente:
- backend health;
- 4xx/5xx;
- backend response status;
- response time;
- WAF logs;
- capacidad y autoscaling.
Sin observabilidad, WAF puede generar bloqueos difíciles de explicar.
HTTPS y certificados
En producción considera:
Client → HTTPS → Application Gateway → HTTPS → Backend
Gestiona:
- certificados frontend;
- confianza del certificado backend;
- nombres DNS;
- rotación;
- Key Vault cuando corresponda.
La guía de laboratorio puede empezar con HTTP, pero no debe confundirse con una recomendación productiva.
Errores frecuentes
Backend Unhealthy
Normalmente es conectividad, probe, host name, puerto o TLS; no necesariamente el gateway completo.
Colocar Application Gateway en una subnet compartida
Utiliza subnet dedicada.
Activar Prevention sin tuning
Puedes provocar falsos positivos en aplicaciones existentes.
Permitir acceso directo al backend público
Si el backend también es públicamente accesible, usuarios podrían saltarse el WAF. Diseña la ruta para que el Application Gateway sea el punto de entrada esperado.
No revisar costos
Application Gateway WAF v2 tiene costos de capacidad y procesamiento. El laboratorio debe eliminarse cuando termine.
Buenas prácticas para producción
- utiliza WAF v2 para nuevos diseños que requieran WAF;
- configura health endpoints reales;
- considera zone redundancy;
- dimensiona correctamente la subnet;
- utiliza HTTPS;
- centraliza logs;
- aplica RBAC de mínimo privilegio;
- prueba cambios de WAF antes de bloquear producción;
- evita UDRs en la subnet de Application Gateway salvo escenarios soportados y comprendidos.
Limpieza
Si todo pertenece al laboratorio:
Resource Group → Delete
Si utilizaste un backend compartido, elimina únicamente:
- Application Gateway;
- Public IP temporal;
- WAF Policy creada para el lab;
- recursos de prueba.