Verkaufen von Unity Catalog-Anmeldeinformationen für den Zugriff auf externe Systeme

Tipp

Informationen zum Lesen von Azure Databricks Daten mithilfe von Microsoft Fabric finden Sie unter Microsoft Fabric mit Azure Databricks.

Diese Seite beschreibt, wie die Unity Catalog Credential Vending-Funktionen den Zugriff auf Daten in Azure Databricks von externen Verarbeitungs-Engines unterstützen.

Der Verkauf von Anmeldeinformationen unterstützt externe Systeme, die sich über die Unity REST-API und den Apache Iceberg REST-Katalog mit dem Unity-Katalog verbinden. Siehe Access Databricks-Tabellen von Delta-Clients und Access Databricks-Daten mithilfe externer Systeme.

Was bedeutet der Verkauf von Unity Catalog-Anmeldeinformationen?

Der Verkauf von Anmeldeinformationen gewährt mithilfe der Unity Catalog-REST-API kurzlebige Anmeldeinformationen. Die gewährten Anmeldeinformationen erben die Berechtigungen des Azure Databricks-Prinzipals, der zum Konfigurieren der Integration verwendet wird. Es gibt zwei Arten der Bereitstellung von Anmeldeinformationen:

  • Die Bereitstellung von Tabellenanmeldeinformationen bietet Zugriff auf Daten, die in Ihrem Unity Catalog-Metastore registriert sind.
  • Die Bereitstellung von Pfadanmeldeinformationen bietet Zugriff auf externe Speicherorte in Ihrem Unity Catalog-Metastore.

Anforderungen

  • Der externe Zugriff muss für den Metastore konfiguriert sein, wobei dem anfordernden Prinzipal EXTERNAL USE SCHEMA gewährt wird. Siehe Aktivieren des externen Datenzugriffs im Metastore.
  • Die Arbeitsbereichs-URL muss für die anfordernde Engine zugänglich sein, einschließlich Engines hinter IP-Zugriffslisten oder Azure Private Link.
  • Auf Cloudspeicher-URLs muss über Firewall- und Netzwerksteuerelemente zugegriffen werden.

Bereitstellung von Tabellenanmeldeinformationen

Tabellenanmeldeinformationen enthalten eine Zeichenfolge für ein vorübergehendes Zugriffstoken und die URL des Cloud-Speicherorts, die das externe Modul verwenden kann, um auf die Tabellendaten und Metadaten am Cloud-Speicherort zuzugreifen.

Unterstützte Zugriffstypen

Die Bereitstellung von Tabellenanmeldeinformationen unterstützt die folgenden Tabellentypen und Vorgänge:

Tabellentyp Lesen Sie Schreiben Erstellen
Verwaltetes Delta Ja Ja* Ja*
Externes Delta Ja Ja Ja
Verwalteter Iceberg Ja Ja Ja
Fremde Eisberge Ja No No
Delta mit Iceberg-Lesevorgängen (UniForm) Ja Ja** No

* Das Erstellen von und Schreiben in von Unity Catalog verwaltete Tabellen über Delta-Clients befindet sich in der öffentlichen Vorschau.

Führen Sie MSCK REPAIR TABLE aus, nachdem Sie extern in eine UniForm-Tabelle von einem Delta-Client geschrieben haben, um Iceberg-Metadaten zu generieren.

Hinweis

Einige Clients unterstützen den Zugriff auf von Delta Lake gestützte Tabellen, während andere erfordern, dass Iceberg-Lesevorgänge (UniForm) in Tabellen aktiviert werden. Siehe Delta Lake-Tabellen mit Iceberg-Clients mithilfe von UniForm lesen.

Anfordern temporärer Tabellenanmeldeinformationen für den externen Datenzugriff

Die Unterstützung beim Verkauf von Anmeldeinformationen variiert je nach externem Client. Wenn unterstützt, sollte der Client automatisch verkaufte Anmeldeinformationen verwenden, wenn eine Verbindung konfiguriert wird.

Dieser Abschnitt enthält ein Beispiel für das ausdrückliche Aufrufen des API-Endpunkts zum Verkauf von Anmeldeinformationen. Für einige externe Clients müssen Sie möglicherweise explizit Konfigurationen festlegen, um auf Daten und Metadaten im Cloudobjektspeicher zuzugreifen, die Ihre Unity-Katalogtabellen sichern. Sie können werte verwenden, die von Credential Vending zurückgegeben werden, um den Zugriff zu konfigurieren.

Hinweis

Sie können eine Liste von Tabellen abrufen, die die Berechtigungsausgabe unterstützen, indem Sie die ListTables-API aufrufen, wobei die Option include_manifest_capabilities aktiviert ist. Nur Tabellen, die mit 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.

Im folgenden curl Beispiel wird explizit eine temporäre Anmeldeinformation für den externen Datenzugriff angefordert. Diese Anforderung muss von einem Arbeitsbereichsprinzipal mit entsprechenden Berechtigungen abgeschlossen werden.

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation": "<READ|READ_WRITE>"}'

Ausführliche Informationen finden Sie unter POST /api/2.1/unity-catalog/temporary-table-credentials in der Azure Databricks REST-API-Referenz.

Einschränkungen

Es gelten die folgenden Einschränkungen:

  • Nicht alle externen Clients unterstützen den Verkauf von Anmeldeinformationen. Die Unterstützung kann je nach zugrunde liegendem Cloudobjektspeicher variieren.
  • Delta Lake-Leseclients können nur Tabellen lesen, die von Delta Lake unterstützt werden, und müssen alle aktivierten Lese- oder Schreibprotokolle unterstützen, die auf der Tabelle aktiviert sind. Siehe Delta Lake Featurekompatibilität und Protokolle.
  • Externe Tabellen, die delta Lake nicht verwenden, bieten keine Transaktionsgarantien.
  • Die folgenden Tabellentypen oder Tabellen mit aktivierten Features werden nicht unterstützt:
    • Tabellen mit Zeilenfiltern oder Spaltenmasken.
    • Tabellen, die mit OpenSharing freigegeben wurden.
    • Ansichten.
    • Materialisierte Ansichten.
    • Streamtabellen für Lakeflow-Pipelines.
    • Onlinetabellen.
    • KI-Suchindizes.
  • Die Aktualisierung von Anmeldeinformationen wird auf Iceberg 1.9.0 nicht unterstützt. Verwenden Sie die neueste Iceberg-Version für die Aktualisierung der Anmeldeinformationen.

Bereitstellung von Pfadanmeldeinformationen

Ausgestellte Anmeldeinformationen erlauben direkten Zugriff auf den Cloud-Speicherort und beschränken sich auf den relevanten Pfad. Sie sind für einen begrenzten Zeitraum gültig und gewähren keinen umfassenderen Zugriff über den definierten Speicherort oder die definierte Tabelle hinaus.

Anfordern temporärer Pfadanmeldeinformationen für den externen Datenzugriff

Die Unterstützung beim Verkauf von Anmeldeinformationen variiert je nach externem Client. Wenn unterstützt, sollte der Client automatisch verkaufte Anmeldeinformationen verwenden, wenn eine Verbindung konfiguriert wird.

Dieser Abschnitt enthält ein Beispiel für das ausdrückliche Aufrufen des API-Endpunkts zum Verkauf von Anmeldeinformationen. Für einige externe Clients müssen Sie möglicherweise explizit Konfigurationen festlegen, um auf Daten und Metadaten im Cloudobjektspeicher zuzugreifen, die Ihre Unity-Katalogtabellen sichern. Sie können werte verwenden, die von Credential Vending zurückgegeben werden, um den Zugriff zu konfigurieren.

Im folgenden curl Beispiel wird explizit eine temporäre Anmeldeinformation für den externen Datenzugriff angefordert. Diese Anforderung muss von einem Arbeitsbereichsprinzipal mit entsprechenden Berechtigungen abgeschlossen werden.

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-path-credentials \
-d '{"url": "<string>", "operation": "<PATH_READ|PATH_READ_WRITE|PATH_CREATE_TABLE>"}'

Ausführliche Informationen finden Sie unter Generate a temporary path credential in the Azure Databricks REST API reference.

Bereitstellung von Volumeanmeldeinformationen

Wichtig

Dieses Feature befindet sich in der Public Preview.

Die Bereitstellung von Volumeanmeldeinformationen ermöglicht externen Engines den Zugriff auf Dateien, die in Unity Catalog-Volumes gespeichert sind, mit temporären, bereichsbezogenen Anmeldeinformationen. Der anfordernde Prinzipal muss über EXTERNAL USE SCHEMA für das Schema verfügen, das das Volume enthält, sowie über READ VOLUME für den Lesezugriff oder READ VOLUME und WRITE VOLUME für den Schreibzugriff. Weitere Informationen finden Sie unter Was sind Unity Catalog-Volumes?.

Unity Catalog überprüft Berechtigungen und gibt kurzlebige, bereichsbezogene Cloudspeicheranmeldeinformationen zurück, die an den Speicherpfad des Volumes gebunden sind. Anmeldeinformationen laufen automatisch ab und gewähren keinen Zugriff über das angegebene Volume hinaus.

Anforderungen

  • Der externe Zugriff muss im Metastore aktiviert sein. Siehe Aktivieren des externen Datenzugriffs im Metastore.
  • Der anfordernde Prinzipal muss über EXTERNAL USE SCHEMA für das Schema verfügen, das das Volume enthält, sowie über READ VOLUME für den Lesezugriff oder READ VOLUME und WRITE VOLUME für den Schreibzugriff.
  • Das externe Modul muss die Arbeitsbereichs-URL erreichen können.
  • Auf Cloudspeicher-URLs muss über Firewall- und Netzwerksteuerelemente zugegriffen werden.

Temporäre Volume-Zugangsdaten für den Zugriff auf externe Daten anfordern

Im folgenden curl Beispiel wird explizit eine temporäre Anmeldeinformation für den externen Datenzugriff angefordert.

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.0/unity-catalog/temporary-volume-credentials \
-d '{"volume_id": "<volume-id>", "operation": "<READ_VOLUME|WRITE_VOLUME>"}'

Oder verwenden Sie das Azure Databricks Python SDK:

from databricks.sdk.service.catalog import VolumeOperation

creds = w.temporary_volume_credentials.generate_temporary_volume_credentials(
    volume_id=volume_id,
    operation=VolumeOperation.READ_VOLUME,
)

Ausführliche Informationen finden Sie unter POST /api/2.0/unity-catalog/temporary-volume-credentials in der Azure Databricks REST-API-Referenz.

Einschränkungen

  • Verwaltete Volumes werden nur für den Lesezugriff unterstützt. Externe Datenträger unterstützen Lese- und Schreibzugriff.