El temario oficial actual de DP-900 no incluye la seguridad como un elemento aparte. Sin embargo, las unidades de Microsoft Learn sobre Azure SQL, Azure Storage y Azure Cosmos DB presentan funciones de seguridad como el cifrado, Microsoft Defender for SQL, la auditoría y la autenticación con Microsoft Entra ID, y los bancos de preguntas de práctica y los materiales antiguos siguen preguntando por las reglas de firewall de SQL, el enmascaramiento dinámico de datos y Always Encrypted. La seguridad no pesa mucho en el examen, pero este artículo reúne lo básico para que esas preguntas no te hagan tropezar.
Este artículo es un complemento de Tipos de instrucciones SQL de nuestra serie de estudio de DP-900. Amplía el tema del control de acceso que empezó allí con DCL (GRANT y REVOKE) y recorre, en este orden, los tres estados de los datos, la defensa por capas, las funciones de seguridad de Azure SQL Database, y la autenticación y el cifrado en Azure Storage y Cosmos DB.
---
Los tres estados de los datos y cómo protegerlos
Piensa en cómo se protege el dinero en efectivo. Se vigila de una forma en la caja fuerte, de otra en el furgón blindado y de otra mientras se cuenta en la caja registradora. Los datos también tienen tres estados, en reposo, en tránsito y en uso, y cada uno necesita una protección distinta.
| Estado | Significado | Protección en Azure | |------|------|------| | En reposo (at rest) | Datos guardados en discos y copias de seguridad | TDE en Azure SQL, cifrado del servicio de Azure Storage (SSE), cifrado predeterminado de Cosmos DB | | En tránsito (in transit) | Datos que viajan por la red | TLS (HTTPS), la opción de transferencia segura obligatoria en las cuentas de almacenamiento | | En uso (in use) | Datos que se consultan o procesan | Always Encrypted (incluidos los enclaves seguros); enmascaramiento dinámico de datos para limitar la exposición |
La mayoría de los servicios de datos de Azure tienen el cifrado en reposo activado de forma predeterminada. Azure Storage aplica cifrado AES de 256 bits a todas las cuentas de almacenamiento y no se puede desactivar, y Cosmos DB también cifra los datos en reposo de forma predeterminada.
Consejo para el examen: "Cifrar los archivos de base de datos y las copias de seguridad en disco sin cambiar la aplicación" → TDE (en reposo). "Proteger los datos que viajan por la red" → TLS (en tránsito).
---
Bloquear capa a capa: defensa en profundidad
Para entrar en un castillo hay que cruzar el foso, identificarse en la puerta y solo se puede entrar en las salas permitidas. Si una capa cae, la siguiente aguanta; este enfoque se llama defensa en profundidad. Una solicitud que quiere llegar a los datos atraviesa por turnos las capas de red, autenticación, autorización y protección de datos.
!Capas de seguridad que cruza una solicitud hasta los datos
| Capa | Pregunta que se hace | Funciones típicas | |------|------|------| | Red | ¿Desde dónde llega la conexión? | Reglas de firewall, redes virtuales, puntos de conexión privados | | Autenticación | ¿Quién eres? | Microsoft Entra ID, autenticación SQL, claves de acceso | | Autorización | ¿Qué puedes hacer? | RBAC de Azure, GRANT/DENY/REVOKE, SAS, ACL | | Protección de datos | ¿Cómo se protegen los propios datos? | TDE, TLS, Always Encrypted, enmascaramiento dinámico de datos | | Supervisión | ¿Ha pasado algo extraño? | Auditoría, Microsoft Defender for SQL y for Storage |
Dos principios se aplican en todas las capas. El privilegio mínimo consiste en conceder solo los permisos que el trabajo necesita de verdad. Confianza cero (Zero Trust) sigue tres principios, "verificar explícitamente, usar acceso con privilegios mínimos y asumir que hay una brecha", para que ni siquiera la red interna se considere de confianza automáticamente.
Consejo para el examen: "Dar al autor de informes solo permiso de lectura" → privilegio mínimo. "Proteger con varias capas en lugar de depender de un solo control de seguridad" → defensa en profundidad.
---
Seguridad de Azure SQL Database
Reglas de firewall: nivel de servidor vs nivel de base de datos
Cuando creas un servidor lógico nuevo, su firewall de nivel de servidor bloquea todas las conexiones al punto de conexión público. Solo puedes conectarte después de añadir reglas para los intervalos de direcciones IP que quieres permitir.
| Aspecto | Reglas de firewall de IP de nivel de servidor | Reglas de firewall de IP de nivel de base de datos | |------|------|------| | Alcance | Todas las bases de datos del servidor lógico | Una base de datos concreta | | Cómo se configuran | Azure Portal, PowerShell, T-SQL | Solo con T-SQL (sp_set_database_firewall_rule) | | Dónde se guardan | La base de datos master | La propia base de datos | | Orden de evaluación | Cuando no coincide ninguna regla de nivel de base de datos | Se comprueban primero |
Activar la opción "Permitir que los servicios y recursos de Azure accedan a este servidor" permite las conexiones desde otros servicios de Azure y cuenta como una sola regla de firewall del servidor. Para no pasar en absoluto por internet pública, usa reglas de red virtual o puntos de conexión privados.
Autenticación y funciones de protección de datos
Azure SQL admite tanto la autenticación SQL, en la que inicias sesión con nombre de usuario y contraseña, como la autenticación de Microsoft Entra, que administra de forma centralizada las cuentas de la organización y admite el inicio de sesión único. Además, las siguientes funciones protegen los datos.
| Función | Qué hace | Qué recordar | |------|------|------| | TDE (cifrado de datos transparente) | Cifra en tiempo real en reposo la base de datos, las copias de seguridad y el registro de transacciones | Activado por defecto en las bases de datos nuevas de Azure SQL; sin cambios en la aplicación | | Always Encrypted | El controlador del cliente cifra las columnas confidenciales antes de enviarlas | Las claves nunca se exponen al motor de base de datos, así que ni los DBA ven el texto sin cifrar | | Enmascaramiento dinámico de datos | Oculta los valores confidenciales en los resultados de las consultas para usuarios sin privilegios | Los datos almacenados no cambian | | Seguridad de nivel de fila | Limita qué filas puede ver cada usuario | Por ejemplo, cada comercial solo ve los clientes de su región | | Auditoría | Registra los eventos de la base de datos en un registro de auditoría | Cumplimiento normativo y detección de actividad inusual | | Microsoft Defender for SQL | Evaluación de vulnerabilidades más Advanced Threat Protection | Detecta y alerta sobre ataques de inyección de código SQL y patrones de acceso anómalos |
Consejo para el examen: "El personal del centro de llamadas solo debe ver parte de una dirección de correo" → enmascaramiento dinámico de datos. "Ni siquiera el administrador de la base de datos debe ver los números de identificación en texto sin cifrar" → Always Encrypted. "Detectar y alertar sobre intentos de inyección de código SQL" → Microsoft Defender for SQL. "Permitir conexiones a una sola base de datos solo desde la IP de una oficina, configurado con T-SQL" → regla de firewall de nivel de base de datos.
---
Seguridad de Azure Storage y Cosmos DB
Azure Storage
Los datos de Azure Storage se cifran automáticamente en reposo con AES de 256 bits, y este cifrado no se puede desactivar. Las claves administradas por Microsoft son las predeterminadas, y en Blob Storage y Azure Files se pueden usar claves administradas por el cliente cuando haga falta. El acceso a los datos se concede de las siguientes formas.
| Método | Características | Recomendación | |------|------|------| | Microsoft Entra ID + RBAC de Azure | Asigna roles a usuarios e identidades administradas; sin claves en el código | Recomendado por Microsoft | | Clave compartida (clave de acceso de la cuenta) | Permisos completos sobre toda la cuenta | Alto riesgo de exposición; evítalo siempre que puedas | | Firma de acceso compartido (SAS) | Un token delegado limitado en tiempo, permisos y alcance | Si lo usas, se recomienda una SAS de delegación de usuarios | | ACL (Data Lake Gen2) | Permisos POSIX por archivo y carpeta | Con el espacio de nombres jerárquico |
En la parte de red, los firewalls de almacenamiento, las reglas de red virtual y los puntos de conexión privados reducen las vías de acceso, y la opción de transferencia segura obligatoria solo permite HTTPS. Microsoft Defender for Storage detecta amenazas como accesos inusuales y subidas de archivos maliciosos.
Azure Cosmos DB
Cosmos DB también cifra los datos en reposo de forma predeterminada. Se puede acceder a los datos con las claves de la cuenta (principal y secundaria), pero Microsoft recomienda aplicar el privilegio mínimo con el control de acceso basado en roles del plano de datos de Microsoft Entra ID y con identidades administradas. Si tienes que seguir usando claves, rótalas con regularidad; la configuración recomendada es desactivar el acceso desde la red pública y usar solo puntos de conexión privados.
Consejo para el examen: "Compartir un contenedor en modo de solo lectura con un colaborador externo temporal durante siete días" → SAS. "Que una aplicación acceda al almacenamiento sin claves" → identidad administrada + RBAC de Azure. "¿Se puede desactivar el cifrado de una cuenta de almacenamiento?" → No.
---
Practica con escenarios
Decide primero tu respuesta y luego revisa las columnas de la derecha.
| Situación | Respuesta | Por qué | |------|------|------| | Los PC de la oficina no pueden conectarse a un servidor lógico de Azure SQL recién creado | Añadir una regla de firewall de nivel de servidor para la IP de la oficina | Todas las conexiones públicas se bloquean por defecto | | Los desarrolladores que consultan la base de datos de producción solo deben ver los cuatro últimos dígitos de las tarjetas | Enmascaramiento dinámico de datos | Oculta los resultados y los valores guardados n