Arquitectura de zona de aterrizaje de Azure API Management
Las API se han convertido cada vez más integrales en la forma en que las organizaciones y sus clientes acceden a los servicios, tanto dentro de sistemas internos como a través de canales externos. Internamente, las API facilitan el acceso a aplicaciones de línea de negocio (LoB), soluciones propietarias e integraciones de asociados. Externamente, un número creciente de organizaciones se centra en mejorar la productividad y generar ingresos a través de la monetización de api. Dada esta tendencia, Azure API Management actúa como elemento fundamental en la gobernanza, publicación y supervisión estandarizadas de las API para las partes interesadas internas y externas.
Azure Application Gateway actúa como punto de control de seguridad para las API. En lugar de permitir que los usuarios se conecten directamente a través de Internet, enruta todo el tráfico a través de una puerta de enlace de aplicaciones. Esta configuración agrega controles de acceso adicionales para ayudar a proteger las API. Con este enfoque, puede usar una única instancia de API Management para admitir las API internas dentro de la organización y las API externas fuera de la organización, al tiempo que mantiene protegidas las API expuestas públicamente detrás de la puerta de enlace.
Nota:
Esta arquitectura sirve como base de las instrucciones para API Management en las zonas de aterrizaje de Azure en Cloud Adoption Framework para Azure.
Arquitectura
Descargue un archivo Visio de esta arquitectura.
Esta arquitectura supone que las directivas están en vigor desde la implementación de referencia de la zona de aterrizaje de Azure y que la estructura se controla hacia abajo desde el grupo de administración.
Flujo de trabajo
Las direcciones IP públicas se asignan a una puerta de enlace de aplicaciones, que actúa como punto de entrada para el tráfico externo. Ese punto de conexión expone las API a través de un dominio personalizado.
La puerta de enlace de aplicaciones se implementa en su propia subred y está protegida por directivas de Firewall de aplicaciones web (WAF) para inspeccionar y filtrar las solicitudes entrantes.
El tráfico se enruta desde la puerta de enlace de aplicaciones a API Management (Premium), que reside en una subred independiente de API Management. La instancia de API Management está configurada en modo interno, lo que impide el acceso público directo.
Los puntos de conexión privados se usan para conectar API Management de forma segura a los servidores de aplicaciones back-end que solo se exponen a la red virtual. API Management también conecta periódicamente las dependencias, como almacenes de claves de Azure. Normalmente, toda esta conectividad privada se produce con puntos de conexión en una subred de punto de conexión privado dedicado.
Las áreas de trabajo de Log Analytics y Application Insights se integran para el registro, la supervisión y la telemetría.
Componentes
API Management es un servicio administrado que permite administrar servicios en entornos híbridos y multinube. Proporciona control y seguridad para la observabilidad y el consumo de API tanto por parte de los usuarios internos como externos. En esta arquitectura, API Management sirve como fachada para abstraer la arquitectura de back-end.
Application Gateway es un servicio administrado que actúa como equilibrador de carga de nivel 7 y WAF. Application Gateway protege la instancia interna de API Management, que permite el uso de modos internos y externos. En esta arquitectura, API Management protege las API y Application Gateway agrega funcionalidades complementarias, como WAF.
Las zonas del Sistema de nombres de dominio privado (DNS) son una característica de Azure DNS que permite administrar y resolver nombres de dominio dentro de una red virtual sin necesidad de implementar una solución DNS personalizada. Una zona DNS privada se puede alinear con una o varias redes virtuales a través de vínculos de red virtual. En esta arquitectura, se requiere una zona DNS privada para garantizar una resolución de nombres adecuada dentro de la red virtual.
Application Insights es un servicio extensible de administración del rendimiento de aplicaciones que ayuda a los desarrolladores a detectar anomalías, diagnosticar problemas y comprender los patrones de uso. Application Insights proporciona una administración y supervisión del rendimiento de las aplicaciones extensible para las aplicaciones web en directo. Se admiten varias plataformas, como .NET, Node.js, Java y Python. Admite aplicaciones hospedadas en Azure, en el entorno local, en un entorno híbrido o en otras nubes públicas. En esta arquitectura, Application Insights supervisa los comportamientos de la aplicación implementada.
Log Analytics es una herramienta de análisis de datos basada en la nube que permite editar y ejecutar consultas de registro en los datos de los registros de Azure Monitor, opcionalmente desde Azure Portal. Los desarrolladores pueden ejecutar consultas sencillas para recuperar registros o usar Log Analytics para el análisis avanzado y, a continuación, visualizar los resultados. En esta arquitectura, Log Analytics agrega todos los registros de recursos de la plataforma para el análisis y los informes.
Azure Key Vault es un servicio en la nube que almacena y accede a secretos de forma segura. Estos secretos van desde claves de API y contraseñas a certificados y claves criptográficas. En esta arquitectura, Key Vault almacena los certificados de Capa de sockets seguros (SSL) que usa Application Gateway.
Alternativas
Para los servicios back-end a los que se conecta la instancia de API Management, hay disponibles varias alternativas:
Azure App Service es un servicio basado en HTTP totalmente administrado que compila, implementa y escala aplicaciones web. Admite .NET, .NET Core, Java, Ruby, Node.js, PHP y Python. Las aplicaciones se pueden ejecutar y escalar en entornos basados en Windows o Linux.
Azure Kubernetes Service (AKS) es una oferta administrada de Kubernetes que ofrece clústeres totalmente administrados. Permite la integración continua integrada y la entrega continua (CI/CD), junto con la gobernanza y la seguridad integradas.
Azure Logic Apps es una plataforma basada en la nube que crea y ejecuta flujos de trabajo automatizados. Para obtener más información, vea una arquitectura de referencia de ejemplo.
Azure Container Apps es un servicio de contenedor sin servidor totalmente administrado que permite ejecutar microservicios y aplicaciones en contenedores en una plataforma sin servidor.
En el caso de las implementaciones de varias regiones, considere la posibilidad de usar Azure Front Door para proporcionar acceso rápido, confiable y seguro entre los usuarios y el contenido web estático y dinámico de las aplicaciones.
Para ver ejemplos adicionales sobre cómo Application Gateway puede proteger las API, consulte Protección de LAS API con Application Gateway y API Management.
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework, que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Well-Architected Framework.
Confiabilidad
La confiabilidad ayuda a garantizar que la aplicación pueda cumplir los compromisos que realice para sus clientes. Para obtener más información, consulte Lista de comprobación de revisión de diseño para confiabilidad.
Implemente al menos dos unidades de escalado de API Management que se distribuyen en dos o más zonas de disponibilidad en cada región. Supervise las métricas de capacidad y aprovisione unidades de capacidad suficientes para poder seguir funcionando incluso si se pierden las unidades de una zona de disponibilidad.
Se recomienda usar el nivel Premium porque admite las zonas de disponibilidad y las implementaciones de varias regiones. Esta funcionalidad significa que los servicios pueden seguir ejecutándose incluso si una región o zona deja de funcionar. Estas características ayudan a proteger la aplicación durante interrupciones o desastres.
Para la recuperación ante desastres, configure API Management con una identidad administrada asignada por el usuario en lugar de una identidad asignada por el sistema. Si vuelve a implementar o eliminar el recurso, la identidad y sus permisos permanecen en vigor, por lo que puede restaurar el acceso más fácilmente. Use Azure Pipelines para automatizar las copias de seguridad. Decida si necesita implementar los servicios en más de una región para mejorar la confiabilidad.
El emparejamiento de redes virtuales proporciona un rendimiento seguro dentro de una región, pero tiene un límite de escalabilidad de 500 redes. Si necesita conectar más cargas de trabajo, use un diseño en estrella tipo hub-spoke o Azure Virtual WAN.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el uso indebido de sus valiosos datos y sistemas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para seguridad.
Las directivas de validación de API Management validan las solicitudes de API y las respuestas en un esquema de OpenAPI. Estas características no son un reemplazo de waf, pero pueden proporcionar protección adicional contra algunas amenazas. Agregar directivas de validación puede tener implicaciones de rendimiento, por lo que se recomienda usar pruebas de carga de rendimiento para evaluar su impacto en el rendimiento de la API.
Microsoft Defender para API proporciona protección, detección y respuesta del ciclo de vida completo para las API publicadas en API Management. Una funcionalidad clave es detectar vulnerabilidades de seguridad de aplicaciones web abiertas (OWASP) API top 10 a través de observaciones de anomalías en tiempo de ejecución mediante detecciones basadas en reglas y basadas en aprendizaje automático.
Las áreas de trabajo de API Management le ayudan a organizar y aislar las API. Este enfoque facilita el control de quién puede acceder a ellos y administrarlos. Cada área de trabajo puede tener su propio conjunto de permisos, por lo que puede limitar el acceso solo a las personas o equipos que lo necesitan. Esta separación reduce el riesgo de cambios accidentales o acceso no autorizado y admite un entorno de API más seguro.
Use secretos de Key Vault como valores con nombre en las directivas de API Management para proteger la información confidencial en las directivas de API Management.
Use Application Gateway para el acceso externo de una instancia interna de API Management para proteger la instancia de API Management, defenderse contra vulnerabilidades y vulnerabilidades comunes de la aplicación web mediante WAF y habilitar la conectividad híbrida.
Implemente la puerta de enlace de API Management en una red virtual para admitir la conectividad híbrida y aumentar la seguridad.
El emparejamiento de redes virtuales mejora el rendimiento en una región y permite la comunicación privada entre redes virtuales.
Cuando se usa un WAF, se presenta una capa que inspecciona el tráfico entrante para un comportamiento malintencionado. Esta protección ayuda a bloquear amenazas comunes, como inyección de código SQL y scripting entre sitios. Application Gateway y la protección de denegación de servicio distribuida (DDoS) ayudan a evitar que el tráfico excesivo o las inundaciones de conexiones sobrepase la instancia de API Management. Para más información, consulte Protección de las API mediante Application Gateway y API Management.
Los puntos de conexión privados para Azure Functions permiten conectarse de forma segura a las aplicaciones de funciones a través de una dirección IP privada dentro de la red virtual. Esta configuración evita la exposición de las funciones a la red pública de Internet, lo que reduce el riesgo de acceso no autorizado. En esta arquitectura, los puntos de conexión privados garantizan que solo los recursos de confianza de la red puedan acceder a Azure Functions.
Optimización de costos
La optimización de costos se centra en formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costes.
Esta implementación usa el plan Premium para admitir funcionalidades de red virtual y zona de disponibilidad. Si no necesita instancias dedicadas, también puede usar Flex Consumption, que admite tanto el acceso a la red como las zonas de disponibilidad. Revise la calculadora de precios para esta implementación.
Para obtener pruebas de conceptos o prototipos, se recomienda usar otros niveles de API Management, como Developer o Standard.
Excelencia operativa
La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para obtener más información, consulte la Lista de comprobación de revisión de diseño para la excelencia operativa.
Represente las configuraciones de API Management como plantillas de Azure Resource Manager y adopte un enfoque de infraestructura como código (IaC).
Use un proceso de CI/CD para administrar, crear versiones y actualizar configuraciones de API Management.
Cree sondeos de estado personalizados para ayudar a validar el estado de la instancia de API Management. Use la dirección URL
/status-0123456789abcdefpara crear un punto de conexión de mantenimiento común para el servicio API Management en la puerta de enlace de aplicaciones.Los certificados actualizados en el almacén de claves se rotan automáticamente en API Management, lo que refleja los cambios en un plazo de cuatro horas.
Si usa una herramienta de DevOps, como Azure DevOps o GitHub, los agentes o ejecutores hospedados en la nube funcionan mediante la red pública de Internet. Dado que API Management en esta arquitectura está establecido en una red interna, debe usar un agente de DevOps que tenga acceso a la red virtual. El agente de DevOps le ayuda a implementar directivas y otros cambios en las API de la arquitectura. Puede usar estas plantillas de CI/CD para separar el proceso en partes para que los equipos de desarrollo puedan implementar cambios para cada API. Los ejecutores de DevOps inician las plantillas para controlar estas implementaciones individuales.
Implementación de este escenario
Esta arquitectura está disponible en GitHub. Contiene todos los archivos IaC necesarios y las instrucciones de implementación.
Colaboradores
Microsoft se encarga del mantenimiento de este artículo. Los colaboradores siguientes escribieron este artículo.
Creadores de entidad de seguridad:
- Pete Messina | Arquitecto sénior de soluciones en la nube
- Anthony Nevico | Arquitecto sénior de soluciones en la nube
Para ver perfiles de LinkedIn no públicos, inicie sesión en LinkedIn.
Pasos siguientes
- Acelerador de zona de aterrizaje de API Management
- Terminología de API Management
- Documentación de Application Gateway