外部システムアクセス用の Unity Catalog 資格情報の販売
プレビュー
この機能は パブリック プレビュー段階です。
この記事では、Unity Catalog の資格情報の自動販売機能が、外部処理エンジンから Databricks 内のデータへのアクセスをどのようにサポートするかについて説明します。
クレデンシャルベンディングは、Unity REST API と Iceberg REST カタログを使用して Unity Catalog に接続する外部システムをサポートしています。 「Delta クライアントからの Databricks テーブルの読み取り」および「外部システムを使用した Databricks データへのアクセス」を参照してください。
Unity Catalog のクレデンシャルベンディングとは何ですか?
資格情報の自動販売 は、Unity Catalog REST API を使用して、有効期間の短い資格情報を付与します。 付与された資格情報は、統合の構成に使用された Databricks プリンシパルの特権を継承します。 これらの資格情報は、Unity Catalog メタストアに登録されているデータへのアクセス権を外部クライアントに付与します。
Unity Catalog 資格情報の自動販売は、以下をサポートしています。
- マネージドテーブルへの読み取り専用アクセス Unity Catalog 。
- Iceberg 読み取り用に設定されたテーブルへの読み取り専用アクセス。
- Unity Catalog の外部テーブルへの読み取りおよび書き込みアクセス。
一部のクライアントは Delta Lake によってサポートされるテーブルへのアクセスをサポートしますが、他のクライアントではテーブルで Iceberg 読み取り (UniForm) を有効にする必要があります。 Deltaクライアントを使用したテーブルの読み取りIcebergを参照してください。
一時的な認証情報が付与されるには、リクエストを行う Databricks プリンシパル (ユーザー、グループ、またはサービスプリンシパル) が、外部エンジンからアクセスする必要があるテーブルを含むスキーマに対する EXTERNAL USE SCHEMA
権限を持っている必要があります。 スキーマを含む Unity Catalog メタストアも、外部アクセスに対して明示的に有効にする必要があります。 「Unity Catalog への外部データ アクセスを有効にする」を参照してください。
認証情報には、外部エンジンがクラウドストレージの場所からテーブルデータとメタデータにアクセスするために使用できる、有効期間の短いアクセストークン文字列とクラウドストレージの場所のURLが含まれます。
必要条件
- メタストアで外部アクセスを構成し、接続を構成するプリンシパルに
EXTERNAL USE SCHEMA
を許可する必要があります。 「Unity Catalog への外部データ アクセスを有効にする」を参照してください。 - DatabricksUnity CatalogOpenAPIs またはIcebergRESTAPIs を使用して ワークスペースにアクセスするには、リクエストを実行するエンジンからワークスペースの URL にアクセスできる必要があります。これには、IP アクセスリストや Google Private サービス Connect を使用するワークスペースが含まれます。
- Unity Catalog に登録されたデータ オブジェクトの基になるクラウド ストレージの場所にアクセスするには、Unity Catalog の一時的な資格情報 API によって生成されたストレージ URL に、要求を実行するエンジンからアクセスできる必要があります。 つまり、エンジンは、基になるクラウド ストレージ アカウントのファイアウォールとネットワーク アクセス制御リストで許可されている必要があります。
外部データ アクセス用の一時的な資格情報を要求する
資格情報の自動販売のサポートは、外部クライアントによって異なります。 サポートされている場合、クライアントは接続が構成されたときに、自動的に販売された資格情報を利用する必要があります。
このセクションでは、資格情報の自動販売 API エンドポイントを明示的に呼び出す例を示します。 一部の外部クライアントでは、Unity Catalog テーブルをバックアップするクラウド オブジェクト ストレージ内のデータとメタデータにアクセスするために、構成を明示的に設定する必要がある場合があります。 資格情報の販売によって返される値を使用して、アクセスを構成できます。
資格情報のベンディングをサポートするテーブルのリストを取得するには、 include_manifest_capabilities
オプションを有効にして ListTables API を呼び出します。 HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT
または HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT
とマークされたテーブルのみが、temporary-table-credentials API で参照できます。「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>"}'
詳細については、Databricks REST API リファレンスの 「POST /api/2.1/unity-catalog/temporary-table-credentials 」を参照してください。
制限
次の制限があります。
-
すべての外部クライアントが資格情報の自動販売をサポートしているわけではなく、サポートは基になるクラウド オブジェクト ストレージによって異なる場合があります。
-
サポートされているのは Unity Catalog マネージドテーブルと Unity Catalog 外部テーブルのみです。
- Iceberg 読み取りが有効になっているテーブルは、この要件を共有します。 Deltaクライアントを使用したテーブルの読み取りIcebergを参照してください。
- Delta Lake リーダー クライアントは、Delta Lake によってサポートされているテーブルのみを読み取ることができ、テーブルで有効になっているすべての有効なリーダーまたはライター プロトコルをサポートする必要があります。 「Databricks で Delta Lake 機能の互換性を管理する方法」を参照してください。
- Delta Lake を使用しない外部テーブルでは、トランザクションの保証は提供されません。
-
次のテーブルタイプまたは機能が有効になっているテーブルはサポートされていません。
-
行フィルターまたは列マスクを持つテーブル。
-
Delta Sharing を使用して共有されるテーブル。
-
レイクハウスフェデレーションで接続されたテーブル (フォーリンテーブル)。
-
表示モード。
-
マテリアライズドビュー。
-
DLT ストリーミングテーブル.
-
オンライン テーブル。
-
ベクトル検索インデックス。
-