Compartir a través de


Información general sobre las capacidades de seguridad de Azure SQL Database e Instancia administrada de SQL

Se aplica a:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

En este artículo se describen los conceptos básicos de la protección del nivel de datos de una aplicación que usa Azure SQL Database, Azure SQL Managed Instance y Azure Synapse Analytics. La estrategia de seguridad descrita en este artículo sigue el enfoque de defensa en profundidad y en capas, como se muestra en el diagrama siguiente, y se mueve del exterior hacia adentro.

Diagrama de defensa en capas en profundidad. Los datos de los clientes se encapsulan en capas de seguridad de red, administración de acceso y protecciones de amenazas e información.

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 de los clientes, los firewalls impiden el acceso de red al servidor hasta que se conceda explícitamente acceso en función de 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 e Instancia Administrada de SQL admiten la autenticación con Microsoft Entra ID (anteriormente Azure Active Directory) y la autenticación de 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. Esta característica puede ayudar a eliminar el uso de secretos y contraseñas.

    Para usar la autenticación de Microsoft Entra con SQL Database, cree un administrador de servidor llamado administrador de Microsoft Entra. 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 entidades de seguridad de Microsoft Entra, transforme el tenant de Microsoft Entra en un realm de Kerberos independiente y establezca 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 mediante un nombre de usuario y una contraseña. Debe especificar un inicio de sesión de administrador del servidor con un nombre de usuario y una contraseña al crear el servidor. 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 un nombre de usuario y una 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. Puede asignar permisos a un usuario dentro de una base de datos en Azure SQL Database o Instancia administrada de Azure SQL. Las asignaciones de roles de la cuenta de usuario del portal controlan la administración de bases de datos y servidores dentro de Azure. Para obtener más información, vea Control de acceso basado en rol de Azure en Azure Portal.

Administre los permisos agregando cuentas de usuario a roles de base de datos y asignando permisos de nivel de base de datos a esos roles. Como alternativa, conceda 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 una instancia. Los roles de nivel de servidor tienen ámbito de permisos para todo el servidor. Pueden agregar principales de nivel de servidor 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 miembro del rol integrado de db_owner, que tiene permisos amplios y solo debe concederse a algunos usuarios con tareas administrativas. Para limitar aún más el ámbito de lo que un usuario puede hacer, use EXECUTE AS 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

Row-Level Seguridad permite controlar el acceso a las filas de una tabla de base de datos en función de las características del usuario que ejecuta una consulta (por ejemplo, pertenencia a grupos o contexto de ejecución). Use Row-Level Security para implementar conceptos de seguridad personalizados basados en etiquetas. Para más información, consulte Seguridad de nivel de fila.

Diagrama que muestra que Row-Level Security protege filas individuales de una base de datos SQL desde el acceso de los usuarios a través de una aplicación cliente.

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 le permite supervisar las actividades de base de datos en curso, así como analizar e investigar la actividad histórica para identificar posibles amenazas o sospechas de abuso y infracciones de seguridad. 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 comportamientos inusuales y intentos potencialmente dañinos de acceder a las bases de datos o aprovecharlas. Crea alertas para actividades sospechosas, como inyección de código SQL, posibles infiltraciones de datos y ataques por fuerza bruta o anomalías en los patrones de acceso para detectar escalaciones de privilegios y uso de credenciales vulneradas. Puede ver las alertas de Microsoft Defender for Cloud, donde se proporcionan los detalles de las actividades sospechosas y las recomendaciones para una investigación más detallada, junto con acciones para mitigar la amenaza. Puede habilitar Advanced Threat Protection por servidor por una tarifa adicional. Para más información, vea Introducción a la protección de amenazas avanzadas de SQL Database.

Diagrama que muestra el acceso de supervisión de detección de amenazas de SQL a la base de datos SQL para una aplicación web desde un atacante externo y un usuario interno malintencionado.

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). Estos servicios siempre aplican conexiones cifradas TLS para asegurarse de que todos los datos se cifran en tránsito entre el cliente y el servidor.

En concreto, SQL Database, SQL Managed Instance y Azure Synapse Analytics establecen la marca ForceEncryptionYesde configuración en . Los clientes y controladores deben admitir conexiones cifradas para conectarse a estos servicios. 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, use cifrado estricto de conexión.

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.

Evite establecer el parámetro TrustServerCertificateTrue en en uso de producción. TrustServerCertificate=True es demasiado permisivo y no brinda 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 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. Esta configuración permite al controlador validar el certificado de servidor contra el nombre de dominio de un punto de conexión VNet-local esperado.

Importante

Es posible que algunos controladores que no sean de Microsoft no usen TLS de forma predeterminada o que dependan de una versión anterior de TLS (anterior a la 1.2) para funcionar. En este caso, el servidor todavía le permite conectarse a la base de datos. Sin embargo, 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 AES, que no requiere que los desarrolladores de aplicaciones realicen ningún cambio 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 requiere ninguna entrada del usuario. Si prefiere tomar el control de las claves de cifrado, puede administrar las claves en Azure Key Vault.

Cifrado de datos transparente (cifrado en reposo) con claves administradas por el cliente

Si necesita un mayor control sobre las claves de cifrado, el cifrado de datos transparente (TDE) admite claves administradas por el cliente (CMK). Esta CMK está asociada al servidor lógico y encapsula las claves de cifrado de base de datos para todas las bases de datos de ese servidor. Como alternativa, puede configurar una CMK en el nivel de base de datos individual. Mediante la administración de CMK, puede controlar la rotación de claves, la revocación y la auditoría, lo que suele ser necesario para las directivas de seguridad estrictas o de cumplimiento.

Always Encrypted y Always Encrypted con enclaves seguros (cifrado mientras se utiliza)

Diagrama que muestra los conceptos básicos de la característica Always Encrypted. Una base de datos SQL con un bloqueo solo tiene acceso a una aplicación que contiene una clave.

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). Esta protección incluye administradores de bases de datos u otros usuarios con privilegios autorizados para acceder a la base de datos para realizar tareas de administración, pero no tienen necesidad empresarial de acceder a los datos concretos 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

Diagrama que muestra el enmascaramiento dinámico de datos. Una aplicación empresarial envía datos a una base de datos SQL que enmascara los datos antes de devolverlos a la aplicación empresarial.

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. Esta característica es especialmente útil para escenarios que requieren cumplimiento normativo, auditabilidad y confianza entre varias partes. Al habilitar el libro de contabilidad, puede comprobar la integridad de los 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. 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 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. Descubrir y clasificar sus datos más confidenciales (negocio, financiero, sanitario, datos personales, etc.) desempeña un papel fundamental en la estatura de la protección de la información de la organización. Actúa como infraestructura para:

  • 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 características y funcionalidades que ayudan a la aplicación a cumplir varios requisitos de seguridad, Azure SQL Database también participa en auditorías periódicas. Se ha certificado con una serie de estándares 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.