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

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 por capas de defensa en profundidad, como se muestra en la siguiente imagen, y se mueve desde el exterior hacia el centro:

Diagrama de capas de defensa en profundidad. Los datos del cliente se revisten de capas de seguridad de red, administración de acceso e información sobre amenazas.

Seguridad de las redes

Microsoft Azure SQL Database, SQL Managed Instance y Azure Synapse Analytics ofrecen 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.

Nota

El control de acceso con reglas de firewall no se aplica a Instancia administrada de SQL. Para más información sobre la configuración de red necesaria, consulte Conexión a una instancia administrada.

Administración de acceso

Importante

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 sobre este artículo, consulte Control de acceso basado en roles de Azure en Azure Portal.

Authentication

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 dos tipos de autenticación:

  • 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 de eso, pueden crearse inicios de sesión SQL y usuarios adicionales mediante el administrador del servidor, lo que permite a los usuarios conectarse usando el nombre de usuario y contraseña.

  • Autenticación de Azure Active Directory:

    la autenticación de Azure Active Directory es un mecanismo de conexión a Azure SQL Database, Instancia administrada de Azure SQL y Azure Synapse Analytics mediante identidades de Azure Active Directory (Azure AD). La autenticación de Azure AD permite a los administradores administrar centralmente 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 incluye la minimización de almacenamiento de contraseñas y permite directivas centralizadas de rotación de contraseñas.

    Debe crearse un administrador del servidor denominado Administrador de Active Directory para usar la autenticación de Azure AD con SQL Database. Para más información, consulte Usar la autenticación de Azure Active Directory para autenticación con SQL. La autenticación de Azure AD admite cuentas tanto administradas como federadas. Las cuentas federadas admiten usuarios y grupos de Windows para un dominio de cliente federado con Azure AD.

    Las opciones adicionales de autenticación de Azure AD disponibles son conexiones de autenticación universal con SQL Server Management Studio, incluidas autenticación multifactor y acceso condicional.

Importante

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 sobre este artículo, consulte Introducción al control de acceso basado en roles de Azure en Azure Portal. El control de acceso con reglas de firewall no se aplica a Instancia administrada de SQL. Para más información acerca de la configuración de red necesaria, consulte el artículo siguiente sobre cómo conectarse a una instancia administrada.

Authorization

La autorización hace referencia al control del acceso en los 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. 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.

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 hacia la separación de obligaciones.

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.

Diagrama que muestra que la seguridad de nivel de fila protege filas individuales de una base de datos SQL del acceso de los usuarios a través de una aplicación cliente.

Protección contra amenazas

SQL Database e Instancia administrada de SQL protegen los datos de los clientes al ofrecer capacidades 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 Azure Security Center, donde se proporcionan detalles de las actividades sospechosas y se dan recomendaciones para una investigación más minuciosa, junto con las 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.

Diagrama que muestra cómo la detección de amenazas de SQL supervisa el acceso a la base de datos SQL en una aplicación web por un atacante externo y una persona interna 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).

SQL Database, SQL Managed Instance y Azure Synapse Analytics aplican el cifrado (SSL/TLS) en todo momento para todas las conexiones. Esto garantiza que todos los datos se cifran "en tránsito" entre el cliente y el servidor independientemente de la configuración de Encrypt o TrustServerCertificate en la cadena de conexión.

Como procedimiento recomendado, en la cadena de conexión usada por la aplicación, especifique una conexión cifrada y no confíe en el certificado de servidor. Esto obliga a la aplicación a comprobar el certificado de servidor y, por tanto, impide que la aplicación sea vulnerable a ataques de tipo "Man in the middle".

Por ejemplo, cuando se utiliza el controlador ADO.NET, esto se logra a través de Encrypt=True y TrustServerCertificate=False. Si obtiene la cadena de conexión en Azure Portal, tendrá la configuración correcta.

Importante

Tenga en cuenta que algunos controladores que no son de Microsoft pueden no usar TLS de forma predeterminada o basarse en una versión anterior de TLS (<1.2) para poder 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 obtener información adicional sobre TLS y la conectividad, vea Consideraciones de TLS

Cifrado de datos transparente (cifrado en reposo)

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.

Administración de claves con Azure Key Vault

La compatibilidad de Bring Your Own Key (BYOK) con el  Cifrado de datos transparente (TDE) permite a los clientes asumir la propiedad de la administración y la rotación de claves mediante  Azure Key Vault, el sistema externo de administración de claves basado en la nube de Azure. Si se revoca el acceso de la base de datos al almacén de claves, una base de datos no se puede descifrar y leer en la memoria. Azure Key Vault ofrece una plataforma de administración central de claves, aprovecha los módulos de seguridad de hardware (HSM) extremadamente supervisados y permite la separación de obligaciones entre la administración de claves y los datos para ayudar a cumplir los requisitos de cumplimiento de seguridad.

Always Encrypted (cifrado en uso)

Diagrama que muestra los aspectos básicos de la característica Always Encrypted. Solo las aplicaciones que contengan una clave pueden acceder a las bases de datos SQL con bloqueo.

Always Encrypted es una característica creada para proteger la información confidencial almacenada en columnas específicas de bases de datos (por ejemplo, números de tarjeta de crédito, números de identificación nacional o datos según la necesidad de conocimiento). 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

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

El enmascaramiento dinámico de datos limita la exposición de información confidencial ocultándolos a 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. Su funcionamiento consiste en ocultar los datos confidenciales del conjunto de resultados de una consulta en los campos designados de la base de datos, 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.

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 Azure Defender for 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 Azure Defender for SQL.

Clasificación y detección de datos

La clasificación y detección de datos (actualmente en versión preliminar) proporciona capacidades básicas integradas en Azure SQL Database y SQL Managed Instance para detectar, clasificar y etiquetar los datos confidenciales de 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.

Pasos siguientes