Asegura tu base de datos de Azure SQL

Se aplica a:Azure SQL Database

Azure SQL Database es un motor de base de datos totalmente gestionado como plataforma como servicio (PaaS) que gestiona la mayoría de las funciones de gestión de bases de datos, como actualizaciones, parches, copias de seguridad y monitorización, sin la intervención del usuario. Dado que a menudo almacena datos empresariales críticos, incluidos registros de clientes, información financiera y propiedad intelectual, proteger tu Azure SQL Database es esencial para evitar brechas de datos, accesos no autorizados y violaciones de cumplimiento.

Este artículo ofrece recomendaciones de seguridad para ayudar a proteger tu despliegue de Azure SQL Database.

Las recomendaciones de seguridad de este artículo implementan principios de confianza cero: "Comprobar explícitamente", "Usar acceso con privilegios mínimos" y "Asumir vulneración de seguridad". Para obtener instrucciones de Confianza cero completas, consulte el Centro de instrucciones Confianza cero.

Reducir la superficie de ataque y mitigar amenazas

Dado que Azure SQL Database es un motor PaaS gestionado, Microsoft fortalece el sistema operativo y la infraestructura. Tu responsabilidad se centra en reducir la superficie de aplicaciones y datos expuesta a ataques y en detectar amenazas a tiempo.

  • Realiza evaluaciones de vulnerabilidades SQL: Utiliza la evaluación de vulnerabilidades SQL para descubrir, rastrear y remediar posibles errores y vulnerabilidades en bases de datos. Programa escaneos recurrentes y actúa según la línea base que establezca. Para obtener más información, consulte Evaluación de vulnerabilidades de SQL.

  • Protégete contra la inyección SQL: Utiliza consultas y procedimientos almacenados parametrizados en tus aplicaciones, y nunca concatenes la entrada del usuario en sentencias SQL. La inyección SQL sigue siendo uno de los vectores de ataque más comunes contra aplicaciones de bases de datos. Para obtener más información, consulte SQL injection.

  • Aplicar defensa en profundidad: combinar aislamiento de red, controles de identidad, protección de datos y monitorización para que ningún control individual sea un punto único de fallo. Para más información, consulte el Manual de Prácticas para abordar los requisitos comunes de seguridad.

Seguridad de red

La seguridad de red para Azure SQL Database ayuda a prevenir conexiones no autorizadas y reduce la exposición a ataques, de modo que solo fuentes confiables puedan acceder a tus bases de datos.

  • Utiliza endpoints privados: Conéctate a tu Azure SQL Database sobre direcciones IP privadas usando Azure Private Link para evitar exponer tu base de datos a internet público. La conectividad privada reduce la superficie de ataque y el riesgo de exfiltración de datos. Para más información, consulte Azure Private Link para Azure SQL Database.

  • Desactivar el acceso a la red pública: Cuando dependes de endpoints privados, desactiva el acceso a la red pública por completo para que todas las conexiones pasen por el endpoint privado. Para obtener más información, consulte Denegar el acceso a la red pública.

  • Configurar reglas de cortafuegos a nivel de servidor: Controla el acceso a tu servidor lógico en Azure con reglas de firewall IP que especifican qué direcciones o rangos pueden conectarse, siguiendo el principio de menor privilegio. Para más información, consulte Reglas de firewall de IP de Azure SQL Database y Azure Synapse.

  • Configurar reglas de firewall a nivel de base de datos: Para un control más detallado, configura reglas de firewall a nivel de base de datos que se apliquen a bases de datos individuales, habilitando políticas de acceso por base de datos. Para más información, consulte Reglas de cortafuegos IP a nivel de base de datos.

  • Restringir el tráfico a redes virtuales específicas: Utiliza reglas de red virtual para permitir tráfico solo desde subredes específicas dentro de tus redes virtuales de Azure, añadiendo aislamiento de red más allá de las reglas basadas en IP. Para más información, consulte Reglas de red virtual para Azure SQL Database.

  • Establece la versión mínima de TLS: Configura la versión mínima de TLS del servidor lógico en 1.2 o superior para que las conexiones que usen protocolos antiguos y débiles sean rechazadas. Para más información, véase Versión mínima TLS.

  • Elige una política de conexión adecuada: Usa la política de conexión Proxy cuando quieras que todo el tráfico fluya a través de la puerta de enlace en un solo puerto en lugar de exponer el rango de puertos de nodo del back-end, y usa Redirección para menor latencia desde Azure. Comprenda las ventajas e inconvenientes antes de sobrescribir la configuración predeterminada. Para más información, consulte Arquitectura de conectividad de Azure SQL Database.

Administración de identidades y acceso

Unos controles sólidos de identidad y autenticación limitan el acceso a los recursos de tu Azure SQL Database a usuarios y aplicaciones autorizados, con una gestión centralizada de identidades y un control más sencillo del ciclo de vida de la cuenta.

Autenticación y gestión de cuentas

  • Configura un administrador de Microsoft Entra: Designa un administrador de Microsoft Entra para tu servidor lógico que permita la gestión centralizada de identidades y políticas avanzadas de autenticación. Para obtener más información, consulte Configurar la autenticación de Microsoft Entra.

  • Utiliza la autenticación Microsoft Entra: Prefiere la autenticación Microsoft Entra sobre la autenticación SQL para una gestión centralizada de identidades y acceso a funciones como Acceso Condicional y autenticación multifactor. Para más información, consulte Autenticación de Microsoft Entra.

  • Desactiva la autenticación SQL siempre que sea posible: Para máxima seguridad, exige que todas las conexiones utilicen autenticación Microsoft Entra y desactiva la autenticación SQL, eliminando el riesgo de contraseñas SQL débiles o comprometidas. Para obtener más información, consulte Autenticación solo de Entra de Microsoft.

  • Crear usuarios de bases de datos contenidos: Mapear a los usuarios de bases de datos contenidos a identidades o grupos de Microsoft Entra en lugar de iniciar sesión a nivel de servidor cuando sea posible, simplificando la gestión de permisos y reduciendo el acceso a nivel de servidor. Para obtener más información, consulte Usuarios de bases de datos independientes.

  • Hacer cumplir la autenticación multifactor: Exigir autenticación multifactor (MFA) mediante Acceso Condicional para las identidades Microsoft Entra que administran y se conectan al servidor lógico, añadiendo una capa de protección más allá de las contraseñas. Para más información, consulta Cómo funciona la autenticación multifactor.

  • Aplicar políticas de Acceso Condicional: Utiliza el Acceso Condicional para controlar el acceso en función de la ubicación del usuario, el cumplimiento del dispositivo y el riesgo, proporcionando seguridad adaptativa para cada intento de acceso. Para obtener más información, consulte Acceso condicional.

  • Utiliza una identidad gestionada para el servidor lógico: Asigna una identidad gestionada asignada por el sistema o el usuario al servidor lógico para que pueda acceder a Azure Key Vault (para claves gestionadas por el cliente de TDE) y Azure Storage (para auditoría) sin secretos almacenados. Para más información, véase Identidad gestionada en Microsoft Entra para Azure SQL.

  • Aplica políticas de contraseñas fuertes: Si usas autenticación SQL, exige contraseñas complejas que no se puedan adivinar fácilmente, gíralas regularmente y evita reutilizarlas entre cuentas. Para obtener más información, consulte Directiva de contraseñas.

Acceso con privilegios

  • Concede el privilegio mínimo: Concede a los usuarios solo los permisos mínimos requeridos para sus funciones de trabajo y revisa permisos regularmente. Para obtener más información, consulte Introducción a los permisos del motor de base de datos.

  • Roles administrativos separados: Evita conceder amplios derechos administrativos a todos los administradores. Utiliza permisos granulares y la separación de funciones entre funciones administrativas. Para más información, consulte Permisos.

  • Asignar acceso con roles de base de datos: Utiliza roles de base de datos integrados y personalizados para implementar seguridad basada en roles, asignando a los usuarios roles en lugar de conceder permisos individuales. Para obtener más información, consulte Roles de nivel de base de datos.

  • Utiliza Azure RBAC para operaciones de gestión: Controla el acceso a las operaciones de gestión de Azure SQL Database con control de acceso basado en roles en Azure, creando roles personalizados que solo conceden los permisos necesarios para tareas específicas. Para obtener más información, consulte Roles integrados de Azure para bases de datos.

  • Proporcionar acceso privilegiado justo a tiempo: Utiliza Microsoft Entra Privileged Identity Management (PIM) para conceder acceso limitado en el tiempo y basado en aprobación a roles administrativos, de modo que los usuarios solo tengan privilegios elevados cuando sea necesario. Para más información, consulte Privileged Identity Management.

  • Monitorizar las actividades privilegiadas: Habilitar auditorías para rastrear acciones realizadas por cuentas privilegiadas, revisar los registros en busca de cambios sospechosos y alertar sobre operaciones sensibles. Para obtener más información, consulte Auditoría de Azure SQL Database.

Protección de los datos

La protección de datos protege tu información mediante cifrado, enmascaramiento y clasificación para evitar divulgaciones no autorizadas, manipulaciones o pérdida de información sensible.

  • Activa Cifrado de datos transparente (TDE): Cifra tu base de datos, registros y copias de seguridad en reposo. El TDE está habilitado por defecto para nuevas bases de datos; usar claves gestionadas por el cliente en Azure Key Vault para un control adicional sobre las claves de cifrado. Para más información, consulte Cifrado de datos transparentes (TDE) y TDE con claves gestionadas por el cliente.

  • Proteger datos sensibles con Siempre Cifrado: Usar Siempre Cifrado para proteger datos altamente sensibles en uso, en reposo y en tránsito, de modo que ni siquiera los administradores puedan ver los valores del texto plano. Utiliza enclaves seguros para una funcionalidad más rica. Para obtener más información, consulte Always Encrypted.

  • Crear datos a prueba de manipulación con el libro mayor: Habilitar el libro mayor para crear un registro inmutable y criptográficamente verificable de los cambios en datos sensibles, lo que puede ayudar a cumplir con los requisitos regulatorios. Para más información, consulte Ledger.

  • Enmascarar datos sensibles con enmascaramiento dinámico de datos: Aplicar enmascaramiento dinámico de datos para ofuscar datos sensibles de usuarios no privilegiados, preservando la funcionalidad de las aplicaciones, sin cambiar el código de la aplicación. Para obtener más información, consulte Enmascaramiento dinámico de datos.

  • Clasifica y etiqueta datos sensibles: Utiliza SQL Data Discovery and Classification para identificar, clasificar y etiquetar datos sensibles, de modo que funciones como auditoría y enmascaramiento puedan usar los metadatos y puedas informar dónde residen los datos sensibles. Para obtener más información, consulte Detección y clasificación de datos.

  • Restringir el acceso con permisos a nivel de columna: Conceder o negar permisos a nivel de columna para que solo los usuarios que necesiten una columna sensible puedan leerla o modificarla. Para más información, consulte permisos de objeto GRANT.

  • Restringir filas con seguridad de nivel de fila (RLS): Implemente RLS de modo que los usuarios solo puedan acceder a las filas de datos que les correspondan, proporcionando una seguridad a nivel de aplicación ideal para entornos multiinquilino. Para obtener más información, consulte Row-Level Security.

Registro y supervisión

El registro y monitorización exhaustivos te ayudan a detectar actividades anómalas, investigar incidentes y demostrar el cumplimiento de tus bases de datos.

  • Activa Microsoft Defender para SQL: Activa Microsoft Defender para SQL para detectar intentos inusuales y potencialmente perjudiciales de acceder o explotar tus bases de datos, incluyendo evaluación de vulnerabilidades y protección avanzada contra amenazas. Para obtener más información, consulte Microsoft Defender para SQL.

  • Integra con Microsoft Defender para la nube: Utiliza Microsoft Defender para la nube para una gestión centralizada de seguridad, recomendaciones de seguridad y protección integrada contra amenazas en tus recursos de Azure. Para más información, consulta Microsoft Defender for SQL en Defender for Cloud.

  • Configura alertas de protección contra amenazas: Configura alertas para actividades sospechosas como intentos de inyección SQL, patrones de acceso anómalos y autenticación por fuerza bruta, y enruta notificaciones a los destinatarios correctos. Para más información, consulta Protección avanzada contra amenazas.

  • Habilitar auditoría: Configura la auditoría para rastrear eventos en la base de datos y escribe estos en un espacio de trabajo de Log Analytics, Azure Storage o Event Hubs. Audita tanto eventos a nivel de servidor como de base de datos para obtener una cobertura completa. Para obtener más información, consulte Auditoría de Azure SQL Database.

  • Transmitir registros de diagnóstico: Configura la configuración de diagnóstico para enviar registros, incluyendo categorías de seguridad como SQLSecurityAuditEvents, a Azure Monitor Logs, Event Hubs o Azure Storage para su retención y análisis. Para más información, consulta Monitor Azure SQL Database with Azure Monitor.

  • Revisa los registros de auditoría regularmente: Establece un proceso para revisar los registros de auditoría en busca de actividades sospechosas, centrado en acciones de cuentas privilegiadas, intentos fallidos de autenticación y acceso a datos sensibles. Para obtener más información, consulte Auditoría de Azure SQL Database.

Cumplimiento y gobernanza

Los controles de gobernanza te ayudan a demostrar el cumplimiento normativo y a imponer configuraciones de seguridad consistentes en tus bases de datos.

  • Haz seguimiento del cumplimiento normativo con Microsoft Defender para la nube: Utiliza el panel de control de cumplimiento normativo para evaluar tus bases de datos frente a estándares como PCI DSS, ISO 27001 y SOC, y para controlar la remediación de controles deficientes. Para más información, consulte el panel de cumplimiento normativo.

  • Aplicar configuraciones con Azure Policy: Asignar definiciones integradas de Azure Policy para Azure SQL Database para auditar y aplicar controles como TDE, auditoría, puntos de conexión privados y autenticación exclusiva de Microsoft Entra. Para más información, consulte las definiciones integradas de Azure Policy para Azure SQL Database.

  • Regula los datos sensibles con Microsoft Purview: Registra y escanea Azure SQL Database en Microsoft Purview para catalogar, clasificar y gobernar datos sensibles en todo tu patrimonio de datos. Para más información, consulta Conectar y gestionar Azure SQL Database en Microsoft Purview.

  • Aplica el benchmark de seguridad en la nube de Microsoft: Utiliza el benchmark de seguridad en la nube de Microsoft como referencia a nivel de Azure para priorizar y validar los controles que aplicas a Azure SQL Database. Para más información, consulte Microsoft Cloud Security Benchmark.

Copia de seguridad y recuperación

Los procesos de copia de seguridad y recuperación confiables protegen los datos frente a la pérdida debido a errores, desastres o ataques. También te ayudan a alcanzar tus objetivos de recuperación.

  • Verifica la configuración de copias automáticas: Confirma que las copias de seguridad automáticas están configuradas y que la retención cumple con tus requisitos. Azure SQL Database proporciona copias de seguridad automatizadas por defecto con retención configurable de 1 a 35 días. Para obtener más información, consulte Copias de seguridad automatizadas.

  • Configurar la redundancia del almacenamiento de copia de seguridad: Elige la redundancia de almacenamiento de respaldo que se ajuste a tus necesidades de disponibilidad y recuperación ante desastres: redundante localmente (LRS), redundante por zona (ZRS), redundante geo-redundante (GRS) o redundante por zona geográfica (GZRS). Para obtener más información, consulte Redundancia de almacenamiento de respaldo.

  • Utiliza la retención a largo plazo para el cumplimiento: Configura la retención a largo plazo (LTR) para almacenar copias de seguridad completas hasta 10 años cuando el cumplimiento requiera retención más allá del periodo por defecto. Para más información, consulte retención a largo plazo.

  • Prueba los procedimientos de copia de seguridad y restauración: Prueba regularmente las restauraciones para confirmar que cumplen tus objetivos de tiempo de recuperación y que las bases de datos restauradas funcionan completamente con los datos intactos. Para obtener más información, consulte Recuperación de una base de datos.

  • Implementa la restauración geográfica para recuperación ante desastres: Utiliza la restauración geográfica para restaurar una base de datos desde copias de seguridad redundantes en cualquier región de Azure, protegiendo contra cortes regionales. Para más información, consulte Restauración geográfica.

  • Monitoriza la actividad de copia de seguridad: Haz seguimiento de las operaciones de copia de seguridad y configura alertas de fallos usando Azure Monitor. Para más información, consulte Supervisión y solución de problemas del consumo de almacenamiento de copia de seguridad.