Librerie consentite e script init nelle risorse di calcolo condivise

In Databricks Runtime 13.3 LTS e versioni successive è possibile aggiungere librerie e script init a allowlist in unity Catalog. In questo modo gli utenti possono sfruttare questi artefatti nel calcolo configurato con la modalità di accesso condiviso.

È possibile consentire l'elenco di una directory o un percorso file prima che tale directory o file esista. Vedere Caricare file in un volume del catalogo Unity.

Nota

È necessario essere un amministratore del metastore o avere il MANAGE ALLOWLIST privilegio di modificare l'elenco elementi consentiti. Vedere MANAGE ALLOWLIST.

Importante

Le librerie usate come driver JDBC o origini dati Spark personalizzate nel calcolo condiviso abilitato per Unity Catalog richiedono ANY FILE autorizzazioni.

Alcune librerie installate archiviano i dati di tutti gli utenti in una directory temporanea comune. Queste librerie potrebbero compromettere l'isolamento dell'utente.

Come aggiungere elementi all'elenco elementi consentiti

È possibile aggiungere elementi a allowlist con Esplora cataloghi o l'API REST.

Per aprire la finestra di dialogo per l'aggiunta di elementi all'elenco elementi consentiti in Esplora cataloghi, eseguire le operazioni seguenti:

  1. Nell'area di lavoro di Azure Databricks fare clic su Icona catalogo Catalogo.
  2. Fare clic Icona a forma di ingranaggio per aprire i dettagli del metastore e l'interfaccia utente delle autorizzazioni.
  3. Selezionare Jar consentiti/Script init.
  4. Fare clic su Aggiungi.

Importante

Questa opzione viene visualizzata solo per utenti con privilegi sufficienti. Se non è possibile accedere all'interfaccia utente dell'elenco elementi consentiti, contattare l'amministratore del metastore per ottenere assistenza per consentire l'inserimento di librerie e script init.

Aggiungere uno script init all'elenco consenti

Completare i passaggi seguenti nella finestra di dialogo allowlist per aggiungere uno script init all'elenco consenti:

  1. Per Tipo selezionare Script init.
  2. Per Tipo di origine selezionare Volume o il protocollo di archiviazione oggetti.
  3. Specificare il percorso di origine da aggiungere all'elenco consenti. Vedere How are permissions on paths enforced in the allowlist?.See How are permissions on paths enforced in the allowlist?.

Aggiungere un file JAR all'elenco elementi consentiti

Completare i passaggi seguenti nella finestra di dialogo allowlist per aggiungere un file JAR all'elenco elementi consentiti:

  1. In Tipo selezionare JAR.
  2. Per Tipo di origine selezionare Volume o il protocollo di archiviazione oggetti.
  3. Specificare il percorso di origine da aggiungere all'elenco consenti. Vedere How are permissions on paths enforced in the allowlist?.See How are permissions on paths enforced in the allowlist?.

Aggiungere coordinate Maven all'elenco consenti

Completare i passaggi seguenti nella finestra di dialogo consenti per aggiungere coordinate Maven all'elenco elementi consentiti:

  1. In Tipo selezionare Maven.
  2. In Tipo di origine selezionare Coordinate.
  3. Immettere le coordinate nel formato seguente: groudId:artifactId:version.
    • È possibile includere tutte le versioni di una libreria consentendo il formato seguente: groudId:artifactId.
    • È possibile includere tutti gli artefatti in un gruppo consentendo il formato seguente: groupId.

In che modo vengono applicate le autorizzazioni per i percorsi nell'elenco elementi consentiti?

È possibile usare l'elenco consenti per concedere l'accesso ai file JAR o agli script init archiviati nei volumi del catalogo Unity e nell'archiviazione di oggetti. Se si aggiunge un percorso per una directory anziché un file, le autorizzazioni allowlist verranno propagate a file e directory contenute.

La corrispondenza dei prefissi viene usata per tutti gli artefatti archiviati nei volumi del catalogo Unity o nell'archiviazione di oggetti. Per impedire la corrispondenza dei prefissi a un determinato livello di directory, includere una barra finale (/). Ad esempio, /Volumes/prod-libraries/ non eseguirà la corrispondenza del prefisso per i file preceduti da prod-libraries. Al contrario, tutti i file e le directory all'interno /Volumes/prod-libraries/ vengono aggiunti all'elenco consenti.

È possibile definire le autorizzazioni ai livelli seguenti:

  1. Percorso di base per il volume o il contenitore di archiviazione.
  2. Directory annidata in qualsiasi profondità dal percorso di base.
  3. Un singolo file.

L'aggiunta di un percorso all'elenco consenti indica solo che il percorso può essere usato per gli script init o per l'installazione jar. Azure Databricks controlla ancora la presenza di autorizzazioni per accedere ai dati nella posizione specificata.

L'entità utilizzata deve disporre READ VOLUME delle autorizzazioni per il volume specificato. Vedere SELECT.

In modalità accesso utente singolo viene usata l'identità dell'entità assegnata (un utente o un'entità servizio).

In modalità di accesso condiviso:

  • Le librerie usano l'identità del programma di installazione della libreria.
  • Gli script Init usano l'identità del proprietario del cluster.

Nota

La modalità di accesso condiviso senza isolamento non supporta i volumi, ma usa la stessa assegnazione di identità della modalità di accesso condiviso.

Databricks consiglia di configurare tutti i privilegi di archiviazione degli oggetti correlati a script e librerie init con autorizzazioni di sola lettura. Gli utenti con autorizzazioni di scrittura per questi percorsi possono potenzialmente modificare il codice nei file di libreria o negli script init.

Databricks consiglia di usare le entità servizio Microsoft Entra ID per gestire l'accesso a JAR o script init archiviati in Azure Data Lake Storage Gen2. Per completare questa configurazione, usare la documentazione collegata seguente:

  1. Creare un'entità servizio con autorizzazioni di lettura ed elenco per i BLOB desiderati. Vedere Accedere all'archiviazione usando un'entità servizio e Microsoft Entra ID(Azure Active Directory).

  2. Salvare le credenziali usando i segreti. Vedere Segreti.

  3. Impostare le proprietà nella configurazione spark e nelle variabili di ambiente durante la creazione di un cluster, come nell'esempio seguente:

    Configurazione di 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
    

    Variabili ambientali:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Facoltativo) Eseguire il refactoring degli script init usando azcopy o l'interfaccia della riga di comando di Azure.

    È possibile fare riferimento alle variabili di ambiente impostate durante la configurazione del cluster all'interno degli script init per passare le credenziali archiviate come segreti per la convalida.

Nota

Le autorizzazioni allowlist per jar e script init vengono gestite separatamente. Se si usa la stessa posizione per archiviare entrambi i tipi di oggetti, è necessario aggiungere il percorso all'elenco elementi consentiti per ognuno di essi.