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

重要

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

ヒント

Microsoft Fabricを使用してAzure Databricksデータを読み取る方法については、「Microsoft Fabricを使用して Unity カタログに登録されているデータを読み取るを参照してください。

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

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

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

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

  • テーブル資格情報の提供 では、Unity カタログメタストアに登録されているデータにアクセスできます。
  • パス資格情報の自動販売機 は、Unity カタログメタストア内の外部の場所へのアクセスを提供します。

必要条件

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

テーブル資格情報の配布

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

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

テーブル認証情報の提供では、以下のテーブルタイプと操作がサポートされています。

テーブルのタイプ Read 書き込む 作成
マネージド デルタ はい はい* はい*
外部デルタ はい はい はい
マネージド・アイスバーグ はい はい はい
Iceberg 読み取りを使用したデルタ (UniForm) はい 可** いいえ

* デルタ クライアントから Unity Catalog 管理テーブルの作成および書き込みは、ベータです。

** Delta クライアントから UniForm テーブルに外部から書き込んだ後、 MSCK REPAIR TABLE 実行して Iceberg メタデータを生成します。

Delta Lake によってサポートされるテーブルへのアクセスをサポートするクライアントもあれば、テーブルで Iceberg 読み取り (UniForm) を有効にする必要があるクライアントもあります。 デルタ テーブルを Iceberg クライアントで読み取る方法についてを参照してください。

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

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

このセクションでは、資格情報の自動販売機 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 を参照してください。

制限事項

次の制限があります。

  • すべての外部クライアントが資格情報の自動販売機をサポートしているわけではありません。サポートは、基になるクラウド オブジェクト ストレージによって異なる場合があります。
  • Unity カタログのマネージド テーブルと Unity カタログの外部テーブルのみがサポートされています。
    • Iceberg 読み取りに対して有効になっているテーブルは、この要件を共有します。 デルタ テーブルを Iceberg クライアントで読み取る方法についてを参照してください。
    • Delta Lake リーダー クライアントは、Delta Lake によってサポートされるテーブルのみを読み取ることができ、テーブルで有効になっているすべてのリーダーまたはライター プロトコルをサポートする必要があります。 Delta Lake の機能の互換性とプロトコルに関する記事を参照してください。
    • Delta Lake を使用しない外部テーブルでは、トランザクションの保証は提供されません。
  • 次のテーブルの種類または機能が有効になっているテーブルはサポートされていません。
    • 行フィルターまたは列マスクを含むテーブル。
    • Delta Sharingで共有されたテーブル。
    • レイクハウス フェデレーション テーブル (外部テーブル)。
    • ビュー。
    • 具体化されたビュー。
    • Lakeflow Spark 宣言型パイプライン ストリーミング テーブル。
    • オンライン テーブル。
    • ベクター検索インデックス。
  • 資格情報の更新は、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 リファレンスの「一時パス資格情報を生成する」を参照してください。