外部システムアクセス用の Unity Catalog クレデンシャルベンディング
プレビュー
この機能は パブリック プレビュー段階です。
このページでは、Unity Catalog 資格情報の自動販売機能で、外部処理エンジンから Databricks 内のデータへのアクセスをサポートする方法について説明します。
認証情報の自動販売は、Unity REST API と Apache Iceberg REST カタログを使用して Unity Catalog に接続する外部システムをサポートしています。「Delta クライアントからの Databricks テーブルの読み取り」および「外部システムを使用した Databricks データへのアクセス」を参照してください。
Unity Catalog のクレデンシャルベンディングとは何ですか?
クレデンシャルベンディング は、Unity Catalog REST API を使用して、有効期間の短い資格情報を付与します。 付与された資格情報は、統合の構成に使用された Databricks プリンシパルの特権を継承します。
テーブル資格情報の自動販売 は、Unity Catalog メタストアに登録されているデータへのアクセスを提供します。
パス資格情報の自動販売 は、 Unity Catalog メタストアの外部ロケーションへのアクセスを提供します。
テーブル資格情報の自動販売
テーブルの一時的な資格情報を受け取るには、要求元の Databricks プリンシパル (user、グループ、またはサービスプリンシパル) が、テーブルを含むスキーマに対する EXTERNAL USE SCHEMA
権限を持っている必要があります。 Unity Catalog メタストアも、外部アクセスに対して明示的に有効にする必要があります。「 Unity Catalog への外部データ アクセスを有効にする」を参照してください。
認証情報には、外部エンジンがクラウドストレージの場所からテーブルデータとメタデータにアクセスするために使用できる、有効期間の短いアクセストークン文字列とクラウドストレージの場所のURLが含まれます。
テーブル Unity Catalog 資格情報の自動販売では、次のものがサポートされています。
- Unity Catalog で管理されている Delta テーブルへの読み取り専用アクセス。
- Unity Catalog で管理される Iceberg テーブルへの読み取りおよび書き込みアクセス。
- Iceberg 読み取り用に構成された Delta テーブルへの読み取り専用アクセス。
- アクセス Unity Catalog 外部テーブルを作成します。
- Unity Catalog の外部テーブルへの読み取りおよび書き込みアクセス。
一部のクライアントは Delta Lake によってサポートされるテーブルへのアクセスをサポートしますが、他のクライアントではテーブルで Iceberg 読み取り (UniForm) を有効にする必要があります。 Deltaクライアントを使用したIcebergテーブルの読み取りを参照してください。
必要条件
- メタストアで外部アクセスを構成し、接続を構成するプリンシパルに
EXTERNAL USE SCHEMA
を許可する必要があります。 「Unity Catalog への外部データ アクセスを有効にする」を参照してください。 - DatabricksUnity CatalogOpenAPI またはIcebergRESTAPI を使用して ワークスペースにアクセスするには、リクエストを実行するエンジンからワークスペースの URL にアクセスできる必要があります。これには、IP アクセスリストや Google Private Service 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 "Authorization: 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 によってサポートされているテーブルのみを読み取ることができ、テーブルで有効になっているすべての有効なリーダーまたはライター プロトコルをサポートする必要があります。Delta Lake 機能の互換性とプロトコルを参照してください。
- Delta Lake を使用しない外部テーブルでは、トランザクションの保証は提供されません。
-
次のテーブルタイプまたは機能が有効になっているテーブルはサポートされていません。
- 行フィルターまたは列マスクを持つテーブル。
- Delta Sharing を使用して共有されるテーブル。
- レイクハウスフェデレーションで接続されたテーブル (フォーリンテーブル)。
- 表示モード。
- マテリアライズドビュー。
- Lakeflow 宣言型パイプライン ストリーミングテーブル.
- オンライン テーブル。
- ベクトル検索インデックス。
-
資格情報の更新は、Iceberg 1.9.0 ではサポートされていません。最新の Iceberg リリースを使用して、資格情報を更新します。
パス資格情報の自動販売
パスの一時的な資格情報を受け取るには、要求元の Databricks プリンシパルに次の権限を付与する必要があります。
- 外部ロケーションに対する
EXTERNAL USE LOCATION
権限。 - スキーマに対する
EXTERNAL USE SCHEMA
特権 (外部テーブルにアクセスする場合)。
テーブル資格情報の自動販売と同様に、Unity Catalog メタストアは外部アクセスに対して明示的に有効にする必要があります。「 Unity Catalog への外部データ アクセスを有効にする」を参照してください。
発行された資格情報により、関連するパスをスコープで設定したクラウドストレージの場所への直接アクセスが可能になります。これらは限られた期間有効であり、定義された場所またはテーブルを超える広範なアクセスは許可されません。
必要条件
- Unity Catalog メタストアでは外部アクセスが有効になっている必要があり、要求元のプリンシパルには
EXTERNAL USE LOCATION
が付与されている必要があります。外部テーブルにアクセスする場合は、EXTERNAL USE SCHEMA
も付与する必要があります。「 Unity Catalog への外部データ アクセスを有効にする」を参照してください。 - 外部エンジンは、Databricks ワークスペースの URL に到達できる必要があります。これは、 IPアクセスリスト または Google Private サービスConnectを使用するワークスペースに適用されます。
- 資格情報販売 API によって生成されたクラウドストレージ URL は、外部エンジンからアクセスできる必要があります。エンジンが、基盤となるクラウド ストレージ アカウントのファイアウォールとネットワーク アクセス制御によって許可されていることを確認します。
外部データアクセス用の一時パス資格情報を要求する
資格情報の自動販売のサポートは、外部クライアントによって異なります。 サポートされている場合、クライアントは接続が構成されたときに、自動的に販売された資格情報を利用する必要があります。
このセクションでは、資格情報の自動販売 API エンドポイントを明示的に呼び出す例を示します。 一部の外部クライアントでは、Unity Catalog テーブルをバックアップするクラウド オブジェクト ストレージ内のデータとメタデータにアクセスするために、構成を明示的に設定する必要がある場合があります。 資格情報の販売によって返される値を使用して、アクセスを構成できます。
次の 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>"}'
詳細については、Databricks REST API リファレンスの「 一時パス資格情報の生成」 を参照してください。