Compartir a través de


Consideraciones de seguridad para el acelerador de zona de aterrizaje de Azure Spring Apps

En este artículo se describen las consideraciones de seguridad y las recomendaciones para una carga de trabajo hospedada en Azure Spring Apps. Esta guía le ayudará a crear una carga de trabajo capaz de detectar y prevenir vulnerabilidades de seguridad, además de responder a ellas en Azure Spring Apps.

Una aplicación protegida no puede garantizar la seguridad de toda la carga de trabajo. Como propietario de la carga de trabajo, evalúe los errores humanos y la superficie expuesta a ataques, como la aplicación y los servicios de infraestructura con los que interactúa la aplicación.

Azure proporciona controles de seguridad para la red, la identidad y los datos a fin de apoyar la estrategia de defensa en profundidad. Muchos de los controles están integrados en Azure Spring Apps. Esta guía se basa en la Línea de base de seguridad de Azure para Azure Spring Apps, que se deriva de la versión 2.0 de Azure Security Benchmark. El punto de referencia proporciona recomendaciones sobre cómo proteger la carga de trabajo que se ejecuta en la nube de Azure Spring Apps.

Los equipos centralizados proporcionan controles de red e identidad como parte de la plataforma. Proporcionan límites de protección para mantener el control sobre plataformas, aplicaciones y recursos en Azure. La suscripción de la zona de aterrizaje de la aplicación proporcionada para la carga de trabajo se aprovisiona previamente con directivas, que se heredan del grupo de administración.

Al diseñar la carga de trabajo, asegúrese de que los controles de seguridad que posee estén alineados con los controles centrales. El diseño está sujeto a revisiones periódicas realizadas por el equipo de seguridad centralizado. Revise periódicamente los controles de seguridad y las políticas de la plataforma con los equipos centrales para asegurarse de que se tienen en cuenta los requisitos de la carga de trabajo.

Para obtener información sobre el diseño de la plataforma, consulte:

Consideraciones de diseño

  • Tráfico interno. Restrinja o permita que el tráfico entre recursos internos siga un principio de segmentación empresarial que se alinee con los riesgos empresariales. Cuando sea necesario, cree límites de aislamiento a través de redes virtuales y subredes. Implemente reglas para restringir los flujos de tráfico entre redes.

  • Tráfico externo. Use recursos nativos de Azure para proteger los recursos de carga de trabajo contra ataques de redes externas, incluidos los siguientes:

    • Ataques de denegación de servicio distribuidos (DDoS).
    • Ataques específicos de la aplicación.
    • Tráfico de Internet no solicitado y potencialmente malintencionado.
  • Administración de identidades. Use las características de Microsoft Entra, como las identidades administradas, el inicio de sesión único, las autenticaciones seguras y el acceso condicional para proporcionar autenticación y autorización a través de Microsoft Entra ID.

  • Supervisión de la seguridad. El sistema debe tener herramientas de supervisión para detectar amenazas y medir el cumplimiento mediante los objetivos de la organización y los controles de Azure Security Benchmark. Estas herramientas deben integrarse con sistemas centrales de administración de eventos e información de seguridad (SIEM) para obtener una visión holística de la posición de seguridad.

  • Datos en tránsito. Los datos que se transfieren entre componentes, ubicaciones o llamadas API deben cifrarse.

  • Datos en reposo. Todos los datos persistentes, incluida la configuración, deben cifrarse.

  • Directivas de gobernanza. Debe detectar desviaciones de los estándares de cumplimiento establecidos por la organización. Azure Policy proporciona definiciones integradas que se deben aplicar para detectar las desviaciones. La aplicación de directivas no garantiza el pleno cumplimiento de todos los requisitos de un control. Puede que haya estándares de cumplimiento que no se aborden en las definiciones incorporadas.

  • Exposición de credenciales. Puede implementar y ejecutar código, configuraciones y datos persistentes con identidades o secretos. Asegúrese de que las credenciales se examinen cuando acceda a los recursos.

  • Administración de certificados. Los certificados deben cargarse según el principio de Confianza cero de nunca confiar y siempre verificar, además de que no deben tener credenciales. Confíe únicamente en los certificados compartidos verificando la identidad antes de conceder acceso a los certificados.

  • Implementaciones coherentes. Use infraestructura como código (IaC) para automatizar el aprovisionamiento y la configuración de todos los recursos de Azure y reforzar la posición de seguridad.

Recomendaciones de diseño

Red como perímetro

Estos controles de red crean límites de aislamiento y restringen los flujos dentro y fuera de la aplicación.

Segmentación de red

Cree una red virtual, o use una existente, cuando implemente recursos del servicio de Azure Spring Cloud.

Cree aislamiento dentro de la red virtual a través de la subred. Restrinja o permita el tráfico entre recursos internos mediante las reglas de NSG. Use la característica de protección de red adaptable de Microsoft Defender for Cloud para reforzar aún más las configuraciones de NSG que limitan los puertos y las IP de origen. Base las configuraciones en reglas de tráfico de red externas.

Cuando cree reglas de seguridad, use etiquetas de servicio de Azure para definir los controles de acceso a la red en lugar de direcciones IP específicas. Al especificar el nombre de la etiqueta de servicio en el campo de origen o destino de la regla apropiada, permita o deniegue el tráfico para el servicio correspondiente. Microsoft administra los prefijos de direcciones cubiertos por la etiqueta de servicio. Actualiza automáticamente la etiqueta de servicio a medida que cambian las direcciones.

Utilice la etiqueta de servicio AzureSpringCloud en grupos de seguridad de red o en Azure Firewall, para permitir el tráfico a las aplicaciones en Azure Spring Apps.

Para más información, consulte Responsabilidades del cliente para ejecutar Azure Spring Apps en una red virtual.

Conexión con redes privadas

En un entorno de colocación, use Azure ExpressRoute o la red privada virtual (VPN) de Azure para crear conexiones privadas entre los centros de datos de Azure y la infraestructura local. Las conexiones de ExpressRoute no usan la red de Internet pública con confiabilidad, velocidades más altas y latencias más bajas.

Para VPN de punto a sitio y VPN de sitio a sitio, conecte los dispositivos o redes del entorno local a una red virtual. Use cualquier combinación de estas opciones de VPN y Azure ExpressRoute.

Para conectar dos o más redes virtuales en Azure, use el emparejamiento de red virtual. El tráfico de red entre redes virtuales emparejadas es privado. Este tipo de tráfico se mantiene en la red troncal de Azure.

Ataques desde redes externas

Coloque controles en el tráfico entrante y bloquee los ataques de capa de aplicación con Azure Application Gateway con firewall de aplicaciones web (WAF) integrado.

Use Azure Firewall para restringir el tráfico saliente de la aplicación. Puede usar Azure Firewall para proteger las aplicaciones y los servicios contra el tráfico potencialmente malintencionado de Internet y otras ubicaciones externas.

El filtrado basado en inteligencia sobre amenazas de Azure Firewall puede enviarle una alertar o bloquear el tráfico hacia y desde direcciones IP y dominios malintencionados conocidos. La direcciones IP y los dominios proceden de la fuente Inteligencia sobre amenazas de Microsoft. Cuando se requiera la inspección de las cargas, implemente un sistema de prevención de intrusiones y detección de intrusiones (IDS/IPS) desde Azure Marketplace con funcionalidades de inspección de cargas. También puede usar un IDS/IPS basado en host o una solución de detección de punto de conexión y respuesta (EDR) basada en host con un IDS/IPS basado en redes, o en lugar de este.

Para proteger los recursos de carga de trabajo contra ataques DDoS, habilite la protección estándar DDoS en sus redes virtuales Azure. Use Microsoft Defender for Cloud para detectar riesgos de configuración incorrecta en los recursos relacionados con la red.

Proteja el servicio de nombres de dominio (DNS)

Use Azure DNS para hospedar dominios DNS. Proteja las zonas y registros DNS de los malos actores. Se recomienda el control de acceso basado en rol de Azure (RBAC de Azure) y los bloqueos de recursos para ese fin. Para más información, consulte Prevenir entradas DNS pendientes y evitar la adquisición de subdominios.

Identidad como perímetro

Azure proporciona controles de identidad a través de Microsoft Entra ID. La aplicación tiene muchas características, como el inicio de sesión único, las autenticaciones seguras, las identidades administradas, el acceso condicional. Para obtener información sobre las opciones de diseño de la arquitectura, consulte Consideraciones de identidad para el acelerador de zonas de aterrizaje de Azure Spring Apps.

En la sección siguiente, se describen los aspectos de seguridad de esas opciones.

Integración con el sistema de identidad centralizado

Las zonas de aterrizaje de Azure usan Microsoft Entra ID como servicio de administración de identidades y acceso predeterminados. Se recomienda usar Microsoft Entra ID centralizado para controlar los servicios de carga de trabajo. Microsoft Entra ID centralizado incluye el acceso a los recursos de red de la organización, Azure Storage, Key Vault y otros servicios de los que depende la aplicación.

Si quiere conceder acceso al plano de datos de Azure Spring Apps, use el rol integrado Lector de datos de Azure Spring Cloud. Este rol concede permisos de solo lectura.

Se recomiendan estas características de Microsoft Entra:

  • Identidades de aplicación. Es posible que la aplicación tenga que acceder a otros servicios de Azure. Por ejemplo, si necesita recuperar secretos de Azure Key Vault.

    Use identidades administradas con Azure Spring Apps para que la aplicación pueda autenticarse en otros servicios mediante Microsoft Entra ID. Evite usar entidades de servicio para este fin. El proceso de autenticación de identidades administradas no usa credenciales codificadas de forma rígida en archivos de configuración o de código fuente.

    Si necesita usar entidades de servicio con credenciales de certificado y reserva de secretos de cliente, se recomienda usar Microsoft Entra ID para crear una entidad de servicio con permisos restringidos en el nivel de recurso.

    En ambos casos, Key Vault se puede usar con identidades administradas por Azure. Se puede usar un componente de runtime, como una función de Azure, para recuperar los secretos de Key Vault. Para obtener más información, consulte Autenticación de Azure Key Vault.

  • Inicio de sesión único (SSO) de Microsoft Entra. Se recomienda el inicio de sesión único de Microsoft Entra para autenticar el acceso a la aplicación desde otras aplicaciones o dispositivos que se ejecutan en la nube o en el entorno local. El inicio de sesión único proporciona administración de identidades a usuarios internos y externos, como asociados o proveedores.

  • Controles de autenticación sólida. Microsoft Entra ID admite controles de autenticación sólida a través de la autenticación multifactor (MFA) y métodos seguros sin contraseña. En cuanto a administradores y usuarios con privilegios, use el nivel más alto del método de autenticación sólida para reducir el radio de explosión si se produce una vulneración. Después, para otros usuarios, implemente la directiva de autenticación sólida más adecuada. Para obtener más información, consulte Habilitación de la MFA en Azure y Opciones de autenticación sin contraseña de Microsoft Entra ID.

  • Acceso condicional a los recursos. Azure Spring Apps admite el acceso condicional de Microsoft Entra para un control de acceso más granular basado en condiciones definidas por el usuario. Puede establecer condiciones que incluyan el inicio de sesión de usuarios de determinados rangos de IP que deban iniciar sesión utilizando la MFA. Estas directivas de acceso condicional solo se aplican a las cuentas de usuario que se autentican en Microsoft Entra ID para acceder y administrar aplicaciones. Esas directivas no se aplican a entidades de servicio, claves o tokens que se utilizan para conectarse a sus recursos de carga de trabajo.

  • Acceso con privilegios. Implemente Privileged Identity Management de Microsoft Entra para garantizar el acceso con privilegios mínimos y la creación de informes profundos en todo el entorno de Azure. Los equipos deben comenzar las revisiones de acceso periódicas para garantizar que las personas y los principios de servicio adecuados tengan niveles de autorización actuales y correctos.

Controles de datos

Los controles de red e identidad restringen el acceso a la aplicación, pero los datos deben protegerse. El cifrado garantiza la integridad de los datos y es una funcionalidad de seguridad clave que se debe aplicar para mitigar las amenazas.

Datos en tránsito

Los datos transferidos son susceptibles a ataques fuera de banda, como la captura de tráfico. Use el cifrado para asegurarse de que los atacantes no puedan leer ni modificar fácilmente esos datos. Azure proporciona el cifrado de los datos en tránsito entre los centros de datos de Azure.

Azure Spring Apps admite el cifrado con Seguridad de la capa de transporte (TLS) v1.2 o superior. TLS proporciona comunicaciones seguras a través de la identidad y la confianza, y cifra las comunicaciones de todos los tipos. Puede usar cualquier tipo de certificado TLS. Por ejemplo, los certificados emitidos por una entidad de certificación, certificados de validación ampliados, certificados comodín compatibles con cualquier número de subdominios o certificados autofirmados para entornos de desarrollo y pruebas.

El cifrado es fundamental para el tráfico en redes externas y públicas. Todos los puntos de conexión públicos deben utilizar HTTPS para el tráfico entrante de forma predeterminada. Las llamadas de administración para configurar el servicio Azure Spring Apps a través de las llamadas a la API de Azure Resource Manager deben realizarse a través de HTTPS.

Para el tráfico HTTP, asegúrese de que los clientes que se conectan a los recursos de Azure pueden negociar TLS v1.2 o superior. No use versiones o protocolos obsoletos. Deshabilitación de cifrados débiles.

Para la administración remota, en lugar de usar un protocolo sin cifrar, use Secure Shell (SSH) para Linux o Protocolo de Escritorio Remoto (RDP) y TLS para Windows.

Datos en reposo

La carga de trabajo debe almacenar un estado de los artefactos y el origen, la configuración del servidor de configuración, la configuración de la aplicación y el almacenamiento. Los datos en reposo del lado servidor están protegidos por el cifrado de Azure Storage. Storage cifra automáticamente el contenido con claves administradas por Microsoft.

La memoria caché del servidor de configuración, los archivos binarios de runtime compilados a partir de orígenes de datos cargados y los registros de aplicación durante la vigencia de la aplicación se guardan en un disco administrado de Azure. Estos datos se cifran automáticamente. Las imágenes de contenedor compiladas a partir del origen cargado por el usuario se cifran y guardan en Azure Container Registry.

Para escenarios de soporte técnico, cuando Microsoft necesita acceso a los datos de clientes pertinentes, use la Caja de seguridad del cliente de Microsoft Azure porque el equipo u organización deben aprobar el acceso.

Supervisión y alerta de anomalías de cuenta

Se recomienda Microsoft Defender for Cloud para recibir alertas sobre actividades sospechosas, como una cantidad excesiva de intentos de autenticación incorrectos o cuentas en desuso en la suscripción.

Azure Spring Apps se integra con el Microsoft Entra, que puede realizar un seguimiento de las actividades de inicio de sesión, incluidos los inicios de sesión de riesgo. Puede usar los registros de auditoría para detectar los cambios realizados en los recursos de Microsoft Entra ID. Los datos se integran con Azure Monitor y se pueden exportar a Microsoft Sentinel.

Para más información, vea:

Directivas de gobernanza

La definición integrada de Azure denominada Azure Spring Cloud debe usar la inserción de red, lo que permite aplicar controles de red.

  1. Detecte la implementación de límites de aislamiento para la aplicación desde Internet.
  2. Permita que Azure Spring Apps se comunique con redes privadas en centros de datos locales o con el servicio Azure en otras redes virtuales.
  3. Controle las comunicaciones de red entrantes y salientes para la red virtual de Azure Spring Apps.

Administración de certificados

Es posible que una aplicación necesite certificados TLS públicos al comunicarse con servicios back-end o sistemas locales. Puede cargar los certificados en Key Vault.

Para cargar certificados de forma segura desde Key Vault, las aplicaciones de Spring Boot usan identidades administradas y el control de acceso basado en roles (RBAC) de Azure. Azure Spring Apps usa una entidad de servicio de proveedor y el control de acceso basado en roles de Azure. Esta carga segura usa la tecnología del proveedor de arquitectura de criptografía de Java (JCA) de Azure Key Vault. Para más información, consulte Biblioteca cliente de JCA de Azure Key Vault para Java.

Si el código de Spring, el código Java o las bibliotecas de código abierto, como OpenSSL, dependen de la cadena de JCA predeterminada de JVM para cargar implícitamente certificados en el almacén de confianza de JVM, puede importar los certificados TLS desde Key Vault en Azure Spring Apps. Use esos certificados dentro de la aplicación. Para obtener más información, consulte Uso de certificados TLS/SSL en la aplicación en Azure Spring Apps.

Exploración de credenciales

Implemente el escáner de credenciales para identificar las credenciales que acceden al código, las configuraciones y los datos persistentes. Credential Scanner recomienda mover las credenciales detectadas a ubicaciones más seguras, como Key Vault.

En GitHub, puede usar la característica de análisis de secretos nativos para identificar credenciales u otro tipo de secretos en el código.

Para más información, consulte:

Pasos siguientes

Supervisión de operaciones