外部システム アクセスのための Unity Catalog 資格情報の販売
重要
この機能はパブリック プレビュー段階にあります。
ヒント
Microsoft Fabric を使用して Azure Databricks データを読み取る方法については、「Microsoft Fabric を使用して Unity カタログに登録されているデータを読み取る」を参照してください。
この記事では、Unity カタログ資格情報の自動販売機機能が、外部処理エンジンからの Azure Databricks 内のデータへのアクセスをサポートする方法について説明します。
資格情報の販売は、Unity REST API および Iceberg REST カタログを使用して Unity Catalog に接続する外部システムをサポートします。 Delta クライアントから Databricks テーブルを読み取る方法に関するページと外部システムを使用して Databricks データにアクセスする方法に関するページを参照してください。
Unity Catalog 資格情報の販売とは
資格情報の自動販売機 は、Unity カタログ REST API を使用して有効期間の短い資格情報を付与します。 付与された資格情報は、統合の構成に使用される Azure Databricks プリンシパルの特権を継承します。 これらの資格情報により、Unity カタログ メタストアに登録されているデータへのアクセス権が外部クライアントに付与されます。
注
Unity Catalog 資格情報の販売では、次がサポートされます。
- Unity カタログのマネージド テーブルへの読み取り専用アクセス。
- Iceberg 読み取り用に構成されたテーブルへの読み取り専用アクセス。
- Unity カタログの外部テーブルへの読み取りと書き込みアクセス。
Delta Lake によってサポートされるテーブルへのアクセスをサポートするクライアントもあれば、テーブルで Iceberg 読み取り (UniForm) を有効にする必要があるクライアントもあります。 デルタ テーブルを Iceberg クライアントで読み取る方法についてを参照してください。
一時的な資格情報を付与するには、要求を行う Azure Databricks プリンシパル (ユーザー、グループ、またはサービス プリンシパル) に、外部エンジンからアクセスするために必要なテーブルを含むスキーマに対する EXTERNAL USE SCHEMA
特権が必要です。 スキーマを含む Unity カタログ メタストアも、外部アクセス用に明示的に有効にする必要があります。 「Unity カタログへの外部データ アクセスを有効にする」を参照してください。
資格情報には、有効期間の短いアクセス トークン文字列とクラウド ストレージの場所の URL が含まれます。この URL は、外部エンジンがクラウド ストレージの場所からテーブル データとメタデータにアクセスするために使用できます。
必要条件
- メタストアで外部アクセスを構成し、接続を構成するプリンシパルに
EXTERNAL USE SCHEMA
を付与する必要があります。 「Unity カタログへの外部データ アクセスを有効にする」を参照してください。 - Unity カタログオープン API または Iceberg REST API を使用して Azure Databricks ワークスペースにアクセスするには、要求を実行するエンジンからワークスペース URL にアクセスできる必要があります。 これには、IP アクセス リスト または Azure Private Linkを使用するワークスペースが含まれます。
- Unity カタログに登録されたデータ オブジェクトの基になるクラウド ストレージの場所にアクセスするには、Unity カタログの一時資格情報 API によって生成されたストレージ URL に、要求を実行するエンジンからアクセスできる必要があります。 つまり、基になるクラウド ストレージ アカウントのファイアウォールとネットワーク アクセス制御リストでエンジンを許可する必要があります。
外部データ アクセスの一時的な資格情報を要求する
資格情報販売のサポートは外部クライアントによって異なります。 サポートされている場合、クライアントは、接続が構成されているときに、提供された資格情報を自動的に利用します。
このセクションでは、資格情報の自動販売機 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 "Authentication: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation_name": "<READ|READ_WRITE>"}'
詳細については、Azure Databricks REST API リファレンス POST /api/2.1/unity-catalog/temporary-table-credentials を参照してください。
制限事項
次の制限があります。
- すべての外部クライアントが資格情報の自動販売機をサポートしているわけではありません。サポートは、基になるクラウド オブジェクト ストレージによって異なる場合があります。
- Unity カタログのマネージド テーブルと Unity カタログの外部テーブルのみがサポートされています。
- Iceberg 読み取りに対して有効になっているテーブルは、この要件を共有します。 Iceberg クライアントでデルタ テーブルを読むを参照してください。
- Delta Lake リーダー クライアントは、Delta Lake によってサポートされるテーブルのみを読み取ることができ、テーブルで有効になっているすべてのリーダーまたはライター プロトコルをサポートする必要があります。 「Azure Databricks で Delta Lake 機能の互換性を管理する方法」を参照してください。
- Delta Lake を使用しない外部テーブルでは、トランザクションの保証は提供されません。
- 次のテーブルの種類または機能が有効になっているテーブルはサポートされていません。
- 行フィルターまたは列マスクを含むテーブル。
- Delta Sharingで共有されたテーブル。
- レイクハウス フェデレーション テーブル (外部テーブル)。
- ビュー。
- 具体化されたビュー。
- 「Delta Live Tables」ストリーミングテーブル。
- オンライン テーブル。
- ベクター検索インデックス。