Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
En este artículo se detallan los fundamentos de la protección de la capa de datos de una aplicación con Azure SQL Database e Azure SQL Managed Instance y Azure Synapse Analytics. La estrategia de seguridad descrita sigue el enfoque de defensa en profundidad con múltiples capas, como se muestra en el diagrama siguiente, y avanza desde el exterior hacia adentro.
Seguridad de las redes
Azure SQL Database, Azure SQL Managed Instance y Azure Synapse Analytics proporcionan un servicio de base de datos relacional para aplicaciones empresariales y en la nube. Para ayudar a proteger los datos del cliente, los firewalls evitan el acceso de red al servidor hasta que se concede acceso explícitamente según la dirección IP o el origen del tráfico de red virtual de Azure.
Reglas de firewall de IP
Las reglas de firewall de IP otorgan acceso a las bases de datos según la dirección IP de origen de cada solicitud. Para más información, consulte Introducción a las reglas de firewall de Azure SQL Database y Azure Synapse Analytics.
Reglas de firewall de red virtual
Los puntos de conexión del servicio de redes virtuales amplía la conectividad de red virtual a través de la red troncal de Azure y permite que Azure SQL Database identifique la subred de la red virtual desde la que se origina el tráfico. Para permitir que el tráfico llegue a Azure SQL Database, use las etiquetas de servicio de SQL para permitir el tráfico saliente a través de grupos de seguridad de red.
- Las reglas de red virtual permiten que Azure SQL Database solo acepte comunicaciones que se envían desde subredes seleccionadas en una red virtual.
- El control del acceso con reglas de firewall no se aplica a SQL Managed Instance. Para más información sobre la configuración de red necesaria, consulte Conexión a una instancia administrada.
Nota:
El control del acceso con reglas de firewall no se aplica a SQL Managed Instance. Para más información sobre la configuración de red necesaria, consulte Conexión a una instancia administrada.
Perímetro de seguridad de red
Un perímetro de seguridad de red de Azure crea límites de red lógicos alrededor de los recursos de plataforma como servicio (PaaS) que se implementan fuera de las redes virtuales.
- Un perímetro de seguridad de red de Azure le ayuda a controlar el acceso a la red pública a Azure SQL Database.
- El control del acceso con un perímetro de seguridad de red de Azure no se aplica a Azure SQL Managed Instance.
Importante
Azure SQL Database con perímetro de seguridad de red está actualmente en versión preliminar. Las versiones preliminares se proporcionan sin un acuerdo de nivel de servicio y no se aconseja su uso con cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
Autenticación
La autenticación es el proceso por el cual se demuestra que el usuario es quien dice ser. Azure SQL Database y SQL Managed Instance admiten la autenticación mediante Microsoft Entra ID (anteriormente Azure Active Directory) y la autenticación SQL. SQL Managed Instance admite además la autenticación de Windows para entidades de seguridad de Microsoft Entra.
Autenticación de Microsoft Entra:
La autenticación de Microsoft Entra es un mecanismo para conectarse a Azure SQL Database, Azure SQL Managed Instance y Azure Synapse Analytics mediante identidades en Microsoft Entra ID. La autenticación de Microsoft Entra permite a los administradores administrar de forma centralizada las identidades y los permisos de los usuarios de la base de datos, junto con otros servicios de Azure, en una ubicación central. Esto podría ayudar a eliminar el uso de secretos y contraseñas.
Se debe crear un administrador del servidor denominado Administrador de Microsoft Entra para usar la autenticación de Microsoft Entra con SQL Database. Para más información, vea Conexión a una base de datos SQL con la autenticación de Microsoft Entra. La autenticación de Microsoft Entra admite cuentas tanto administradas como federadas. Las cuentas federadas admiten usuarios y grupos de Windows para un dominio de cliente federado con Microsoft Entra ID.
Microsoft Entra admite varias opciones de autenticación diferentes, como la autenticación multifactor, la autenticación integrada de Windows y el acceso condicional.
Autenticación de Windows para entidades de seguridad de Microsoft Entra:
La autenticación de Kerberos para entidades de seguridad de Microsoft Entra habilita la autenticación de Windows para Azure SQL Managed Instance. La autenticación de Windows para instancias administradas permite a los clientes trasladar los servicios existentes a la nube y, al mismo tiempo, mantener una experiencia de usuario fluida, lo que proporciona la base para la modernización de la infraestructura.
Para habilitar la autenticación de Windows para las entidades de Microsoft Entra, convertirá el inquilino de Microsoft Entra en un realm de Kerberos independiente y creará una confianza entrante en el dominio del cliente. Obtenga información sobre cómo implementar la autenticación de Windows para Azure SQL Managed Instance con Microsoft Entra ID y Kerberos.
Autenticación de SQL:
La autenticación de SQL hace referencia a la autenticación de un usuario al conectarse a Azure SQL Database o Instancia administrada de Azure SQL con el nombre de usuario y la contraseña. Cuando se crea el servidor, se debe especificar un inicio de sesión de administrador de servidor con un nombre de usuario y una contraseña. Con estas credenciales, un administrador de servidor puede autenticarse en cualquier base de datos en ese servidor o instancia como propietario de la base de datos. Después, el administrador del servidor puede crear otros inicios de sesión y usuarios de SQL, que permiten a los usuarios conectarse mediante el nombre de usuario y la contraseña.
Administración de autorización y acceso
La autorización hace referencia a controlar el acceso a la administración de servidores y bases de datos, así como a datos, recursos y comandos dentro de una base de datos. Esto se realiza mediante la asignación de permisos a un usuario dentro de una base de datos en Azure SQL Database o Azure SQL Managed Instance. La administración de bases de datos y servidores en Azure se controla mediante las asignaciones de roles de su cuenta de usuario del portal. Para obtener más información, vea Control de acceso basado en rol de Azure en Azure Portal.
Los permisos se administran idealmente mediante la adición de cuentas de usuario a roles de base de datos y la asignación de permisos de nivel de base de datos a estos roles. Como alternativa, también se pueden conceder determinados permisos de nivel de objeto a un usuario individual. Para más información, consulte Inicios de sesión y usuarios.
Además, Azure SQL Managed Instance proporciona roles de nivel de servidor (fijos o personalizados) para administrar los permisos de un servidor o una instancia. Los roles de nivel de servidor abarcan todo el servidor en su ámbito de permisos. Los principales a nivel de servidor se pueden agregar a roles de nivel de servidor.
Como procedimiento recomendado, cree roles personalizados cuando sea necesario. Agregue usuarios al rol con los privilegios mínimos necesarios para realizar su función de trabajo. No asigne permisos directamente a los usuarios. La cuenta de administrador del servidor es un miembro del rol db_owner integrado, que tiene amplios permisos y se debe conceder solo a pocos usuarios con responsabilidades administrativas. Para limitar aún más el ámbito de lo que un usuario puede hacer, se puede usar EJECUTAR COMO para especificar el contexto de ejecución del módulo llamado. Seguir estos procedimientos recomendados también es un paso fundamental para la separación de tareas.
Seguridad de nivel de fila
La seguridad de nivel de fila permite a los clientes controlar el acceso a las filas de una tabla de base de datos según las características del usuario que ejecuta una consulta (por ejemplo, la pertenencia a grupos o el contexto de ejecución). La seguridad de nivel de fila también puede utilizarse para implementar los conceptos de seguridad basados en etiquetas personalizados. Para más información, consulte Seguridad de nivel de fila.
Protección contra amenazas
Azure SQL Database e Instancia administrada de SQL protegen los datos de los clientes al proporcionar funcionalidades de auditoría y detección de amenazas.
Auditoría de SQL en los registros de Azure Monitor y Event Hubs
La auditoría de SQL Database e Instancia administrada de SQL hace un seguimiento de las actividades de la base de datos y ayuda a mantener el cumplimiento de los estándares de seguridad mediante la grabación de eventos de la base de datos en un registro de auditoría de una cuenta de almacenamiento de Azure propiedad del cliente. La auditoría permite a los usuarios supervisan las actividades de la base de datos en curso, así como analizar e investigar la actividad histórica para identificar posibles amenazas o supuestas infracciones de seguridad y abusos. Para más información, consulte la introducción a la auditoría de base de datos de SQL.
Protección contra amenazas avanzada
Advanced Threat Protection analiza los registros para detectar un comportamiento poco habitual e intentos potencialmente peligrosos de acceder o aprovechar las bases de datos. Las alertas se crean para detectar actividades sospechosas, como inyección de código SQL, infiltración potencial de datos y ataques de fuerza bruta, o anomalías en los patrones de acceso para detectar elevaciones de privilegios y uso de credenciales vulneradas. Las alertas se ven desde Microsoft Defender for Cloud, donde se proporcionan detalles de las actividades sospechosas y se dan recomendaciones para una investigación más minuciosa, junto con acciones para mitigar la amenaza. La protección contra amenazas avanzada se puede habilitar por servidor, bajo una cuota adicional. Para más información, vea Introducción a la protección de amenazas avanzadas de SQL Database.
Protección y cifrado de información
Seguridad de la capa de transporte (cifrado en tránsito)
SQL Database, SQL Managed Instance y Azure Synapse Analytics protegen los datos de los clientes mediante el cifrado de datos en movimiento con Seguridad de la capa de transporte (TLS). Las conexiones cifradas tls se aplican en todo momento. Esto garantiza que todos los datos estén cifrados en tránsito entre el cliente y el servidor.
En concreto, todas las instancias de SQL Server tienen la marca ForceEncryption de configuración establecida en Yes, administradas por estos servicios. Los clientes y controladores deben admitir conexiones cifradas para poder conectarse a cualquiera de los servicios. Por lo tanto, la versión más baja del protocolo TDS que puede conectarse es TDS 7.1.
Como procedimiento recomendado, si tiene controladores SQL compatibles con TDS 8.0, se recomienda usar el cifrado de conexión strict.
Si los controladores no admiten TDS 8.0, use el cifrado obligatorio y no confíe en el certificado de servidor. Por ejemplo, al usar el controlador ADO.NET, use Encrypt=True y TrustServerCertificate=False en la cadena de conexión para lograrlo. La cadena de conexión que obtiene de Azure Portal ya está configurada con estos valores.
Establecer el parámetro TrustServerCertificate en True debe evitarse en el uso de producción.
TrustServerCertificate=True es demasiado permisivo y no ofrece protección contra ataques de intermediario. En su lugar, si el cliente espera un nombre de dominio diferente en el certificado de servidor, use el HostNameInCertificate parámetro para proporcionar el nombre de dominio correcto para la validación.
Por ejemplo, al usar el controlador de ADO.NET para conectarse a la instancia contoso-instance.123456.database.windows.net administrada a través de un nombre contoso-instance.contoso.comde dominio personalizado, establezca los parámetros Encrypt=True de conexión y establezca HostNameInCertificate=contoso-instance.123456.database.windows.net. Esto permite al controlador validar el certificado del servidor contra un nombre de dominio de punto de conexión local de VNet esperado.
Importante
Algunos controladores que no son de Microsoft podrían no usar TLS de forma predeterminada o confiar en una versión anterior de TLS (<1.2) para funcionar. En este caso, el servidor sigue permitiendo conectarse a la base de datos. Pero recomendamos que evalúe los riesgos de seguridad de permitir que estos controladores y aplicaciones se conecten a SQL Database, especialmente si almacena datos confidenciales.
Para más información sobre TLS y conectividad, consulte Consideraciones sobre TLS.
Cifrado de datos transparente (cifrado en reposo) con claves administradas por el servicio
Cifrado de datos transparente (TDE) para Azure SQL Database, SQL Managed Instance y Azure Synapse Analytics agrega una capa de seguridad para ayudar a proteger los datos en reposo frente al acceso no autorizado o sin conexión a archivos sin formato o copias de seguridad. Los escenarios habituales incluyen el robo del centro de datos o la eliminación no segura de hardware o medios como unidades de disco y cintas de copia de seguridad. TDE cifra toda la base de datos mediante un algoritmo de cifrado de AES, lo que no requiere que los desarrolladores de aplicaciones hagan cambios en las aplicaciones existentes.
En Azure, todas las bases de datos recién creadas se cifran de forma predeterminada y la clave de cifrado de la base de datos se protege mediante un certificado de servidor integrado. El servicio administra el mantenimiento y la rotación de certificados, y no se requiere ninguna acción por parte del usuario. Los clientes que prefieren tomar el control de las claves de cifrado pueden administrar las claves en Azure Key Vault.
Cifrado de datos transparente (cifrado en reposo) con claves administradas por el cliente
Para los clientes que requieren un mayor control sobre las claves de cifrado, el cifrado de datos transparente (TDE) admite claves administradas por el cliente. Esta CMK está asociada al servidor lógico y envuelve las claves de cifrado de base de datos de todas las bases de datos gestionadas por ese servidor. Como alternativa, CMK se puede configurar en el nivel de base de datos individual. Mediante la administración de CMK, los clientes pueden controlar la rotación, la revocación y la auditoría de claves, lo que a menudo es necesario para las directivas de seguridad estrictas o de cumplimiento.
Always Encrypted y Always Encrypted con enclaves seguros (cifrado mientras se utiliza)
Always Encrypted y Always Encrypted con enclaves seguros, están diseñados para proteger los datos confidenciales almacenados en columnas de base de datos específicas del acceso (por ejemplo, números de tarjeta de crédito, números de identificación nacionales o regionales, o datos basados en la necesidad de conocer). Esto incluye a administradores de bases de datos u otros usuarios con privilegios que tengan autorización para acceder a la base de datos para realizar tareas de administración, pero que no tienen necesidades empresariales de acceder a datos específicos de las columnas cifradas. Los datos están siempre cifrados, lo que significa que los datos cifrados se descifran solo para el procesamiento por parte de las aplicaciones cliente con acceso a la clave de cifrado. La clave de cifrado nunca se expone a SQL Database ni a Instancia administrada de SQL, y se puede almacenar en el almacén de certificados de Windows o en Azure Key Vault.
Enmascaramiento de datos dinámicos
El enmascaramiento dinámico de datos limita la exposición de datos confidenciales mediante su enmascaramiento para los usuarios sin privilegios. La característica Enmascaramiento dinámico de datos detecta automáticamente datos posiblemente confidenciales en Azure SQL Database e Instancia administrada de SQL y proporciona recomendaciones accionables para enmascarar estos campos, con un impacto mínimo en la capa de aplicación. Funciona ofuscando los datos confidenciales en el conjunto de resultados de una consulta sobre campos de base de datos designados, mientras que los datos de la base de datos no cambian. Para obtener más información, vea Introducción al enmascaramiento dinámico de datos de SQL Database e Instancia administrada de SQL.
Ledger
Ledger en Azure SQL Database e Instancia administrada de SQL es una característica que proporciona una prueba criptográfica de la integridad de los datos. Con el registro de transacciones, tiene capacidades de detección de manipulación para sus datos. Puede atestiguar criptográficamente a terceros, como auditores u otras partes interesadas de la empresa, que los documentos no se han modificado.
El libro de contabilidad usa una tecnología evidente para registrar los cambios de la base de datos en un libro de contabilidad inmutable, lo que garantiza que se puedan detectar modificaciones no autorizadas. Esto es especialmente útil para escenarios que requieren cumplimiento normativo, auditabilidad y confianza entre varias partes. Al habilitar el libro de contabilidad, los clientes pueden comprobar la integridad de sus datos, lo que reduce el riesgo de fraude o manipulación de datos.
Administración de la seguridad
Evaluación de vulnerabilidades
La evaluación de vulnerabilidades es un servicio fácil de configurar que puede detectar, realizar un seguimiento y corregir posibles puntos vulnerables en la base de datos con el objetivo de mejorar de manera proactiva la seguridad general de las bases de datos. La evaluación de vulnerabilidades (VA) forma parte de la oferta Microsoft Defender para SQL, que es un paquete unificado de funcionalidades de seguridad avanzadas de SQL. Se puede acceder a la evaluación de vulnerabilidades y administrarla a través del portal central de Microsoft Defender para SQL.
Clasificación y detección de datos
La detección y clasificación de datos (actualmente en versión preliminar) proporciona funcionalidades básicas integradas en Azure SQL Database e Instancia administrada de SQL para detectar, clasificar y etiquetar los datos confidenciales en las bases de datos. Las funciones de detección y clasificación de la información confidencial más importante (empresarial, financiera, médica, personal, etc.) desempeñan un rol fundamental en el modo en que se protege la información de su organización. Puede servir como infraestructura para lo siguiente:
- Varios escenarios de seguridad, como la supervisión (auditoría) y las alertas relacionadas con accesos anómalos a información confidencial.
- Controlar el acceso y mejorar la seguridad de las bases de datos que contienen información altamente confidencial.
- Ayudar a cumplir los requisitos de cumplimiento de normas y los estándares relacionados con la privacidad de datos.
Para más información, consulte Clasificación y detección de datos.
Cumplimiento normativo
Además de las anteriores características y funcionalidades que pueden ayudar a la aplicación a cumplir distintos requisitos de seguridad, Azure SQL Database también participa en las auditorías regulares y ha obtenido la certificación de una serie de normas de cumplimiento. Para obtener más información, vea el Centro de confianza de Microsoft Azure, donde encontrará la lista más reciente de certificaciones de cumplimiento de SQL Database.