Protección de los datos
Una vez que el acceso a la red y la identidad estén configurados y seguros, debe tener en cuenta cómo proteger los datos, si están en reposo, en movimiento o si los usuarios y los administradores los están viendo.
Cifrado de datos
Azure SQL Database impone las conexiones cifradas, con la opción de especificar además la versión mínima necesaria de la Seguridad de la capa de transporte (TLS) de entrada (>1.0, >1.1 o >1.2). Se recomienda forzar el cifrado en el cliente para evitar la negociación del servidor y no confiar en el certificado de servidor como procedimiento recomendado.
Cifrado de datos transparente
El Cifrado de datos transparente (TDE) proporciona cifrado de datos en reposo y está activado de forma predeterminada para todas las nuevas bases de datos de Azure SQL Database. Se puede configurar para todas las opciones de implementación con un modificador en Azure Portal, como se muestra aquí:
En el nivel de servidor, también puede optar por usar una clave administrada por el servicio o usar Bring Your Own Key (BYOK) mediante la opción Clave administrada por el cliente. El valor predeterminado es permitir al servicio de Azure administrar su clave. Azure genera una clave automáticamente para cifrar sus bases de datos y administrar las rotaciones de clave. Ha aprendido a hacerlo con Azure Portal, pero también puede usar Azure PowerShell, la CLI de Azure, Transact-SQL (T-SQL) o las API de REST.
Claves administradas por el cliente con TDE
También puede usar BYOK y aprovechar las ventajas de un almacén de claves de Azure. Las ventajas de usar claves administradas por el cliente son:
- Control completo y pormenorizado del uso y de la administración del protector de TDE;
- Transparencia del uso del protector de TDE;
- Capacidad de implementar la separación de tareas en la administración de claves y datos en la organización
- El administrador del almacén de claves puede revocar los permisos de acceso de las claves para hacer que la base de datos cifrada sea inaccesible
- Administración central de claves en AKV;
- Mayor confianza de los clientes finales, ya que AKV está diseñado de forma que Microsoft no puede ver ni extraer claves de cifrado
También puede aprovechar el uso de una identidad administrada asignada por el usuario (UMI) con claves administradas por el cliente para TDE, que:
- Permite autorizar previamente el acceso al almacén de claves para servidores lógicos de Azure SQL creando una identidad administrada asignada por el usuario y concediéndole acceso al almacén de claves, incluso antes de que se haya creado el servidor o la base de datos.
- Permite la creación de un servidor lógico de Azure SQL con TDE y CMK habilitados.
- Permite asignar la misma identidad administrada asignada por el usuario a varios servidores, lo que elimina la necesidad de activar individualmente la identidad administrada asignada por el sistema para cada servidor lógico de Azure SQL y proporcionarle acceso al almacén de claves.
- Proporciona la capacidad de aplicar CMK en tiempo de creación del servidor con una directiva de Azure integrada disponible.
Se ha introducido la rotación automática de claves para las claves administradas por el cliente mediante TDE. Cuando se habilita, el servidor comprueba continuamente el almacén de claves para ver las nuevas versiones de la clave que se usan como protector de TDE. Si se detecta una nueva versión de la clave, el protector de TDE del servidor se rota automáticamente a la versión de clave más reciente en un plazo de 60 minutos.
Always Encrypted
También puede aprovechar el cifrado de nivel de columna, que es compatible con Azure SQL igual que en SQL Server. Este proceso implica usar el cifrado del lado cliente de la información confidencial, el cual usa claves que nunca se proporcionan al sistema de base de datos. Además, el controlador cliente cifra de forma transparente los parámetros de consulta y descifra los resultados cifrados. Actualmente se admiten datos cifrados para la comparación de igualdad, que incluye los operadores JOIN
, GROUP BY
y DISTINCT
mediante cifrado determinista.
Always Encrypted con enclaves seguros amplía las funciones de computación confidenciales de Always Encrypted mediante la habilitación del cifrado en contexto y consultas confidenciales más enriquecidas. La característica Always Encrypted con enclaves seguros ya está disponible para Azure SQL Database, pero todavía no se admite en Azure SQL Managed Instance.
Enmascaramiento dinámico de datos
En algunas ocasiones, habrá ciertos datos que querrá enmascarar o modificar para que los usuarios sin privilegios no puedan verlos, pero aun así pueden realizar consultas que incluyan dichos datos. Esta funcionalidad se admite igual que en SQL Server, pero hay funciones y vistas adicionales en Azure Portal que permiten ver recomendaciones sobre los campos que se deben enmascarar.
Echemos un vistazo a un ejemplo en el que los datos incluyen información confidencial, como nombres y direcciones de correo electrónico. Puede aplicar una máscara a esas columnas de Azure Portal seleccionando el menú Enmascaramiento dinámico de datos en Seguridad en el panel de configuración de SQL Database o mediante los siguientes comandos de T-SQL:
ALTER TABLE Data.Membership ALTER COLUMN FirstName
ADD MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)')
ALTER TABLE Data.Membership ALTER COLUMN Email
ADD MASKED WITH (FUNCTION = 'email()')
ALTER TABLE Data.Membership ALTER COLUMN DiscountCode
ADD MASKED WITH (FUNCTION = 'random(1, 100)')
GRANT UNMASK to DataOfficers
En los comandos anteriores, puede ver que hay varias formas de aplicar máscaras a través de las funciones.
Por ejemplo, si se asignan a un rol como DataOfficers (esto es tan solo un ejemplo, no un rol oficial), puede que algunos usuarios necesiten ver los datos enmascarados. Se les puede dar privilegios de UNMASK
con el siguiente comando T-SQL:
GRANT UNMASK TO DataOfficers
En función de quién realice la consulta, los resultados serían los siguientes:
Con la introducción de los permisos de enmascaramiento de datos dinámicos pormenorizados, puede conceder o revocar el permiso UNMASK
en el nivel de base de datos, el nivel de esquema, el nivel de tabla o el nivel de columna a un usuario de base de datos, identidad de Microsoft Entra, grupo de Microsoft Entra o rol de base de datos.
Tareas de protección de datos
Para instalar y configurar la protección de datos, debe:
- Asegúrese de que las aplicaciones fuerzan el cifrado de conexión y usan la versión de TLS más alta compatible con la aplicación, los clientes y los controladores.
- Evaluar y habilitar el TDE. Este es el valor predeterminado para las nuevas bases de datos, pero si migra una, es posible que tenga que habilitarlo.
- Aprovechar las ventajas del Enmascaramiento dinámico de datos.
- Configurar Always Encrypted con enclaves seguros para una protección avanzada.