Seguridad en Azure App Service
En este artículo se muestra cómo Azure App Service ayuda a proteger su aplicación web, el back-end de la aplicación móvil, la aplicación de API y la aplicación de función. También muestra cómo proteger aún más su aplicación con las características de App Service integradas.
Los componentes de plataforma de App Service, incluidas las máquinas virtuales de Azure, el almacenamiento, las conexiones de red, las plataformas web y las características de administración e integración se protegen y refuerzan activamente. App Service realiza exhaustivas comprobaciones de cumplimiento de forma continua para asegurarse de que:
- Los recursos de aplicación estén protegidos de los recursos de Azure de otros clientes.
- Las instancias de máquina virtual y el software en tiempo de ejecución se actualicen periódicamente para abordar puntos vulnerables recién detectados.
- La comunicación de secretos (por ejemplo, cadenas de conexión) entre su aplicación y otros recursos de Azure (por ejemplo, SQL Database) permanezca dentro de Azure y no cruce ningún límite de la red. Los secretos siempre se cifren al guardarlos.
- Todas las comunicaciones que se realicen con las características de conectividad de App Service, como la conexión híbrida, se cifren.
- Todas las conexiones con herramientas de administración remota como Azure PowerShell, la CLI de Azure, los SDK de Azure o las API REST, se cifren.
- La administración ininterrumpida de amenazas proteja la infraestructura y la plataforma frente a malware, ataques por denegación de servicio distribuido (DDoS), ataques de tipo "Man in the middle" (MITM) y otras amenazas.
Para más información sobre la seguridad de la infraestructura y la plataforma en Azure, consulte Centro de confianza de Microsoft Azure.
Las secciones siguientes muestran cómo proteger aún más la aplicación de App Service frente a amenazas.
HTTPS y certificados
App Service permite proteger las aplicaciones con HTTPS. Cuando se crea la aplicación, su nombre de dominio predeterminado (<app_name>.azurewebsites.net) ya es accesible mediante HTTPS. Si configura un dominio personalizado para la aplicación, también debe protegerla con un certificado TLS/SSL para que los exploradores de cliente pueden establecer conexiones HTTPS seguras con su dominio personalizado. App Service admite varios tipos de certificados:
- Certificado administrado de App Service gratuito
- Certificado de App Service
- Certificado de terceros
- Certificado importado de Azure Key Vault
Para más información, consulte Adición de un certificado TLS/SSL en Azure App Service.
Protocolos no seguros (HTTP, TLS 1.0, FTP)
Para proteger su aplicación frente a todas las conexiones no cifradas (HTTP), App Service proporciona una configuración en un clic para aplicar HTTPS. Las solicitudes no seguras se descartan inmediatamente antes incluso de que lleguen al código de la aplicación. Para más información, consulte Aplicación de HTTPS.
TLS 1.0 ya no se considera seguro según las normas del sector, como PCI DSS. App Service permite exigir TLS 1.1/1.2 para deshabilitar los protocolos no actualizados.
App Service admite FTP y FTPS para la implementación de los archivos. Sin embargo, debe utilizarse FTPS en lugar de FTP, si es posible. Si uno o los dos protocolos no están en uso, debe deshabilitarlos.
Restricciones de IP estática
De forma predeterminada, la aplicación de App Service acepta solicitudes de todas las direcciones IP de Internet, pero puede limitar el acceso a un pequeño subconjunto de direcciones IP. En Windows, App Service permite definir una lista de direcciones IP que tienen permiso para acceder a su aplicación. La lista de direcciones permitidas puede incluir direcciones IP individuales o un intervalo de direcciones IP definido por una máscara de subred. Para más información, consulte Restricciones de IP estáticas de Azure App Service.
En Windows, App Service también permite restringir las direcciones IP dinámicamente mediante el archivo web.config. Para más información, consulte Seguridad de direcciones IP dinámicas <dynamicIpSecurity>.
Autenticación y autorización de clientes
Azure App Service incorpora autenticación y autorización de usuarios o aplicaciones cliente. Cuando están habilitadas, puede iniciar la sesión de usuarios y aplicaciones cliente con poco o ningún código de aplicación. Puede implementar su propia solución de autenticación y autorización o permitir que App Service lo controle automáticamente. El módulo de autenticación y autorización administra las solicitudes web antes de entregarlas al código de aplicación y deniega las solicitudes no autorizadas antes de que lleguen al código.
La funcionalidad de autorización y autenticación de App Service admite varios proveedores de autenticación, incluidos Microsoft Entra ID, cuentas de Microsoft, Facebook, Google y X. Para obtener más información, consulte Autenticación y autorización en Azure App Service.
Autenticación entre servicios
Al autenticarse con un servicio back-end, App Service proporciona dos mecanismos diferentes dependiendo de sus necesidades:
- Identidad de servicio: inicie sesión en el recurso remoto con la identidad de la propia aplicación. App Service permite crear fácilmente una identidad administrada, que puede usar para autenticarse en otros servicios, como Azure SQL Database o Azure Key Vault. Para ver un tutorial completo sobre este tema, consulte Tutorial: protección de la conexión con Azure SQL Database desde App Service mediante una identidad administrada.
- En nombre de otra persona (OBO) : cree un acceso delegado a los recursos remotos en nombre del usuario. Con Microsoft Entra ID como proveedor de autenticación, la aplicación de App Service puede hacer un inicio de sesión delegado en un servicio remoto, como Microsoft Graph o una aplicación de API remota en App Service. Para ver un tutorial completo sobre este tema, consulte Autenticación y autorización de usuarios de un extremo a otro en Azure App Service.
Conectividad a los recursos remotos
Hay tres tipos de recursos remotos a los que la aplicación puede necesitar acceder:
En cada uno de estos casos, App Service ofrece una manera de crear conexiones seguras; aún así, debe tener en cuenta los procedimientos recomendados de seguridad. Por ejemplo, use siempre conexiones cifradas aunque el recurso de back-end permita conexiones no cifradas. Además, asegúrese de que el servicio de Azure de back-end permite el conjunto mínimo de direcciones IP. Encontrará las direcciones IP de salida de su aplicación en Direcciones IP de entrada y salida en Azure App Service.
Recursos de Azure
Cuando la aplicación se conecta a recursos de Azure tales como Azure SQL Database y Azure Storage, la conexión permanece dentro de Azure y no cruza los límites de la red. Sin embargo, la conexión va a través de la red compartida en Azure, por lo que siempre debe asegurarse de que la conexión esté cifrada.
Si la aplicación se hospeda en un entorno de App Service, deberá conectarse a los servicios de Azure mediante puntos de conexión de servicio de red virtual.
Recursos dentro de una red virtual de Azure
La aplicación puede acceder a los recursos de una red virtual de Azure mediante la integración de redes virtuales. La integración se establece con una red virtual mediante una VPN de sitio a punto. Después, la aplicación puede acceder a los recursos de la red virtual con sus direcciones IP privadas. Sin embargo, la conexión de punto a sitio sigue atravesando las redes compartidas en Azure.
Para aislar por completo la conectividad de los recursos de las redes compartidas en Azure, cree la aplicación en un entorno de App Service. Como un entorno de App Service siempre se implementa en una red virtual dedicada, la conectividad entre la aplicación y los recursos dentro de la red virtual está totalmente aislada. Para otros aspectos de la seguridad de red en un entorno de App Service, consulte Aislamiento de red.
Recursos locales
Hay tres maneras de acceder de forma segura a los recursos locales, por ejemplo, las bases de datos:
- Conexiones híbridas: establece una conexión de punto a punto con el recurso remoto a través de un túnel TCP. El túnel TCP se establece con TLS 1.2 con las claves de firma de acceso compartido (SAS).
- Integración de red virtual con VPN de sitio a sitio: tal y como se describe en Recursos dentro de una red virtual de Azure, pero la red virtual se puede conectar a la red local mediante una VPN de sitio a sitio. En esta topología de red, la aplicación puede conectarse a los recursos locales igual que a los demás recursos de la red virtual.
- Entorno de App Service con VPN de sitio a sitio: tal y como se describe en Recursos dentro de una red virtual de Azure, pero la red virtual se puede conectar a la red local mediante una VPN de sitio a sitio. En esta topología de red, la aplicación puede conectarse a los recursos locales igual que a los demás recursos de la red virtual.
Secretos de aplicación
No almacene los secretos de la aplicación, como las credenciales de la base de datos, los tokens de API y las claves privadas en el código o en archivos de configuración. El enfoque aceptado es acceder a ellos como variables de entorno, usando el patrón estándar en el lenguaje que prefiera. En App Service, las variables de entorno se definen mediante la configuración de la aplicación y, especialmente para las aplicaciones .NET, cadenas de conexión. La configuración de la aplicación y las cadenas de conexión se almacenan cifradas en Azure y se descifran solo antes de insertarlas en la memoria de proceso de la aplicación cuando se inicia la aplicación. Las claves de cifrado rotan con regularidad.
También puede integrar la aplicación de App Service con Azure Key Vault para la administración avanzada de secretos. Al acceder a Key Vault con una identidad administrada, la aplicación App Service puede acceder de forma segura a los secretos que necesita.
Aislamiento de red
Excepto en el plan de tarifa Aislado, todos los niveles ejecutan las aplicaciones en la infraestructura de red compartida en App Service. Por ejemplo, las direcciones IP públicas y los equilibradores de carga de front-end se comparten con otros inquilinos. El plan Aislado ejecuta las aplicaciones dentro de un entorno de App Service dedicado para tener un aislamiento de red completo. Los entornos de App Service se ejecutan en su propia instancia de la red virtual de Azure. Le permite:
- Servir las aplicaciones a través de un punto de conexión público dedicado, con servidores front-end dedicados.
- Servir la aplicación interna usando un equilibrador de carga interno (ILB), que permite el acceso únicamente desde dentro de la red virtual de Azure. El ILB tiene una dirección IP de la subred privada, que aísla completamente las aplicaciones de Internet.
- Uso de un ILB detrás de un firewall de aplicaciones web (WAF). WAFS ofrece protección de nivel empresarial para las aplicaciones de acceso público, tales como protección frente a DDoS, filtrado de URI y prevención de inyección de SQL.
Protección contra DDOS
En el caso de las cargas de trabajo web, se recomienda encarecidamente usar la protección contra DDoS de Azure y un firewall de aplicaciones web para protegerse frente a posibles ataques DDoS. Otra opción es implementar Azure Front Door junto con un firewall de aplicaciones web. Azure Front Door ofrece protección de nivel de plataforma frente a ataques DDoS de nivel de red.
Para más información, consulte Introducción a los entornos de Azure App Service.