Adición a la lista de permitidos bibliotecas y scripts de inicialización en proceso compartido

En Databricks Runtime 13.3 LTS y versiones posteriores, puede agregar bibliotecas e scripts de inicialización al allowlist en Unity Catalog. Esto permite a los usuarios aprovechar estos artefactos en el proceso configurado con el modo de acceso compartido.

Puede agregar a la lista de permitidos un directorio o ruta de acceso de archivos antes de que exista ese directorio o archivo. Consulte Cargar archivos en un volumen de Unity Catalog.

Nota:

Debe ser administrador de metastore o tener el privilegio MANAGE ALLOWLIST de modificar la lista de permitidos. Consulte ADMINISTRAR LISTA DE PERMITIDOS.

Importante

Las bibliotecas que se usan como controladores JDBC u orígenes de datos de Spark personalizados en el proceso compartido habilitado para Unity Catalog requieren permisos ANY FILE.

Algunas bibliotecas instaladas almacenan datos de todos los usuarios en un directorio temporal común. Estas bibliotecas podrían poner en peligro el aislamiento del usuario.

Cómo agregar elementos a la lista de permitidos

Puede agregar elementos a allowlist con Explorador de catálogo o la API de REST.

Para abrir el cuadro de diálogo para agregar elementos a la lista de permitidos en Explorador de catálogo, haga lo siguiente:

  1. En el área de trabajo de Azure Databricks, haga clic en Icono de catálogoCatálogo.
  2. Haga clic en el icono de engranaje para abrir la interfaz de usuario de detalles y permisos del metastore.
  3. Seleccione JAR/scripts de inicialización permitidos.
  4. Haga clic en Agregar.

Importante

Esta opción solo se muestra para usuarios con privilegios suficientes. Si no puede acceder a la interfaz de usuario de la lista de permitidos, póngase en contacto con el administrador de metastore para obtener ayuda en las bibliotecas de listas de permitidos y los scripts de inicialización.

Agregar un script de inicialización a la lista de permitidos

Complete los pasos siguientes en el cuadro de diálogo de lista de permitidos para agregar un script de inicialización a la lista de permitidos:

  1. En Tipo, seleccione Script de inicialización.
  2. En Tipo de origen, seleccione Volumen o el protocolo de almacenamiento de objetos.
  3. Especifique la ruta de acceso de origen que se va a agregar a la lista de permitidos. Consulte ¿Cómo se aplican los permisos en las rutas de acceso aplicadas en la lista de permitidos?.

Agregar un archivo JAR a la lista de permitidos

Complete los pasos siguientes en el cuadro de diálogo de lista de permitidos para agregar un archivo JAR a la lista de permitidos:

  1. En Tipo, seleccione JAR.
  2. En Tipo de origen, seleccione Volumen o el protocolo de almacenamiento de objetos.
  3. Especifique la ruta de acceso de origen que se va a agregar a la lista de permitidos. Consulte ¿Cómo se aplican los permisos en las rutas de acceso aplicadas en la lista de permitidos?.

Agregar coordenadas de Maven a la lista de permitidos

Complete los pasos siguientes en el cuadro de diálogo de lista de permitidos para agregar coordenadas de Maven a la lista de permitidos:

  1. En Tipo, seleccione Maven.
  2. En Tipo de origen, seleccione Coordenadas.
  3. Escriba las coordenadas con el formato siguiente: groudId:artifactId:version.
    • Puede incluir todas las versiones de una biblioteca mediante la lista de permitidos con el siguiente formato: groudId:artifactId.
    • Puede incluir todos los artefactos de un grupo mediante la lista de permitidos con el siguiente formato: groupId.

¿Cómo se aplican los permisos en las rutas de acceso aplicadas en la lista de permitidos?

Puede usar la lista de permitidos para conceder acceso a archivos JAR o scripts de inicialización almacenados en volúmenes de Unity Catalog y almacenamiento de objetos. Si agrega una ruta de acceso para un directorio en lugar de un archivo, los permisos de lista de permitidos se propagan a los archivos y directorios contenidos.

La coincidencia de prefijos se usa para todos los artefactos almacenados en volúmenes de Unity Catalog o almacenamiento de objetos. Para evitar la coincidencia de prefijos en un nivel de directorio determinado, incluya una barra diagonal final (/). Por ejemplo: /Volumes/prod-libraries/.

Puede definir permisos en los siguientes niveles:

  1. Ruta de acceso base para el volumen o el contenedor de almacenamiento.
  2. Un directorio anidado en cualquier profundidad desde la ruta de acceso base.
  3. Un único archivo.

Agregar una ruta de acceso a la lista de permitidos solo significa que la ruta de acceso se puede usar para scripts de inicialización o para la instalación de JAR. Azure Databricks sigue comprobando los permisos para acceder a los datos en la ubicación especificada.

La entidad de seguridad usada debe tener permisos READ VOLUME en el volumen especificado. Vea SELECT.

En el modo de acceso de usuario único, se usa la identidad de la entidad asignada (un usuario o una entidad de servicio).

En modo de acceso compartido:

  • Las bibliotecas usan la identidad del instalador de biblioteca.
  • Los scripts de inicialización usan la identidad del propietario del clúster.

Nota:

El modo de acceso compartido sin aislamiento no admite volúmenes, pero usa la misma asignación de identidad que el modo de acceso compartido.

Databricks recomienda configurar todos los privilegios de almacenamiento de objetos relacionados con scripts de inicialización y bibliotecas con permisos de solo lectura. Los usuarios con permisos de escritura en estas ubicaciones pueden modificar código en archivos de biblioteca o scripts de inicialización.

Databricks recomienda usar entidades de servicio de Microsoft Entra ID para administrar el acceso a JAR o scripts de inicialización almacenados en Azure Data Lake Storage Gen2. Use la siguiente documentación vinculada para completar esta configuración:

  1. Cree una entidad de servicio con permisos de lectura y lista en los blobs deseados. Consulte Acceso al almacenamiento usando un principio de servicio y Microsoft Entra ID(Azure Active Directory).

  2. Guarde las credenciales mediante secretos. Consulte Secretos.

  3. Establezca las propiedades en la configuración de Spark y las variables de entorno al crear un clúster, como en el ejemplo siguiente:

    Configuración de Spark:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    Variables de entorno:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Opcional) Refactorice los scripts de inicialización mediante azcopy o la CLI de Azure.

    Puede hacer referencia a variables de entorno establecidas durante la configuración del clúster dentro de los scripts de inicialización para pasar las credenciales almacenadas como secretos para la validación.

Nota:

Los permisos de lista de permitidos para JAR e scripts de inicialización se administran por separado. Si usa la misma ubicación para almacenar ambos tipos de objetos, debe agregar la ubicación a la lista de permitidos para cada uno de ellos.