次の方法で共有


外部システム アクセスのための Unity Catalog の資格情報の発行

重要

この機能はパブリック プレビュー段階にあります。 プレビューの登録は、[ プレビュー ] ページで確認できます。 Azure Databricks プレビューの管理を参照してください。

ヒント

Microsoft Fabric を使用して Azure Databricks データを読み取る方法については、「Microsoft Fabric を使用して Unity カタログに登録されているデータを読み取る」を参照してください。

このページでは、Unity カタログ資格情報の自動販売機機能が、外部処理エンジンからの Azure Databricks 内のデータへのアクセスをサポートする方法について説明します。

資格情報の発行では、Unity REST API と Apache Iceberg REST カタログを使用して Unity Catalog に接続する外部システムをサポートします。 「Delta クライアントから Databricks テーブルを読み取る」および「外部システムを使用して Databricks データにアクセスする」を参照してください。

Unity Catalog の資格情報の発行とは

資格情報の自動販売機 は、Unity カタログ REST API を使用して有効期間の短い資格情報を付与します。 付与された資格情報は、統合の構成に使用される Azure Databricks プリンシパルの特権を継承します。

テーブル資格情報の自動販売機 では、Unity カタログメタストアに登録されているデータにアクセスできます。

パス資格情報の自動販売機 は、Unity カタログメタストア内の外部の場所へのアクセスを提供します。

テーブル資格情報の自動販売機

テーブルの一時的な資格情報を受信するには、要求元の Azure Databricks プリンシパル (ユーザー、グループ、またはサービス プリンシパル) に、テーブルを含むスキーマに対する EXTERNAL USE SCHEMA 特権が必要です。 Unity カタログメタストアは、外部アクセスに対して明示的に有効にする必要もあります。 「Unity カタログへの外部データ アクセスを有効にする」を参照してください。

資格情報には、有効期間の短いアクセス トークン文字列とクラウド ストレージの場所の URL が含まれます。この URL は、外部エンジンがクラウド ストレージの場所からテーブル データとメタデータにアクセスするために使用できます。

Table Unity カタログの資格情報の自動販売機では、次の機能がサポートされます。

  • Unity カタログマネージド Delta テーブルへの読み取り専用アクセス。
  • Unity カタログで管理されている Iceberg テーブルへの読み取りと書き込みアクセス。
  • Iceberg 読み取り用に構成された Delta テーブルへの読み取り専用アクセス。
  • アクセス Unity カタログの外部テーブルを作成します。
  • Unity カタログの外部テーブルへの読み取りと書き込みアクセス。

Delta Lake によってサポートされるテーブルへのアクセスをサポートするクライアントもあれば、テーブルで Iceberg 読み取り (UniForm) を有効にする必要があるクライアントもあります。 デルタ テーブルを Iceberg クライアントで読み取る方法についてを参照してください。

必要条件

  • メタストアで外部アクセスを構成し、接続を構成するプリンシパルに 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 "Authorization: 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 によってサポートされるテーブルのみを読み取ることができ、テーブルで有効になっているすべてのリーダーまたはライター プロトコルをサポートする必要があります。 Delta Lake の機能の互換性とプロトコルに関する記事を参照してください。
    • Delta Lake を使用しない外部テーブルでは、トランザクションの保証は提供されません。
  • 次のテーブルの種類または機能が有効になっているテーブルはサポートされていません。
    • 行フィルターまたは列マスクを含むテーブル。
    • Delta Sharingで共有されたテーブル。
    • レイクハウス フェデレーション テーブル (外部テーブル)。
    • ビュー。
    • 具体化されたビュー。
    • Lakeflow Spark 宣言型パイプライン ストリーミング テーブル。
    • オンライン テーブル。
    • ベクター検索インデックス。
  • 資格情報の更新は、Iceberg 1.9.0 ではサポートされていません。 資格情報の更新には、最新の Iceberg リリースを使用します。

パス資格情報の自動販売機

パスの一時的な資格情報を受信するには、要求元の Azure Databricks プリンシパルが付与されている必要があります。

  • 外部の場所に対する EXTERNAL USE LOCATION アクセス許可。
  • 外部テーブルにアクセスする場合は、スキーマに対する EXTERNAL USE SCHEMA 特権。

テーブル資格情報の自動販売機と同様に、Unity カタログメタストアは外部アクセスに対して明示的に有効にする必要があります。 「Unity カタログへの外部データ アクセスを有効にする」を参照してください。

発行された資格情報を使用すると、クラウド ストレージの場所に直接アクセスでき、関連するパスにスコープが設定されます。 これらは限られた期間有効であり、定義された場所またはテーブルを超える広範なアクセス権を付与しません。

必要条件

  • Unity カタログ メタストアで外部アクセスが有効になっている必要があり、要求元プリンシパルに EXTERNAL USE LOCATION付与する必要があります。 外部テーブルにアクセスする場合は、 EXTERNAL USE SCHEMAも許可する必要があります。 「Unity カタログへの外部データ アクセスを有効にする」を参照してください。
  • 外部エンジンが Azure Databricks ワークスペースの URL に到達できる必要があります。 これは、 IP アクセス リスト または Azure Private Link を使用するワークスペースに適用されます。
  • 資格情報の自動販売機 API によって生成されたクラウド ストレージ URL には、外部エンジンからアクセスできる必要があります。 基になるクラウド ストレージ アカウントのファイアウォールとネットワーク アクセス制御によってエンジンが許可されていることを確認します。

外部データ アクセスの一時パス資格情報を要求する

資格情報の発行のサポート状況は、外部クライアントによって異なります。 サポートされている場合、クライアントは、接続が構成されているときに、提供された資格情報を自動的に利用します。

このセクションでは、資格情報の自動販売機 API エンドポイントを明示的に呼び出す例を示します。 一部の外部クライアントでは、Unity カタログ テーブルをバックアップするクラウド オブジェクト ストレージ内のデータとメタデータにアクセスするための構成を明示的に設定する必要があります。 資格情報発行システムによって返される値を使用して、アクセスを設定できます。

次の 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>"}'

詳細については、Azure Databricks REST API リファレンスの 一時パス資格情報の生成 に関するページを参照してください。