メインコンテンツまでスキップ

外部システムアクセス用の 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 例では、外部データ アクセスの一時的な資格情報を明示的に要求します。 この要求は、十分な特権を持つワークスペース プリンシパルによって完了する必要があります。

Bash
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 ストリーミングテーブル.

    • オンライン テーブル。

    • ベクトル検索インデックス。