Información general sobre las funcionalidades de seguridad de Azure SQL DatabaseAn overview of Azure SQL Database security capabilities

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.This article outlines the basics of securing the data tier of an application using Azure SQL Database. 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:The security strategy described follows the layered defense-in-depth approach as shown in the picture below, and moves from the outside in:

sql-security-layer.png

Seguridad de las redesNetwork security

Microsoft Azure SQL Database ofrece un servicio de base de datos relacional para la nube y aplicaciones empresariales.Microsoft Azure SQL Database provides a relational database service for cloud and enterprise applications. Para ayudar a proteger los datos del cliente, los firewalls impiden el acceso de red al servidor de base de datos hasta que se concede explícitamente el acceso según la dirección IP o el origen del tráfico de red virtual de Azure.To help protect customer data, firewalls prevent network access to the database server until access is explicitly granted based on IP address or Azure Virtual network traffic origin.

Reglas de firewall de IPIP firewall rules

Las reglas de firewall de IP otorgan acceso a las bases de datos según la dirección IP de origen de cada solicitud.IP firewall rules grant access to databases based on the originating IP address of each request. Para más información, consulte Reglas de firewall de Azure SQL Database y SQL Data Warehouse.For more information, see Overview of Azure SQL Database and SQL Data Warehouse firewall rules.

Reglas de firewall de red virtualVirtual network firewall rules

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.Virtual network service endpoints extend your virtual network connectivity over the Azure backbone and enable Azure SQL Database to identify the virtual network subnet that traffic originates from. 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.To allow traffic to reach Azure SQL Database, use the SQL service tags to allow outbound traffic through Network Security Groups.

Las reglas de red virtual permiten que Azure SQL Database solo acepte comunicaciones que se envían desde subredes seleccionadas en una red virtual.Virtual network rules enable Azure SQL Database to only accept communications that are sent from selected subnets inside a virtual network.

Nota

El control de acceso con reglas de firewall no se aplica a una instancia administrada.Controlling access with firewall rules does not apply to a managed instance. Para más información sobre la configuración de red necesaria, consulte conexión a una instancia administradaFor more information about the networking configuration needed, see connecting to a managed instance

administración de accesoAccess management

Importante

La administración de bases de datos y servidores de bases de datos en Azure se controla mediante las asignaciones de roles de su cuenta de usuario del portal.Managing databases and database servers within Azure is controlled by your portal user account's role assignments. Para obtener más información sobre este artículo, consulte Introducción al control de acceso basado en roles en Azure Portal.For more information on this article, see Role-based access control in Azure portal.

AuthenticationAuthentication

La autenticación es el proceso por el cual se demuestra que el usuario es quien dice ser.Authentication is the process of proving the user is who they claim to be. Azure SQL Database admite dos tipos de autenticación:Azure SQL Database supports two types of authentication:

  • Autenticación de SQL:SQL authentication:

    La autenticación de SQL Database hace referencia a la autenticación de un usuario al conectarse a Azure SQL Database con el nombre de usuario y la contraseña.SQL database authentication refers to the authentication of a user when connecting to Azure SQL Database using username and password. Durante la creación del servidor de base de datos para la base de datos, se debe especificar un inicio de sesión de "administrador del servidor" con un nombre de usuario y contraseña.During the database server creation for the database, a "Server admin" login with a username and password must be specified. Con estas credenciales, un "administrador del servidor" puede autenticarse en cualquier base de datos en ese servidor de base de datos como propietario de la base de datos.Using these credentials, a “server admin” can authenticate to any database on that database server as the database owner. 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.After that, additional SQL logins and users can be created by the server admin, which enable users to connect using username and password.

  • Autenticación de Azure Active Directory:Azure Active Directory authentication:

    La autenticación de Azure Active Directory es un mecanismo de conexión a Azure SQL Database y SQL Data Warehouse mediante identidades de Azure Active Directory (AD).Azure Active Directory authentication is a mechanism of connecting to Azure SQL Database and SQL Data Warehouse by using identities in 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 Microsoft, en una ubicación central.Azure AD authentication allows administrators to centrally manage the identities and permissions of database users along with other Microsoft services in one central location. Esto incluye la minimización de almacenamiento de contraseñas y permite directivas centralizadas de rotación de contraseñas.This includes the minimization of password storage and enables centralized password rotation policies.

    Debe crearse un administrador del servidor denominado Administrador de Active Directory para usar la autenticación de Azure AD con SQL Database.A server admin called the Active Directory administrator must be created to use Azure AD authentication with SQL Database. Para más información, consulte Usar la autenticación de Azure Active Directory para autenticación con SQL.For more information, see Connecting to SQL Database By Using Azure Active Directory Authentication. La autenticación de Azure AD admite cuentas tanto administradas como federadas.Azure AD authentication supports both managed and federated accounts. Las cuentas federadas admiten usuarios y grupos de Windows para un dominio de cliente federado con Azure AD.The federated accounts support Windows users and groups for a customer domain federated with 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.Additional Azure AD authentication options available are Active Directory Universal Authentication for SQL Server Management Studio connections including Multi-Factor Authentication and Conditional Access.

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.Managing databases and servers within Azure is controlled by your portal user account's role assignments. Para obtener más información sobre este artículo, consulte Introducción al control de acceso basado en roles en Azure Portal.For more information on this article, see Role-based access control in Azure portal. El control de acceso con reglas de firewall no se aplica a una instancia administrada.Controlling access with firewall rules does not apply to a managed instance. 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.Please see the following article on connecting to a managed instance for more information about the networking configuration needed.

AuthorizationAuthorization

Autorización hace referencia a los permisos asignados a un usuario dentro de una base de datos de Azure SQL, y determina qué puede hacer el usuario.Authorization refers to the permissions assigned to a user within an Azure SQL Database, and determines what the user is allowed to do. Los permisos se controlan 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 o concediendo al usuario determinados permisos de nivel de objeto.Permissions are controlled by adding user accounts to database roles and assigning database-level permissions to those roles or by granting the user certain object-level permissions. Para más información, consulte Inicios de sesión y usuarios.For more information, see Logins and users

Como procedimiento recomendado, cree roles personalizados cuando sea necesario.As a best practice, create custom roles when needed. Agregue usuarios al rol con los privilegios mínimos necesarios para realizar su función de trabajo.Add users to the role with the least privileges required to do their job function. No asigne permisos directamente a los usuarios.Do not assign permissions directly to users. 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.The server admin account is a member of the built-in db_owner role, which has extensive permissions and should only be granted to few users with administrative duties. Para las aplicaciones de Azure SQL Database, use EXECUTE AS para especificar el contexto de ejecución del módulo llamado o use roles de aplicación con permisos limitados.For Azure SQL Database applications, use the EXECUTE AS to specify the execution context of the called module or use Application Roles with limited permissions. Esta práctica garantiza que la aplicación que se conecta a la base de datos tenga los privilegios mínimos necesarios para la aplicación.This practice ensures that the application that connects to the database has the least privileges needed by the application. Seguir estos procedimientos recomendados también fomenta la separación de responsabilidades.Following these best practices also fosters separation of duties.

Seguridad de nivel de filaRow-level security

La seguridad de nivel de fila permite a los clientes 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 (como, por ejemplo, la pertenencia a un grupo o el contexto de ejecución).Row-Level Security enables customers to control access to rows in a database table based on the characteristics of the user executing a query (for example, group membership or execution context). La seguridad de nivel de fila también puede utilizarse para implementar los conceptos de seguridad basados en etiquetas personalizados.Row-Level Security can also be used to implement custom Label-based security concepts. Para más información, consulte Seguridad de nivel de fila.For more information, see Row-Level security.

azure-database-rls.png

Protección contra amenazasThreat protection

SQL Database protege los datos de los clientes al ofrecer capacidades de auditoría y detección de amenazas.SQL Database secures customer data by providing auditing and threat detection capabilities.

Auditoría de SQL en los registros de Azure Monitor y Event HubsSQL auditing in Azure Monitor logs and Event Hubs

SQL Database Auditing 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 en una cuenta de Azure Storage propiedad del cliente.SQL Database auditing tracks database activities and helps to maintain compliance with security standards by recording database events to an audit log in a customer-owned Azure storage account. 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.Auditing allows users to monitor ongoing database activities, as well as analyze and investigate historical activity to identify potential threats or suspected abuse and security violations. Para más información, consulte la introducción a la auditoría de base de datos de SQL.For more information, see Get started with SQL Database Auditing.

Protección contra amenazas avanzadaAdvanced Threat Protection

La protección contra amenazas avanzada es el análisis de registros de SQL Server para detectar un comportamiento poco habitual e intentos potencialmente peligrosos de acceder o aprovechar las bases de datos.Advanced Threat Protection is analyzing your SQL Server logs to detect unusual behavior and potentially harmful attempts to access or exploit databases. 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.Alerts are created for suspicious activities such as SQL injection, potential data infiltration, and brute force attacks or for anomalies in access patterns to catch privilege escalations and breached credentials use. 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.Alerts are viewed from the Azure Security Center, where the details of the suspicious activities are provided and recommendations for further investigation given along with actions to mitigate the threat. La protección contra amenazas avanzada se puede habilitar por servidor, bajo una cuota adicional.Advanced Threat Protection can be enabled per server for an additional fee. Para más información, vea Introducción a la protección de amenazas avanzadas de SQL Database.For more information, see Get started with SQL Database Advanced Threat Protection.

azure-database-td.jpg

Protección y cifrado de informaciónInformation protection and encryption

Seguridad de la capa de transporte (TLS) (cifrado en tránsito)Transport Layer Security TLS (Encryption-in-transit)

SQL Database protege los datos de los clientes mediante el cifrado de datos en movimiento con Seguridad de la capa de transporte.SQL Database secures customer data by encrypting data in motion with Transport Layer Security.

SQL Server aplica el cifrado (SSL/TLS) en todo momento para todas las conexiones.Sql Server enforces encryption (SSL/TLS) at all times for all connections. 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.This ensures all data is encrypted "in transit" between the client and server irrespective of the setting of Encrypt or TrustServerCertificate in the connection string.

Como procedimiento recomendado, le sugerimos que en la cadena de conexión de la aplicación especifique una conexión cifrada y no confíe en el certificado de servidor.As a best practice, recommend that in your application's connection string you specify an encrypted connection and not trust the server certificate. 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".This forces your application to verify the server certificate and thus prevents your application from being vulnerable to man in the middle type attacks.

Por ejemplo, cuando se utiliza el controlador ADO.NET, esto se logra a través de Encrypt=True y TrustServerCertificate=False.For example when using the ADO.NET driver this is accomplished via Encrypt=True and TrustServerCertificate=False. Si obtiene la cadena de conexión en Azure Portal, tendrá la configuración correcta.If you obtain your connection string from the Azure portal, it will have the correct settings.

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.Note that some non-Microsoft drivers may not use TLS by default or rely on an older version of TLS (<1.2) in order to function. En este caso, SQL Server sigue permitiendo conectarse a la base de datos.In this case SQL Server still allows you to connect to your database. 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.However, we recommend that you evaluate the security risks of allowing such drivers and application to connect to SQL Database, especially if you store sensitive data.

Para obtener información adicional sobre TLS y la conectividad, vea Consideraciones de TLSFor further information about TLS and connectivity, see TLS considerations

Cifrado de datos transparente (cifrado en reposo)Transparent Data Encryption (Encryption-at-rest)

Cifrado de datos transparente (TDE) para Azure SQL Database 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.Transparent Data Encryption (TDE) for Azure SQL Database adds a layer of security to help protect data at rest from unauthorized or offline access to raw files or backups. Entre los escenarios habituales se 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.Common scenarios include datacenter theft or unsecured disposal of hardware or media such as disk drives and backup tapes. 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. TDE encrypts the entire database using an AES encryption algorithm, which doesn’t require application developers to make any changes to existing applications.

En Azure, todas las bases de datos SQL 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.In Azure, all newly created SQL databases are encrypted by default and the database encryption key is protected by a built-in server certificate. El servicio administra el mantenimiento y la rotación de certificados, y no se requiere ninguna acción por parte del usuario.Certificate maintenance and rotation are managed by the service and requires no input from the user. Los clientes que prefieren tomar el control de las claves de cifrado pueden administrar las claves en Azure Key Vault.Customers who prefer to take control of the encryption keys can manage the keys in Azure Key Vault.

Administración de claves con Azure Key VaultKey management with Azure Key Vault

La compatibilidad de Bring Your Own Key (BYOK) para  Cifrado de datos transparente (TDE) permite a los clientes apropiarse de la administración y la rotación de claves con  Azure Key Vault, el sistema externo de administración de claves basado en la nube de Azure.Bring Your Own Key (BYOK) support for Transparent Data Encryption (TDE) allows customers to take ownership of key management and rotation using Azure Key Vault, Azure’s cloud-based external key management system. 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.If the database's access to the key vault is revoked, a database cannot be decrypted and read into memory. 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.Azure Key Vault provides a central key management platform, leverages tightly monitored hardware security modules (HSMs), and enables separation of duties between management of keys and data to help meet security compliance requirements.

Always Encrypted (cifrado en uso)Always Encrypted (Encryption-in-use)

azure-database-ae.png

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).Always Encrypted is a feature designed to protect sensitive data stored in specific database columns from access (for example, credit card numbers, national identification numbers, or data on a need to know basis). 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.This includes database administrators or other privileged users who are authorized to access the database to perform management tasks, but have no business need to access the particular data in the encrypted columns. 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.The data is always encrypted, which means the encrypted data is decrypted only for processing by client applications with access to the encryption key. La clave de cifrado nunca se expone a SQL y se pueden almacenar en el almacén de certificados de Windows o en Azure Key Vault.The encryption key is never exposed to SQL and can be stored either in the Windows Certificate Store or in Azure Key Vault.

Enmascaramiento de datos dinámicosDynamic data masking

azure-database-ddm.png

El enmascaramiento dinámico de datos de SQL Database limita la exposición de información confidencial mediante su enmascaramiento a los usuarios sin privilegios.SQL Database dynamic data masking limits sensitive data exposure by masking it to non-privileged users. La característica Enmascaramiento dinámico de datos detecta automáticamente información potencialmente confidencial en Azure SQL Database y proporciona recomendaciones accionables para enmascarar estos campos, con un impacto mínimo en el nivel de aplicación.Dynamic data masking automatically discovers potentially sensitive data in Azure SQL Database and provides actionable recommendations to mask these fields, with minimal impact on the application layer. 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.It works by obfuscating the sensitive data in the result set of a query over designated database fields, while the data in the database is not changed. Para más información, consulte Enmascaramiento dinámico de datos de SQL Database.For more information, see Get started with SQL Database dynamic data masking.

Administración de la seguridadSecurity management

Evaluación de vulnerabilidadesVulnerability assessment

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.Vulnerability assessment is an easy to configure service that can discover, track, and help remediate potential database vulnerabilities with the goal to proactively improve overall database security. La evaluación de vulnerabilidades (VA) forma parte de la oferta de Advanced Data Security (ADS), que es un paquete unificado para funcionalidades avanzadas de seguridad de SQL.Vulnerability assessment (VA) is part of the advanced data security (ADS) offering, which is a unified package for advanced SQL security capabilities. Puede acceder a la evaluación de vulnerabilidades y administrarla a través del portal central de ADS de SQL.Vulnerability assessment can be accessed and managed via the central SQL ADS portal.

Clasificación y detección de datosData discovery & classification

La clasificación y detección de datos (actualmente en su versión preliminar) proporciona funcionalidades avanzadas integradas en Azure SQL Database para detectar, clasificar, etiquetar y proteger la información confidencial de las bases de datos.Data discovery & classification (currently in preview) provides advanced capabilities built into Azure SQL Database for discovering, classifying, labeling, and protecting the sensitive data in your databases. 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.Discovering and classifying your utmost sensitive data (business/financial, healthcare, personal data, etc.) can play a pivotal role in your organizational Information protection stature. Puede servir como infraestructura para:It can serve as infrastructure for:

  • Varios escenarios de seguridad, como la supervisión (auditoría) y las alertas relacionadas con accesos anómalos a información confidencial.Various security scenarios, such as monitoring (auditing) and alerting on anomalous access to sensitive data.
  • Controlar el acceso y mejorar la seguridad de las bases de datos que contienen información altamente confidencial.Controlling access to, and hardening the security of, databases containing highly sensitive data.
  • Ayudar a cumplir los requisitos de cumplimiento de normas y los estándares relacionados con la privacidad de datos.Helping meet data privacy standards and regulatory compliance requirements.

Para más información, consulte Clasificación y detección de datos de Azure SQL Database.For more information, see Get started with data discovery & classification.

Cumplimiento normativoCompliance

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.In addition to the above features and functionality that can help your application meet various security requirements, Azure SQL Database also participates in regular audits, and has been certified against a number of compliance standards. 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.For more information, see the Microsoft Azure Trust Center where you can find the most current list of SQL Database compliance certifications.

Pasos siguientesNext steps