外部システムアクセス用の 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 クレデンシャルベンディングは、以下をサポートしています。
- Unity Catalog で管理されている Delta テーブルへの読み取り専用アクセス。
- Unity Catalog で管理される Iceberg テーブルへの読み取りおよび書き込みアクセス。
- Iceberg 読み取り用に構成された Delta テーブルへの読み取り専用アクセス。
- Unity Catalog の外部テーブルへの読み取りおよび書き込みアクセス。
一部のクライアントは Delta Lake によってサポートされるテーブルへのアクセスをサポートしますが、他のクライアントではテーブルで Iceberg 読み取り (UniForm) を有効にする必要があります。 Deltaクライアントを使用したIcebergテーブルの読み取りを参照してください。
一時的な認証情報が付与されるには、リクエストを行う Databricks プリンシパル (ユーザー、グループ、またはサービスプリンシパル) が、外部エンジンからアクセスする必要があるテーブルを含むスキーマに対する EXTERNAL USE SCHEMA
権限を持っている必要があります。 スキーマを含む Unity Catalog メタストアも、外部アクセスに対して明示的に有効にする必要があります。 「Unity Catalog への外部データ アクセスを有効にする」を参照してください。
認証情報には、外部エンジンがクラウドストレージの場所からテーブルデータとメタデータにアクセスするために使用できる、有効期間の短いアクセストークン文字列とクラウドストレージの場所のURLが含まれます。
必要条件
- メタストアで外部アクセスを構成し、接続を構成するプリンシパルに
EXTERNAL USE SCHEMA
を許可する必要があります。 「Unity Catalog への外部データ アクセスを有効にする」を参照してください。 - Unity CatalogオープンAPIやIceberg REST APIを使用してDatabricksワークスペースにアクセスするには、リクエストを実行するエンジンからワークスペースの URL にアクセスできる必要があります。これには、 IP アクセスリスト または AWS Private Link を使用するワークスペースが含まれます。
- 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 リリースを使用して、資格情報を更新します。