外部システム アクセスのための Unity Catalog の資格情報の発行

ヒント

Microsoft Fabric を使用して Azure Databricks のデータを読み取る方法については、Microsoft Fabric with Azure Databricks を参照してください。

このページでは、Unity カタログの資格情報の自動販売機機能が、外部処理エンジンからのAzure Databricks内のデータへのアクセスをサポートする方法について説明します。

資格情報の発行では、Unity REST API と Apache Iceberg REST カタログを使用して Unity Catalog に接続する外部システムをサポートします。 デルタ クライアントからの Databricks テーブルへのアクセス、外部システムを使用した Databricks データへのアクセスに関するページを参照してください。

Unity Catalog の資格情報の発行とは

資格情報の自動販売機 は、Unity カタログ REST API を使用して有効期間の短い資格情報を付与します。 付与された資格情報は、統合の構成に使用されるAzure Databricks プリンシパルの特権を継承します。 クレデンシャル ベンディングには、次の 2 種類があります。

  • テーブル クレデンシャル ベンディングは、Unity Catalog メタストアに登録されているデータにアクセスできます。
  • パス クレデンシャル ベンディングは、Unity Catalog メタストアの外部ロケーションにアクセスを提供します。

必要条件

  • 要求プリンシパルに EXTERNAL USE SCHEMA が付与されているメタストアで外部アクセスを構成する必要があります。 「メタストア上で外部データ アクセスを有効にする」を参照してください。
  • ワークスペース URL は、要求エンジンがアクセスできる必要があり、IP アクセス リストAzure Private Link の背後にあるエンジンも含まれます。
  • クラウド ストレージの URL には、ファイアウォールとネットワーク制御を介してアクセスできる必要があります。

テーブル クレデンシャル ベンディング

テーブルの資格情報には、有効期間の短いアクセス トークン文字列とクラウド ストレージの場所の URL が含まれます。この URL は、外部エンジンがクラウド ストレージの場所からテーブル データとメタデータにアクセスするために使用できます。

サポートされているアクセスの種類

テーブル クレデンシャル ベンディングは、次のテーブルの種類を操作をサポートします。

テーブルのタイプ Read 書き込む 作成
マネージド デルタ はい はい* はい*
外部デルタ はい はい はい
マネージド・アイスバーグ はい はい はい
海外の氷山 はい いいえ いいえ
『デルタ・ウィズ・アイスバーグ』は以下の通りです はい 可** いいえ

* Delta クライアントからの Unity カタログマネージド テーブルの作成と書き込みは 、パブリック プレビュー段階です

** DeltaクライアントからIceberg読み取りを有効にしたテーブルに外部書き込みを行った後、 MSCK REPAIR TABLE を実行してIcebergメタデータを生成します。

一部のクライアントはDelta Lakeでバックアップされたテーブルへのアクセスをサポートし、他のクライアントはテーブル上でIceberg読み取りを有効にする必要があります。 Iceberg クライアントでの Delta Lake テーブルの読み取りを参照してください。

外部データ アクセスの一時テーブル資格情報を要求する

資格情報の発行のサポート状況は、外部クライアントによって異なります。 サポートされている場合、クライアントは、接続が構成されているときに、提供された資格情報を自動的に利用します。

このセクションでは、資格情報の自動販売機 API エンドポイントを明示的に呼び出す例を示します。 一部の外部クライアントでは、Unity カタログ テーブルをバックアップするクラウド オブジェクト ストレージ内のデータとメタデータにアクセスするための構成を明示的に設定する必要があります。 資格情報発行システムによって返される値を使用して、アクセスを設定できます。

include_manifest_capabilities オプションを有効にして ListTables API を呼び出すことで、資格情報の自動販売機をサポートするテーブルの一覧を取得できます。 一時テーブル資格情報 API では、HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT または HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT としてマークされたテーブルのみが参照の対象となります。 GET /api/2.1/unity-catalog/tablesを参照してください。

次の curl 例では、外部データ アクセスの一時的な資格情報を明示的に要求します。 この要求は、十分な特権を持つワークスペース プリンシパルによって完了する必要があります。

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>"}'

詳細については、Azure Databricks REST API リファレンスの「POST /api/2.1/unity-catalog/temporary-table-credentials を参照してください。

制限事項

次の制限があります。

  • すべての外部クライアントが資格情報の自動販売機をサポートしているわけではありません。サポートは、基になるクラウド オブジェクト ストレージによって異なる場合があります。
  • Delta Lake リーダー クライアントは、Delta Lake によってサポートされるテーブルのみを読み取ることができ、テーブルで有効になっているすべてのリーダーまたはライター プロトコルをサポートする必要があります。 Delta Lake の機能の互換性とプロトコルに関する記事を参照してください。
  • Delta Lake を使用しない外部テーブルでは、トランザクションの保証は提供されません。
  • 次のテーブルの種類または機能が有効になっているテーブルはサポートされていません。
    • 行フィルターまたは列マスクを含むテーブル。
    • OpenSharing を使用して共有されるテーブル。
    • ビュー。
    • 具体化されたビュー。
    • Lakeflow パイプラインのストリーミング テーブル。
    • オンライン テーブル。
    • AI Search はインデックスを作成します。
  • 資格情報の更新は、Iceberg 1.9.0 ではサポートされていません。 資格情報の更新には、最新の Iceberg リリースを使用します。

パス クレデンシャル ベンディング

発行された資格情報を使用すると、クラウド ストレージの場所に直接アクセスでき、関連するパスにスコープが設定されます。 これらは限られた期間有効であり、定義された場所またはテーブルを超える広範なアクセス権を付与しません。

外部データ アクセスの一時パス資格情報を要求する

資格情報の発行のサポート状況は、外部クライアントによって異なります。 サポートされている場合、クライアントは、接続が構成されているときに、提供された資格情報を自動的に利用します。

このセクションでは、資格情報の自動販売機 API エンドポイントを明示的に呼び出す例を示します。 一部の外部クライアントでは、Unity カタログ テーブルをバックアップするクラウド オブジェクト ストレージ内のデータとメタデータにアクセスするための構成を明示的に設定する必要があります。 資格情報発行システムによって返される値を使用して、アクセスを設定できます。

次の curl 例では、外部データ アクセスの一時的な資格情報を明示的に要求します。 この要求は、十分な特権を持つワークスペース プリンシパルによって完了する必要があります。

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>"}'

詳細については、Azure Databricks REST API リファレンスの「一時パス資格情報を生成する」を参照してください。

ボリューム クレデンシャル ベンディング

重要

この機能はパブリック プレビュー段階にあります。

ボリューム資格情報の払い出しにより、外部エンジンは、一時的かつスコープが限定された資格情報を使用して、Unity Catalog ボリュームに保存されているファイルにアクセスできます。 要求元プリンシパルは、ボリュームを含むスキーマに対する EXTERNAL USE SCHEMA に加えて、読み取りアクセス用の READ VOLUME 、または書き込みアクセス用の READ VOLUMEWRITE VOLUME を持っている必要があります。 「Unity カタログ ボリュームとは」を参照してください。

Unity Catalog はアクセス許可を検証し、ボリュームのストレージ パスに関連付けられている有効期間の短いスコープのクラウド ストレージ資格情報を返します。 資格情報は自動的に期限切れになり、指定されたボリュームを超えるアクセス権は付与されません。

必要条件

  • メタストアで外部アクセスを有効にする必要があります。 「メタストア上で外部データ アクセスを有効にする」を参照してください。
  • 要求元プリンシパルは、ボリュームを含むスキーマに対する EXTERNAL USE SCHEMA に加えて、読み取りアクセス用の READ VOLUME 、または書き込みアクセス用の READ VOLUMEWRITE VOLUME を持っている必要があります。
  • 外部エンジンがワークスペース URL に到達できる必要があります。
  • クラウド ストレージの URL には、ファイアウォールとネットワーク制御を介してアクセスできる必要があります。

外部データ アクセスの一時ボリューム資格情報を要求する

次の curl 例では、外部データ アクセスの一時的な資格情報を明示的に要求します。

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>"}'

または、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,
)

詳細については、Azure Databricks REST API リファレンスの「POST /api/2.0/unity-catalog/temporary-volume-credentials を参照してください。

制限事項

  • マネージド ボリュームは、読み取りアクセスでのみサポートされます。 外部ボリュームは、読み取りアクセスと書き込みアクセスの両方をサポートします。