¿Qué es una firma de acceso compartido (SAS) de OneLake?

Una firma de acceso compartido (SAS) de OneLake proporciona acceso seguro, a corto plazo y delegado a los recursos de la instancia de OneLake. Con una SAS de OneLake, tiene control granular sobre la forma en que un cliente puede tener acceso a los datos. Por ejemplo:

  • A qué recursos puede acceder el cliente.
  • Qué permisos tienen para los recursos.
  • Cuánto tiempo es válido la SAS.

Cada SAS de OneLake (y clave de delegación de usuarios) siempre está respaldada por una identidad de Microsoft Entra, tiene una duración máxima de 1 hora y solo puede conceder acceso a carpetas y archivos dentro de un elemento de datos, como una instancia de almacén de lago de datos.

Funcionamiento de una firma de acceso compartido

Una firma de acceso compartido es un token que se anexa al identificador URI de un recurso de OneLake. El token contiene un conjunto especial de parámetros de consulta que indican cómo puede acceder el cliente al recurso. Uno de los parámetros de consulta es la firma. Se construye a partir de los parámetros de la SAS y se firma con la clave que se usó para crear la SAS. OneLake usa esta firma para autorizar el acceso a la carpeta o el archivo en OneLake. OneLake SAS usa el mismo formato y propiedades que SAS delegada al usuario de Azure Storage, pero con más restricciones de seguridad sobre la duración y el ámbito.

Una SAS de OneLake se firma con una clave de delegación de usuario (UDK), que está respaldada por una credencial de Microsoft Entra. Puede solicitar una clave de delegación de usuario con la operación Obtener clave de delegación de usuario. A continuación, usará esta clave (mientras sigue siendo válida) para compilar la SAS de OneLake. Los permisos de esa credencial de Microsoft Entra, junto con los permisos concedidos explícitamente a la SAS, determinan el acceso del cliente al recurso.

Autorización de una SAS de OneLake

Cuando un cliente o una aplicación acceden a OneLake con una SAS de OneLake, la petición se autoriza mediante las credenciales de Microsoft Entra que solicitaron la UDK usada para crear la SAS. Por lo tanto, todos los permisos de OneLake concedidos a esa identidad de Microsoft Entra se aplican a la SAS, lo que significa que una SAS nunca puede superar los permisos del usuario que la ha creado. Además, al crear una SAS, concede explícitamente permisos, lo que le permite proporcionar permisos con un ámbito aún más limitado a la SAS. Con la identidad de Microsoft Entra, los permisos concedidos explícitamente y una duración corta, OneLake sigue los procedimientos recomendados de seguridad para proporcionar acceso delegado a los datos.

Cuándo usar una SAS de OneLake

OneLake SAS delega el acceso seguro y temporal a OneLake, respaldado por una identidad de Microsoft Entra. Las aplicaciones sin compatibilidad nativa con Microsoft Entra pueden usar una SAS de OneLake para obtener acceso temporal para cargar datos sin un trabajo complicado de configuración e integración.

OneLake SAS también admite aplicaciones que actúan como servidores proxy entre los usuarios y sus datos. Por ejemplo, algunos proveedores de software independientes (ISVs) intermedian entre los usuarios y su espacio de trabajo en Fabric, proporcionando funcionalidad adicional y, posiblemente, un modelo de autenticación diferente. Al delegar el acceso con una SAS de OneLake, estos ISV pueden administrar el acceso a los datos subyacentes y proporcionar acceso directo a los datos, incluso si sus usuarios no tienen identidades de Microsoft Entra.

Administración de OneLake SAS

Dos opciones de configuración en el inquilino de Fabric administran el uso de OneLake SAS.

La primera configuración es una configuración de nivel de inquilino, Usar tokens SAS delegados por el usuario de corta duración, que administra la generación de claves de delegación de usuarios. Dado que las claves de delegación de usuario se generan en el nivel de inquilino, se controlan mediante una configuración de inquilino. Esta configuración está activada de manera predeterminada, ya que estas claves de delegación de usuario tienen permisos equivalentes a la identidad de Microsoft Entra que los solicita y siempre son de corta duración.

Nota:

Desactivar esta característica impide que todas las áreas de trabajo usen OneLake SAS, ya que todos los usuarios no podrán generar claves de delegación de usuario.

La segunda configuración es una configuración de área de trabajo delegada, Autenticación con tokens de SAS delegados por el usuario de OneLake, que controla si un área de trabajo acepta SAS de OneLake. Esta configuración está desactivada de forma predeterminada. Un administrador del área de trabajo puede activar esta configuración para permitir la autenticación con OneLake SAS en su área de trabajo. Un administrador del inquilino puede activar esta configuración para todas las áreas de trabajo mediante la configuración del inquilino o dejarla para que los administradores del área de trabajo la activen.

También puede supervisar la creación de claves de delegación de usuarios en el portal de Microsoft Purview. Para ver todas las claves generadas en el inquilino, busque el nombre de la operación generateonelakeudk. Dado que la creación de una SAS es una operación del lado cliente, no se puede supervisar ni limitar la creación de una SAS de OneLake, solo la generación de una UDK.

Mejores prácticas con OneLake SAS

  • Use siempre HTTPS para crear o distribuir SAS para protegerse frente a ataques de intermediarios que buscan interceptar la SAS.
  • Realice un seguimiento de los tiempos de expiración de su llave y del token de SAS. Las claves de delegación de usuario y los tokens de SAS de OneLake tienen una duración máxima de 1 hora. Si intenta solicitar una UDK o crear una SAS con una duración superior a 1 hora, se producirá un error en la solicitud. Para evitar que la SAS se use para ampliar la duración de los tokens de OAuth que van a expirar, la duración del token también debe ser mayor que el tiempo de expiración de la clave de delegación de usuario y la SAS.
  • Tenga cuidado con la hora de inicio de un token de SAS. Establecer la hora de inicio de una SAS como la hora actual podría provocar errores durante los primeros minutos, debido a diferentes horas de inicio entre las máquinas (asimetría del reloj). Establecer la hora de inicio unos minutos antes ayuda a protegerse frente a estos errores.
  • Conceda los privilegios mínimos posibles a la SAS. Proporcionar los privilegios mínimos necesarios a los menos recursos posibles es un procedimiento recomendado de seguridad y reduce el impacto si una SAS está en peligro.
  • Supervise la generación de claves de delegación de usuario. Puede auditar la creación de claves de delegación de usuarios en el portal de Microsoft Purview. Busque el nombre de la operación generateonelakeudk para ver las claves generadas en el inquilino.
  • Comprenda las limitaciones de OneLake SAS. Dado que los tokens de SAS de OneLake no pueden tener permisos de nivel de área de trabajo, no son compatibles con algunas herramientas de Azure Storage que esperan permisos de nivel de contenedor para atravesar datos, como el Explorador de Azure Storage.
  • Habilite el diagnóstico de OneLake para realizar un seguimiento del uso de SAS de OneLake. Cuando se usa un token de SAS de OneLake para acceder a los datos, su uso, incluida la identidad del usuario delegado y la dirección IP de la aplicación mediante el token, se registra mediante el diagnóstico de OneLake. Habilite los diagnósticos para mantener una pista de auditoría completa del acceso SAS de OneLake a sus datos.