Protección de las API con Application Gateway y API Management

Azure API Management
Azure Application Gateway

Dado que más cargas de trabajo se adhieren al enfoque "API-first" para su diseño, y al creciente número y gravedad de las amenazas a las aplicaciones web a través de Internet, es fundamental tener una estrategia de seguridad para proteger las API. Un paso hacia la seguridad de la API es proteger el tráfico de red mediante el patrón de enrutamiento de puerta de enlace. Use la puerta de enlace para restringir las ubicaciones de origen de tráfico y la calidad del tráfico, además de admitir reglas de enrutamiento flexibles. En este artículo se describe cómo usar Azure Application Gateway y Azure API Management para proteger el acceso a una API.

Architecture

En este artículo no se abordan los servicios subyacentes de la aplicación, como App Service Environment, Azure SQL Managed Instance y Azure Kubernetes Service. Esas partes del diagrama solo muestran lo que puede hacer como solución más amplia. En este artículo se analizan específicamente las áreas sombreadas, API Management y Application Gateway.

Diagram showing how Application Gateway and API Management protect APIs.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

  • Application Gateway recibe solicitudes HTTP permitidas por el grupo de seguridad de red (NSG) de su subred.

  • Después, el firewall de aplicaciones web (WAF) en Application Gateway comprueba la solicitud en las reglas de WAF, incluido el filtrado geomatch. Si la solicitud es válida, la solicitud continúa.

  • Application Gateway configura un mecanismo de proxy de dirección URL que envía la solicitud al grupo de back-end adecuado. Por ejemplo, en función del formato de dirección URL de la llamada API:

    • Las direcciones URL con formato como api.<some-domain>/external/* pueden comunicarse con el back-end para interactuar con las API solicitadas.

    • Las llamadas con formato api.<some-domain>/* van a un punto muerto ("sinkpool"), que es un grupo de back-end sin destino.

  • Además, Application Gateway acepta y actúa como proxy de llamadas internas, que proceden de recursos de la misma red virtual de Azure, en api.<some-domain>/internal/*.

  • Por último, en el nivel de API Management, las API se configuran para aceptar llamadas con los siguientes patrones:

    • api.<some-domain>/external/*
    • api.<some-domain>/internal/*

    En este escenario, API Management usa dos tipos de direcciones IP, pública y privada. Las direcciones IP públicas son para la comunicación interna en el puerto 3443 y para el tráfico de API en tiempo de ejecución en la configuración de red virtual externa. Cuando API Management envía una solicitud a un back-end público orientado a Internet, muestra una dirección IP pública como origen de la solicitud. Para obtener más información, consulte Direcciones IP del servicio API Management en una red virtual.

  • Una regla de enrutamiento en el nivel de Application Gateway redirige correctamente a los usuarios de portal.<some-domain>/* al portal para desarrolladores, de modo que los desarrolladores puedan administrar las API y sus configuraciones desde entornos internos y externos.

Componentes

  • Azure Virtual Network permite que muchos tipos de recursos de Azure se comuniquen de forma privada entre sí, con Internet y con las redes locales.

  • Azure Application Gateway es un equilibrador de carga de tráfico web que administra el tráfico a las aplicaciones web. Este tipo de enrutamiento se conoce como equilibrio de carga de capa de aplicación (OSI capa 7). Hospeda un firewall de aplicaciones web (WAF) para protegerse frente a vectores de ataque comunes basados en web.

  • Azure API Management es una plataforma híbrida de varias nubes para administrar las API en todos los entornos. API Management crea puertas de enlace de API modernas y coherentes para los servicios de back-end existentes.

Recomendaciones

Esta solución se centra en implementar la solución completa, y en probar el acceso a las API desde dentro y fuera de la red virtual de API Management. Para obtener información sobre el uso del proceso de integración de redes virtuales de API Management, consulte Integración de API Management en una red virtual interna con Application Gateway.

Para comunicarse con recursos privados en el back-end, Application Gateway y API Management deben estar en la misma red virtual que los recursos o en una red virtual emparejada.

  • El modelo de implementación privado interno permite que API Management se conecte a una red virtual existente, lo que hace que sea accesible desde dentro del contexto de esa red. Para habilitar esta característica, implemente los niveles Desarrollador o Premium de API Management.

  • Administre los certificados y contraseñas en Azure Key Vault.

  • Para personalizar las interacciones con los servicios, puede usar entradas CNAME.

Alternativas

Puede usar otros servicios para ofrecer un nivel similar de protección de firewall y Web Application Firewall (WAF):

Consideraciones

Confiabilidad

Azure Application Gateway siempre se implementa de forma de alta disponibilidad, independientemente del recuento de instancias. Para evitar el impacto de un mal funcionamiento de una zona, puede configurar Application Gateway para abarcar varias zonas de disponibilidad. Para obtener más información, consulte Escalado automático y alta disponibilidad.

Habilite la redundancia de zona para los componentes de servicio de API Management para proporcionar resistencia y alta disponibilidad. La redundancia de zona replica la puerta de enlace y el plano de control de API Management entre centros de datos en zonas separadas físicamente, lo que los hace resistentes a errores de zona. El nivel Premium de API Management es necesario para admitir zonas de disponibilidad.

API Management también admite implementaciones de varias regiones, lo que puede mejorar la disponibilidad si una región se queda sin conexión. Para más información, consulte implementación en varias regiones. En esta topología, es importante tener también una instancia de Application Gateway por región, ya que Application Gateway es un servicio regional.

Seguridad

Para obtener más información sobre la seguridad de Application Gateway, consulte Línea de base de seguridad de Azure para Application Gateway.

Para obtener más información sobre la seguridad de API Management, consulte Línea de base de seguridad de Azure para API Management.

Azure DDoS Protection, combinado con los procedimientos recomendados de diseño de aplicaciones, proporciona características mejoradas de mitigación de DDoS para ofrecer una mejor defensa frente a los ataques DDoS. Debe habilitar Azure DDOS Protection en cualquier red virtual perimetral.

Optimización de costos

El costo de esta arquitectura depende de aspectos de configuración, por ejemplo:

  • Niveles de servicio
  • Escalabilidad, es decir, el número de instancias asignadas dinámicamente por los servicios para admitir una demanda determinada
  • Si esta arquitectura se ejecutará continuamente o solo unas horas al mes

Después de evaluar estos aspectos, vaya a la Calculadora de precios de Azure para calcular los precios.

Eficiencia del rendimiento

Application Gateway es el punto de entrada de esta arquitectura, y la característica WAF requiere capacidad de procesamiento adicional para el análisis de cada solicitud. Para permitir que Application Gateway expanda su capacidad de cálculo en el momento, es importante habilitar el escalado automático. Para obtener más información, consulte Especificación de la escalabilidad automática. Siga las recomendaciones de documentación del producto sobre el tamaño de la subred para Application Gateway. Esto garantiza que la subred sea lo suficientemente grande como para admitir la escalabilidad horizontal completa.

Para admitir escenarios altamente simultáneos, active el escalado automático de API Management. El escalado automático expande las funcionalidades de API Management en respuesta al aumento en el número de solicitudes entrantes. Para más información, consulte Escalado automático de una instancia de Azure API Management.

Implementación de este escenario

Este escenario se muestra en la publicación de la galería de inicio rápido de Azure de Application Gateway con API Management interno y aplicación web.

Pasos siguientes

Diseñe las API siguiendo buenas directrices de diseño de API web e impleméntelas con buenas prácticas de implementación de API web.