Share via


Bibliotheken auf der Positivliste und Initialisierungsskripts auf freigegebenem Compute

In Databricks Runtime 13.3 LTS und höher können Sie Bibliotheken und Initialisierungsskripts der allowlist in Unity Catalog hinzufügen. Dadurch können Benutzer*innen diese Artefakte auf Compute nutzen, das mit dem Modus für gemeinsamen Zugriff konfiguriert ist.

Sie können ein Verzeichnis oder einen Dateipfad per Positivliste zulassen, bevor das Verzeichnis oder die Datei vorhanden ist. Weitere Informationen finden Sie unter Hochladen von Dateien auf ein Unity Catalog-Volume.

Hinweis

Sie müssen ein Metastore-Administrator sein oder über die MANAGE ALLOWLIST-Berechtigung verfügen, um die Positivliste zu ändern. Siehe POSITIVLISTE VERWALTEN.

Wichtig

Bibliotheken, die als DRIVER-Treiber oder benutzerdefinierte Spark-Datenquellen in Unity Catalog-fähigen freigegebenen Rechner verwendet werden, erfordern ANY FILE Berechtigungen.

Einige installierte Bibliotheken speichern Daten aller Benutzer in einem gemeinsamen temporären Verzeichnis. Diese Bibliotheken können die Benutzerisolation gefährden.

Hinzufügen von Elementen zur Positivliste

Sie können allowlist Elemente mit dem Katalog-Explorer oder der REST-API hinzufügen.

Gehen Sie wie folgt vor, um das Dialogfeld zum Hinzufügen von Elementen zur Positivliste im Katalog-Explorer zu öffnen:

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Symbol „Katalog“Katalog.
  2. Klicken Sie auf das Zahnradsymbol, um die Benutzeroberfläche für Metastoredetails und Berechtigungen zu öffnen.
  3. Wählen Sie Zulässige JARs/Initialisierungsskripts aus.
  4. Klicken Sie auf Hinzufügen.

Wichtig

Diese Option wird nur Benutzer*innen mit ausreichenden Berechtigungen angezeigt. Wenn Sie nicht auf die Benutzeroberfläche der Positivliste zugreifen können, wenden Sie sich an Ihre/n Metastoreadministrator*in, um Unterstützung beim Zulassen von Bibliotheken und Initialisierungsskripts über eine Positivliste zu erhalten.

Hinzufügen eines Initialisierungsskripts zur Positivliste

Führen Sie die folgenden Schritte im Dialogfeld „Positivliste“ aus, um der Positivliste ein Init-Skript hinzuzufügen:

  1. Wählen Sie unter Typ die Option Initialisierungsskript aus.
  2. Wählen Sie unter Quelltyp die Option Volume oder das Objektspeicherprotokoll aus.
  3. Geben Sie den Quellpfad an, der der Positivliste hinzugefügt werden soll. Weitere Informationen finden Sie unter Erzwingen von Berechtigungen für Pfade in der Positivliste.

Hinzufügen einer JAR-Datei zur Positivliste

Führen Sie die folgenden Schritte im Dialogfeld „Positivliste“ aus, um der Positivliste eine JAR-Datei hinzuzufügen:

  1. Wählen Sie für Typ die Option JAR aus.
  2. Wählen Sie unter Quelltyp die Option Volume oder das Objektspeicherprotokoll aus.
  3. Geben Sie den Quellpfad an, der der Positivliste hinzugefügt werden soll. Weitere Informationen finden Sie unter Erzwingen von Berechtigungen für Pfade in der Positivliste.

Hinzufügen von Maven-Koordinaten zur Positivliste

Führen Sie die folgenden Schritte im Dialogfeld „Positivliste“ aus, um der Positivliste Maven-Koordinaten hinzuzufügen:

  1. Wählen Sie für Typ die Option Maven aus.
  2. Wählen Sie unter Quelltyp die Option Koordinaten aus.
  3. Geben Sie Koordinaten im folgenden Format ein: groudId:artifactId:version.
    • Sie können alle Versionen einer Bibliothek einschließen, indem Sie das folgende Format in die Positivliste einfügen: groudId:artifactId.
    • Sie können alle Artefakte in einer Gruppe einschließen, indem Sie das folgende Format in die Positivliste einfügen: groupId.

Erzwingen von Berechtigungen für Pfade in der Positivliste

Sie können die Positivliste verwenden, um Zugriff auf JARs oder Initialisierungsskripts zu gewähren, die in Unity Catalog-Volumes und Objektspeichern gespeichert sind. Wenn Sie anstelle einer Datei einen Pfad für ein Verzeichnis hinzufügen, werden die Berechtigungen der Positivliste in die enthaltenen Dateien und Verzeichnisse übertragen.

Für alle Artefakte, die in Unity Catalog-Volumes oder Objektspeichern gespeichert sind, wird ein Präfixabgleich verwendet. Um einen Präfixabgleich auf einer bestimmten Verzeichnisebene zu verhindern, fügen Sie einen nachgestellten Schrägstrich (/) ein. Beispiel: /Volumes/prod-libraries/

Sie können Berechtigungen auf den folgenden Ebenen definieren:

  1. Basispfad für das Volume oder den Speichercontainer
  2. In beliebiger Tiefe vom Basispfad geschachteltes Verzeichnis
  3. Einzelne Datei

Durch Hinzufügen eines Pfads zur Positivliste kann dieser Pfad für Initialisierungsskripts oder JAR-Installationen verwendet werden. Azure Databricks überprüft weiterhin die Berechtigungen für den Zugriff auf Daten am angegebenen Speicherort.

Der verwendete Prinzipal muss über die Berechtigung READ VOLUME für das angegebene Volume verfügen. Siehe SELECT.

Im Modus für den Einzelbenutzerzugriff wird die Identität des zugewiesenen Prinzipals (ein Benutzer oder Dienstprinzipal) verwendet.

Im Zugriffsmodus „Freigegeben“:

  • Bibliotheken verwenden die Identität des Bibliotheksinstallationsprogramms.
  • Initialisierungsskripts verwenden die Identität des Clusterbesitzers.

Hinweis

Der Zugriffsmodus „Freigegeben“ ohne Isolation unterstützt keine Volumes, verwendet jedoch die gleiche Identitätszuweisung wie der freigegebene Zugriffsmodus.

Databricks empfiehlt, alle Objektspeicherberechtigungen im Zusammenhang mit Initialisierungsskripts und Bibliotheken schreibgeschützt zu konfigurieren. Benutzer*innen mit Schreibberechtigungen an diesen Speicherorten können möglicherweise Code in Bibliotheksdateien oder Initialisierungsskripts ändern.

Databricks empfiehlt die Verwendung von Microsoft Entra ID-Dienstprinzipalen zum Verwalten des Zugriffs auf JAR-Dateien oder Initialisierungsskripts, die in Azure Data Lake Storage Gen2 gespeichert sind. Verwenden Sie die nachfolgend verlinkte Dokumentation, um dieses Setup abzuschließen:

  1. Erstellen Sie ein Dienstprinzipal mit Berechtigungen zum Lesen und Auflisten der gewünschten Blobs. Weitere Informationen finden Sie unter Zugriff auf Speicher mit Microsoft Entra ID (früher Azure Active Directory) und einem Dienstprinzipal.

  2. Speichern Sie Ihre Anmeldeinformationen mithilfe von Geheimnissen. Weitere Informationen hierzu finden Sie unter Geheimnisse.

  3. Legen Sie die Eigenschaften in der Spark-Konfiguration und die Umgebungsvariablen beim Erstellen eines Clusters fest, wie im folgenden Beispiel gezeigt:

    Spark-Konfiguration:

    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
    

    Umgebungsvariablen:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Optional) Gestalten Sie die Initialisierungsskripts mithilfe von azcopy oder der Azure CLI um.

    Sie können auf die während der Clusterkonfiguration festgelegten Umgebungsvariablen in Ihren Initialisierungsskripts verweisen, um als Geheimnis gespeicherte Anmeldeinformationen zur Validierung zu übergeben.

Hinweis

Positivlistenberechtigungen für JAR-Dateien und Initialisierungsskripts werden separat verwaltet. Wenn Sie denselben Speicherort zum Speichern beider Objekttypen verwenden, müssen Sie der Positivliste den Speicherort für beide hinzufügen.