Patrones de diseño en la nube que admiten la seguridad
Al diseñar arquitecturas de cargas de trabajo, debe usar patrones del sector que aborden desafíos comunes. Los patrones pueden ayudarle a compensar intencionadamente las cargas de trabajo y optimizar el resultado deseado. También pueden ayudar a mitigar los riesgos que se originan en problemas específicos, lo que puede afectar a la confiabilidad, el rendimiento, el costo y las operaciones. Esos riesgos pueden ser indicativos de la falta de garantías de seguridad, si se deja desatendido pueden suponer riesgos significativos para la empresa. Estos patrones están respaldados por la experiencia real, están diseñados para modelos operativos y de escala en la nube, y son inherentemente independientes del proveedor. El uso de patrones conocidos como una manera de estandarizar el diseño de la carga de trabajo es un componente de excelencia operativa.
Muchos patrones de diseño admiten directamente uno o varios pilares de arquitectura. Patrones de diseño que admiten el pilar de seguridad priorizan conceptos como segmentación y aislamiento, autorización sólida, seguridad uniforme de aplicaciones y protocolos modernos.
Patrones de diseño para la seguridad
En la tabla siguiente se resumen los patrones de diseño en la nube que admiten los objetivos de seguridad.
Patrón | Resumen |
---|---|
Ambassador | Encapsula y administra las comunicaciones de red descargando tareas transversales relacionadas con la comunicación de red. Los servicios auxiliares resultantes inician la comunicación en nombre del cliente. Este punto de mediación ofrece una oportunidad para aumentar la seguridad en las comunicaciones de red. |
Backends for Frontends | Individualiza la capa de servicio de una carga de trabajo mediante la creación de servicios independientes exclusivos de una interfaz de front-end específica. Debido a esta separación, la seguridad y la autorización en el nivel de servicio que admiten un cliente se pueden adaptar a la funcionalidad proporcionada por ese cliente, lo que podría reducir el área expuesta de una API y el movimiento lateral entre diferentes back-end que podrían exponer diferentes funcionalidades. |
Bulkhead | Introduce la segmentación intencionada y completa entre los componentes para aislar el radio de explosión de mal funcionamiento. También puede usar esta estrategia para contener incidentes de seguridad en el bulkhead en peligro. |
Comprobación de notificaciones | Separa los datos del flujo de mensajería, lo que proporciona una manera de recuperar por separado los datos relacionados con un mensaje. Este patrón permite mantener los datos confidenciales fuera de los cuerpos de los mensajes, en lugar de mantenerlo administrado en un almacén de datos protegido. Esta configuración permite establecer una autorización más estricta para admitir el acceso a los datos confidenciales de los servicios que se espera que usen los datos, pero quitar la visibilidad de los servicios auxiliares, como las soluciones de supervisión de colas. |
Federated Identity | Delega la confianza en un proveedor de identidades externo a la carga de trabajo para administrar usuarios y proporcionar autenticación para la aplicación. Al externalizar la autenticación y la administración de usuarios, puede obtener funcionalidades evolucionadas para la detección y prevención de amenazas basadas en identidades sin necesidad de implementar estas funcionalidades en la carga de trabajo. Los proveedores de identidades externos usan protocolos de autenticación interoperables modernos. |
Gatekeeper | Descarga el procesamiento de solicitudes específicamente para la aplicación de control de acceso y seguridad antes y después de reenviar la solicitud a un nodo back-end. Agregar una puerta de enlace al flujo de solicitud le permite centralizar la funcionalidad de seguridad, como firewalls de aplicaciones web, protección contra DDoS, detección de bots, manipulación de solicitudes, inicio de autenticación y comprobaciones de autorización. |
Gateway Aggregation | Simplifica las interacciones de cliente con la carga de trabajo mediante la agregación de llamadas a varios servicios back-end en una sola solicitud. Esta topología a menudo reduce el número de puntos táctiles que tiene un cliente con un sistema, lo que reduce el área de superficie pública y los puntos de autenticación. Los back-end agregados pueden permanecer totalmente aislados de la red de los clientes. |
Gateway Offloading | Descarga el procesamiento de solicitudes en un dispositivo de puerta de enlace antes y después de reenviar la solicitud a un nodo back-end. Agregar una puerta de enlace al flujo de solicitud le permite centralizar la funcionalidad de seguridad, como firewalls de aplicaciones web y conexiones TLS con clientes. Cualquier funcionalidad descargada proporcionada por la plataforma ya ofrece seguridad mejorada. |
Publicador y suscriptor | Desacopla los componentes de una arquitectura reemplazando la comunicación directa de cliente a servicio por la comunicación a través de un agente de mensajes intermedio o un bus de eventos. Este reemplazo presenta un límite importante de segmentación de seguridad que permite a los suscriptores de cola estar aislados de red del publicador. |
Cuarentena | Garantiza que los recursos externos cumplan un nivel de calidad acordado por el equipo antes de autorizarlos a consumirlos en la carga de trabajo. Esta comprobación sirve como primera validación de seguridad de artefactos externos. La validación en un artefacto se lleva a cabo en un entorno segmentado antes de usarse dentro del ciclo de vida de desarrollo seguro (SDL). |
Sidecar | Amplía la funcionalidad de una aplicación mediante la encapsulación de tareas no primarias o transversales en un proceso complementario que existe junto con la aplicación principal. Al encapsular estas tareas e implementarlas fuera de proceso, puede reducir el área expuesta de procesos confidenciales solo al código necesario para realizar la tarea. También puede usar sidecars para agregar controles de seguridad transversales a un componente de aplicación que no está diseñado de forma nativa con esa funcionalidad. |
Limitaciones | Impone límites en la velocidad o el rendimiento de las solicitudes entrantes a un recurso o componente. Puede diseñar los límites para ayudar a evitar el agotamiento de recursos que podría dar lugar a un abuso automatizado del sistema. |
Valet Key | Concede acceso restringido a la seguridad a un recurso sin usar un recurso intermediario para proxy del acceso. Este patrón permite a un cliente acceder directamente a un recurso sin necesidad de credenciales duraderas o permanentes. Todas las solicitudes de acceso comienzan con una transacción auditable. A continuación, el acceso concedido se limita tanto en el ámbito como en la duración. Este patrón también facilita la revocación del acceso concedido. |
Pasos siguientes
Revise los patrones de diseño en la nube que admiten los otros pilares de Azure Well-Architected Framework: