非Databricks ユーザー向けの受信者オブジェクトをベアラー トークンを使用して作成する(Databricks からオープン共有)
この記事では、Unity Catalogが有効になっていないDatabricksワークスペースにアクセスできないOpenSharing受信者を作成し、ベアラートークンを使用して、セキュアに共有されたデータへのアクセスをそれらの受信者に付与する方法について説明します。この認証フローは、OIDCトークンフェデレーション認証フローと併せて、 オープン共有 と呼ばれます。
仕組み:
-
データプロバイダーとして、ご自身のUnity Catalogメタストアに受信者オブジェクトを作成します。
-
受信者オブジェクトを作成する際にベアラートークン方式を選択すると、Databricks はトークン、トークンを含む資格情報ファイル、および受信者と共有するためのアクティベーションリンクを生成します。
受信者オブジェクトの認証の種類は
TOKENです。必要に応じて、トークンを更新および取り消すことができます。 -
受信者はアクティベーションリンクにアクセスし、資格情報ファイルをダウンロードし、その資格情報ファイルを使用して認証を行い、アクセスを許可する共有に含めるテーブルへの読み取りアクセス権を取得します。
OIDCフェデレーションフローは、この記事で説明されているベアラー トークン フローの代替手段です。ベアラートークンフローよりも、セキュリティと利便性において利点があります。詳細については、オープンシェアリング受信者向けにOpen ID Connect (OIDC) フェデレーションを有効にするを参照してください。
2025年12月8日より前に発行され、2026年12月8日より後に有効期限が設定されているか、または有効期限がないすべてのDatabricks-to-Open共有受信者トークンは、2026年12月8日に自動的に期限切れになります。現在、有効期間が長いまたは無制限の受信者トークンを使用している場合、統合を確認し、必要に応じてトークンを更新して、この日以降の破壊的変更を回避してください。
受信者を作成します
Databricks-to-Open 共有の受信者を作成するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの CREATE RECIPIENT SQL コマンドを使用できます。
CREATE RECIPIENT**必要な権限**:共有するデータが登録されているUnity Catalogメタストアに対する 権限を持つメタストア管理者またはユーザー。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
自分が共有 タブで、 新しい受信者 をクリックします。
-
受信者名 を入力してください。
-
受信者の種類 で、 オープン を選択します。
-
Select トークン .
-
(オプション) 受信者の作成時刻から、 トークンの有効期間 の有効期限 (秒、分、時間、または日数) を設定します。有効期限を設定するには、 [有効期限の設定] を選択したままにします。トークンは、作成後最大1年間有効です。
「 有効期限を設定 」を選択し、フィールドを空白のままにした場合、トークンの有効期間はメタストア設定で設定された受信者トークンの有効期間の値にデフォルトで設定されます。受信者トークンの有効期間を変更するを参照してください。トークンの有効期間の変更とトークンのローテーションに関する情報については、受信者トークンの管理を参照してください。
-
(オプション)コメントを入力します。
-
作成 をクリックします。
-
アクティベーションリンクをコピーします。
または、後でアクティベーションリンクを取得することもできます。アクティベーションリンクを取得するを参照してください。
-
(オプション)カスタムの 受信者プロパティ を作成します。
受信者の**概要**タブで、**受信者のプロパティ**の横にある
編集アイコンをクリックします。次に、プロパティ名 ( キー ) と 値 を追加します。詳細については、受信者のプロパティの管理を参照してください。
次のコマンドをノートブックまたは Databricks SQL クエリーエディターで実行します:
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[COMMENT "<comment>"];
受信者向けにカスタムプロパティを追加することもできます。詳細については、「受信者のプロパティを管理」を参照してください。
Databricks CLI を使用して、次のコマンドを実行します。
databricks recipients create <recipient-name>
受信者向けにカスタムプロパティを追加することもできます。詳細については、「受信者のプロパティを管理」を参照してください。
出力には、受信者と共有するactivation_urlが含まれます。
受信者はTOKENのauthentication_typeで作成されます。
受信者を作成する際に、受信者のアクセスを特定のIPアドレスに制限するオプションがあります。既存の受信者に IP アクセス リストを追加することもできます。IPアクセスリストを使用してOpenSharing受信者のアクセスを制限する(Databricks-to-Open sharing)を参照してください。
アクティベーションリンクを取得します
新しい受信者のアクティベーションリンクを取得するには、カタログエクスプローラー、Databricks Unity Catalog CLI 、またはDatabricksノートブックまたはDatabricks SQL クエリエディターのDESCRIBE RECIPIENT SQL コマンドを使用できます。
受信者が既に資格情報ファイルをダウンロードしている場合、アクティベーションリンクは返されず、表示されません。
必要な権限 :メタストア管理者、USE RECIPIENT権限を持つユーザー、または受信者オブジェクト所有者。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
受信者の詳細ページで、[ アクティベーション ] リンクをコピーします。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
DESCRIBE RECIPIENT <recipient-name>;
出力にはactivation_linkが含まれます。
Databricks CLI を使用して、次のコマンドを実行します。
databricks recipients get <recipient-name>
出力にはactivation_urlが含まれます。
受信者に共有へのアクセスを許可する
受信者を作成し、共有を作成したら、受信者にこれらの共有へのアクセスを許可できます。
受信者に共有アクセス権を付与するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの GRANT ON SHARE SQL コマンドを使用できます。
必要なアクセス許可 :次のいずれかです。
- メタストア管理者。
- 共有オブジェクトと受信者オブジェクト ((
USE SHARE+SET SHARE PERMISSION) または共有の所有者) および (USE RECIPIENTまたは受信者の所有者) の両方に対する委任されたアクセス許可または所有権。
手順については、「OpenSharing データ共有へのアクセスを管理する (プロバイダー向け)」を参照してください。
受信者に接続情報を送信します。
共有しているデータへのアクセス方法を受信者に知らせる必要があります。セキュリティで保護されたチャンネルを使用して、アクティベーションリンクと使用手順へのリンクを共有します。
認証情報ファイルは1回しかダウンロードできません。受信者はダウンロードした認証情報を秘密情報として扱い、組織外で共有してはなりません。認証情報が安全に処理されていない可能性がある場合は、いつでも受信者の認証情報をローテーションできます。安全な受信者アクセスを確保するための認証情報管理の詳細については、「トークンのセキュリティに関する考慮事項」を参照してください。
受信者トークンを管理する
Databricks-to-Open Sharingベアラー トークン フローを使用してデータを受信者と共有している場合、その受信者のトークンをローテーションする必要がある場合があります。トークンのローテーションは、既存のトークンを期限切れに設定し、新しいトークンとアクティベーションURLに置き換えることで構成されます。
次の状況では、受信者のトークンをローテーションし、新しいアクティベーション URL を生成する必要があります。
- 既存の受信者トークンが期限切れになる場合。
- 受信者がアクティベーションURLを紛失した場合、または侵害された場合
- 受信者によってダウンロードされた後に、資格情報が破損、紛失、または不正使用された場合。
- メタストアの受信者トークンの有効期間を変更する場合。受信者トークンの有効期間を変更するを参照してください。
トークンのセキュリティに関する考慮事項
特定の時点で、受信者は最大2つのトークンを持つことができます。アクティブなトークンとローテーションされたトークンです。ローテーションされたトークンとは、有効期限が設定され、アクティブなトークンに置き換えられるトークンです。ローテーションされたトークンの有効期限が切れるまで、トークンを再度ローテーションしようとすると、エラーが発生します。
受信者のトークンをローテーションする際、既存の受信者トークン(ローテーションされるトークン)の有効期限が切れるまでの秒数を--existing-token-expire-in-secondsに設定できます。値を0に設定すると、既存の受信者トークンは直ちに期限切れになります。
Databricks は、受信者組織が新しいアクティベーションURLにアクセスする時間を与えつつ、受信者が2つのアクティブなトークンを持つ時間を最小限に抑えるような比較的短い期間に--existing-token-expire-in-secondsを設定することを推奨します。既存の受信者トークンが侵害された疑いがある場合は、Databricks は直ちにその有効期限を強制的に切ることを推奨します。
受信者の既存のアクティベーション URL が一度もアクセスされていない場合、既存のトークンをローテーションすると、そのアクティベーション URL は無効になり、新しい URL に置き換えられます。
すべての受信者トークンが期限切れになった場合、トークンをローテーションすると、既存のアクティベーションURLが新しいものに置き換えられます。Databricks は、トークンの有効期限が切れた受信者を速やかにローテーションまたは削除することを推奨します。
受信者のアクティベーションURLが誤って間違ったユーザーに送信された場合、または安全でないチャンネル経由で送信された場合、Databricks では、次のことをお勧めします:
- 共有への受信者のアクセスを取り消します。
- 受信者をローテーションし、
--existing-token-expire-in-secondsを0に設定します。 - 安全なチャンネルを通じて、意図した受信者に新しいアクティベーションURLを共有してください。
- アクティベーション URL にアクセスしたら、受信者に共有へのアクセス権を再度付与します。
極端な状況では、受信者のトークンをローテーションする代わりに、受信者をドロップ して再作成できます。
受信者のトークンをローテーションする
受信者のトークンをローテーションするには、Catalog Explorer または Databricks Unity Catalog CLI を使用できます。
必要なアクセス許可 : 受信者オブジェクトの所有者。
新しいアクティベーションリンクを共有した後、受信者はそのリンクで新しい資格情報を適用する必要があります。受信者がUnity Catalogで資格情報をプロバイダーオブジェクトとしてインポートした場合、Databricks REST APIを使用してプロバイダーオブジェクトを更新する必要があります。オープン受信者の資格情報をローテーションするを参照してください。
- Catalog Explorer
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
左側のウィンドウで、 OpenSharing メニューを展開し、 自分が共有 を選択します。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
一番右の列にある トークン管理 の トークンの有効期限 の横で、 ローテーション をクリックします。
-
トークンのローテーション ダイアログで、トークンの有効期限をすぐに設定するか、設定した期間だけ期限切れにするように設定します。既存のトークンをいつ期限切れにするかについてのアドバイスについては、「 トークンのセキュリティに関する考慮事項」を参照してください。
-
ローテーション をクリックします。
-
詳細 タブで、新しい アクティベーションリンク をコピーして、安全なチャンネルを介して受信者と共有します。アクティベーションリンクを取得するを参照してください。
-
Databricks CLIを使用して、次のコマンドを実行します。プレースホルダーの値を置き換えてください:
<recipient-name>:受信者の名前。<expiration-seconds>:既存の受信者トークンの期限切れまでの秒数。この期間中、既存のトークンは引き続き使用できます。0の値は、既存のトークンが直ちに期限切れになることを意味します。既存のトークンをいつ期限切れにするかについてのアドバイスについては、「トークンのセキュリティに関する考慮事項」を参照してください。
Bashdatabricks recipients rotate-token \
<recipient-name> \
<expiration-seconds> -
受信者の新しいアクティベーションリンクを取得し、安全なチャンネルを介して受信者と共有します。 アクティベーションリンクを取得するを参照してください。
受信者トークンの有効期間を更新します
既存の受信者トークンの有効期間を更新するには、Catalog Explorer を使用してください。
必要なアクセス許可 : 受信者オブジェクトの所有者。
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
左側のウィンドウで、 OpenSharing メニューを展開し、 自分が共有 を選択します。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
一番右の列の トークン管理 の下、 トークンの有効期限 の横にある 更新 をクリックします。
-
[受信者トークンの有効期間を編集] ダイアログで、新しいトークンの有効期間を設定します。既存のトークンをいつ期限切れにするかについてのアドバイスについては、トークンのセキュリティに関する考慮事項を参照してください。
-
保存 をクリックします。
受信者トークンの有効期間を変更する
Unity Catalogメタストアのデフォルトの受信者トークンの有効期間を変更する必要がある場合は、Catalog ExplorerまたはDatabricks Unity Catalog CLIを使用できます。
既存の受信者の受信者トークンの有効期間は、メタストアのデフォルト受信者トークンの有効期間を変更しても自動的に更新されません。 新しいトークンの有効期間を特定の受信者に適用するには、トークンをローテーションする必要があります。受信者トークンの管理を参照してください。
必要なアクセス許可 :アカウント管理者。
- Catalog Explorer
- CLI
- アカウントコンソールにログインします。
- サイドバーで [
カタログ ]をクリックします。
- メタストア名をクリックしてください。
- 「OpenSharing 受信者トークンの有効期間」の下にある「編集」をクリックします。
- 有効期限の設定 を有効にします。
- 秒、分、時間、または日数を入力し、測定単位を選択してください。トークンは作成後最大1年間有効です。
- 保存 をクリックします。
Databricks CLIを使用して、次のコマンドを実行します。12a345b6-7890-1cd2-3456-e789f0a12b34をメタストアのUUIDに置き換え、86400を受信者トークンが期限切れになるまでの秒数に置き換えます。トークンは作成後、最大1年間有効です。
databricks metastores update \
12a345b6-7890-1cd2-3456-e789f0a12b34 \
--delta-sharing-recipient-token-lifetime-in-seconds 86400