Steuern des externen Zugriffs auf Daten in Unity Catalog
Wichtig
Dieses Feature befindet sich in der Public Preview.
Tipp
Informationen zum Lesen von Azure Databricks-Daten mit Microsoft Fabric finden Sie unter Verwenden von Microsoft Fabric zum Lesen von Daten, die im Unity Catalog registriert sind.
In diesem Artikel wird beschrieben, wie Sie den Zugriff auf Daten in Azure Databricks steuern, wenn externe Verarbeitungsmodule geöffnete Unity Catalog-APIs oder Iceberg-APIs verwenden, um auf diese Daten zuzugreifen, insbesondere wenn Engines die Verkaufsfunktion für Unity Catalog-Anmeldeinformationen verwenden, um Zugriff zu erhalten.
Die in diesem Artikel beschriebenen Zugriffssteuerungen behandeln Szenarien, in denen temporäre Anmeldeinformationen verwendet werden, um Daten aus Ihren Unity Catalog-Katalogen mithilfe externer Module und Schnittstellen zu lesen, z. B.:
- Iceberg-Rest-APIs
- Microsoft Fabric
- duckDB
- Apache Spark und Trino
Hinweis
Unity Catalog implementiert Iceberg-REST-APIs über Delta Lake UniForm, eine alternative Möglichkeit, Iceberg-Clients schreibgeschützten Zugriff auf Delta-Tabellen im Unity-Katalog bereitzustellen. Weitere Informationen finden Sie unter Verwenden von UniForm zum Lesen von Deltatabellen mit Iceberg-Clients.
Übersicht über den Verkauf von Anmeldeinformationen und das Gewähren von Zugriff auf externe Module
Wenn Sie ein externes Modul verwenden möchten, um auf Daten zuzugreifen, die in Ihrem Unity Catalog-Metastore registriert sind, müssen Sie kurzlebige Anmeldeinformationen mithilfe der Unity Catalog-REST-API anfordern. Der Prozess, mit dem Unity Catalog diese Anmeldeinformationen erteilt, wird als Verkauf von Anmeldeinformationen bezeichnet.
Um temporäre Anmeldeinformationen zu erhalten, muss der Azure Databricks-Prinzipal (Benutzer, Gruppe oder Dienstprinzipal), der die Anforderung vornimmt, über die EXTERNAL USE SCHEMA
-Berechtigung für das Schema verfügen, das die Tabelle enthält, auf die über das externe Modul zugegriffen werden soll. Der Unity Catalog-Metasstore, der das Schema enthält, muss auch explizit für den externen Zugriff aktiviert werden.
Wenn dem privilegierten Prinzipal die temporären Anmeldeinformationen erteilt wurden, wird eine kurzlebige Zugriffstokenzeichenfolge und Cloud-Speicherort-URL erteilt, die Benutzer des externen Moduls verwenden können, um vom Cloudspeicherort aus auf das Datenobjekt (Tabelle) zuzugreifen. Wie die Anmeldeinformationen und das Token vom externen Modul verwendet werden, ist spezifisch für das externe Modul und wird hier nicht behandelt.
Das externe Modul und die Azure Databricks Unity Catalog-Konfiguration müssen auch bestimmte Netzwerkanforderungen erfüllen, die in den folgenden Abschnitten aufgelistet werden.
Anforderungen
In diesem Abschnitt werden Netzwerkkonfigurationen, Optionen für Unity Catalog-Metastore, Tabellentypen und Berechtigungen aufgeführt, die für den sicheren Zugriff auf Unity Catalog-Datenobjekte von externen Engines mithilfe der geöffneten APIs von Unity Catalog oder Iceberg-REST-APIs erforderlich sind.
Netzwerkanforderungen
- Um auf den Azure Databricks-Arbeitsbereich mithilfe der geöffneten APIs von Unity Catalog oder Iceberg-REST-APIs zuzugreifen, muss die Arbeitsbereichs-URL für das Modul zugänglich sein, das die Anforderung ausführt. Dazu gehören Arbeitsbereiche, die IP-Zugriffslisten verwenden, oder Azure Private Link.
- Um auf den zugrunde liegenden Cloudspeicherort für in Unity Catalog-registrierte Datenobjekte zuzugreifen, müssen die Speicher-URLs, die von API für temporäre Anmeldeinformationen von Unity-Catalog generiert wurden, für das Modul zugänglich sein, das die Anforderung ausführt. Dies bedeutet, dass das Modul in den Firewall- und Netzwerkzugriffssteuerungslisten für die zugrunde liegenden Cloudspeicherkonten zulässig sein muss.
Unity Catalog-Metastore- und Datenobjektanforderungen
- Der Metastore muss für den externen Datenzugriff aktiviert sein.
- Während der öffentlichen Vorschau werden nur Tabellen unterstützt.
- Externe Tabellen unterstützen Lese- und Schreibzugriff.
- Verwaltete Tabellen können nur gelesen werden.
- Die folgenden Tabellentypen werden nicht unterstützt:
- Tabellen mit Zeilenfiltern oder Spaltenformaten
- Tabellen, die mithilfe der Delta-Freigabe freigegeben werden
- Lakehouse-Verbundtabellen (Fremdtabellen)
- Ansichten
- Materialisierte Sichten
- Delta Live Tables-Streamingtabellen
- Onlinetabellen
- Vektorsuchindexe
Erforderliche Berechtigungen
Der Prinzipal, der die temporären Anmeldeinformationen anfordert, muss über Folgendes verfügen:
Die
EXTERNAL USE SCHEMA
-Berechtigung für das enthaltende Schema oder den übergeordneten Katalog.Diese Berechtigung muss immer explizit gewährt werden. Nur der Besitzer des übergeordneten Katalogs kann diese gewähren. Um versehentliche Exfiltration zu vermeiden, umfasst
ALL PRIVILEGES
nicht dieEXTERNAL USE SCHEMA
-Berechtigung, und Schemabesitzer verfügen nicht standardmäßig über diese Berechtigung.SELECT
-Berechtigung für die Tabelle,USE CATALOG
im übergeordneten Katalog undUSE SCHEMA
im übergeordneten Schema.
Aktivieren des externen Datenzugriffs im Metastore
Damit externe Engines auf Daten in einem Metastore zugreifen können, muss ein Metastore-Administrator den externen Datenzugriff für den Metastore aktivieren. Diese Option ist standardmäßig deaktiviert, um nicht autorisierten externen Zugriff zu verhindern.
- Klicken Sie in einem Azure Databricks-Arbeitsbereich, der dem Metastore zugeordnet ist, auf Katalog.
- Klicken Sie auf das Zahnradsymbol oben im Bereich Katalog und wählen Sie Metastore aus.
- Aktivieren Sie auf der Registerkarte Details die Option Externer Datenzugriff.
Anfordern von temporären Anmeldeinformationen für den Zugriff auf externe Daten
Um temporäre Anmeldeinformationen für den Zugriff auf externe Daten anzufordern, muss ein Arbeitsbereichsbenutzer, der die oben aufgeführten Anforderungen erfüllt, die /api/2.1/unity-catalog/temporary-table-credentials
-API verwenden.
Hinweis
Sie können eine Liste von Tabellen abrufen, die den Verkauf von Anmeldeinformationen unterstützen, indem Sie die ListTables-API aufrufen, wobei die include_manifest_capabilities
-Option aktiviert ist. Nur Tabellen, die als HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT
oder HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT
gekennzeichnet sind, können in der API für temporäre Tabellenanmeldeinformationen als Referenz verwendet werden. Siehe GET /api/2.1/unity-catalog/tables.
Zum Beispiel:
curl -X POST -H "Authentication: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation_name": "<READ|READ_WRITE>"}'
Ausführliche Informationen finden Sie unter POST /api/2.1/unity-catalog/temporary-table-credentials in der REST-API-Referenz von Azure Databricks.