アクセスリクエストを管理する
プレビュー
この機能は パブリック プレビュー段階です。
アクセス要求機能を使用すると、ユーザーはUnity Catalog内のセキュリティ保護可能なオブジェクトに対する権限を要求できます。 このページでは、管理者としてアクセス要求の宛先を構成する方法について説明します。これらの宛先は、ユーザーがデータ オブジェクトへのアクセスを要求したときにアクセス要求が送信される場所を決定します。
アクセス要求の宛先とは
ユーザーが Unity Catalog 内のオブジェクト (テーブルやビューなど) へのアクセスを要求すると、要求は 1 つ以上の構成された宛先に送信されます。宛先は、次のいずれかになります。
-
メールアドレス
-
Slack チャンネル
-
Microsoft Teams チャンネル
-
Webhook エンドポイント
-
リダイレクト URL (組織の外部アクセス要求システムへ)
オブジェクトごとに設定できるリダイレクト URL は 1 つだけです。URL が設定されている場合、他のリンク先を設定できず、ユーザーは製品内リクエスト フォームを表示する代わりに、その URL にリダイレクトされます。
Databricks で作業している場所から直接権限をリクエスト
接続先が構成されると、ユーザーはカタログエクスプローラー、SQLエディターとノートブック、AI/BIダッシュボード、Genieスペースなどの製品内画面から権限をリクエストできます。
カタログエクスプローラー
BROWSE権限を持つユーザーは、カタログツリーをナビゲートしたり、オブジェクトのページを開いたり、そこから追加の権限(SELECTなど)をリクエストできます。ユーザーは、オブジェクトのページへの直接URLを受け取ることもでき、BROWSEがなくても同じ画面からアクセスをリクエストできます。

SQL エディタ、ノートブック、その他の編集画面
クエリーまたはコマンドがINSUFFICIENT_PERMISSIONS エラーで失敗した場合、エラーメッセージには、参照テーブルを使用してリクエストを事前入力する**アクセスをリクエスト**オプションが含まれています。SQL エディタやノートブックを含む、エラーが発生するあらゆる場所で機能します。

AI/BIダッシュボード
埋め込み認証情報なしでダッシュボードが実行され、閲覧者が読み取れないデータセットをウィジェットが参照している場合、ウィジェットには不足しているデータセットに対して**アクセスをリクエスト**のモーダルが表示されます。

Genieスペース
Genieスペースが、ユーザーにアクセス権限がないテーブルを参照している場合、そのスペースはPERMISSION_DENIEDバナーを表示し、アクセスできないテーブルに対して アクセスをリクエスト するモーダルを表示します。

アクセス要求の宛先のしくみ
Unity Catalog 内のメタストア、カタログ、スキーマ、テーブル、ビュー、ボリューム、関数、モデル、ストレージ資格情報、サービス資格情報、外部ロケーション、接続など、ほとんどのオブジェクトでアクセス要求の送信先を構成できます。
リクエストを送信する際、ユーザーは 1 つ以上のプリンシパルのアクセスをリクエストできます。これには、自分自身、サービスプリンシパル、他のユーザー、またはグループが含まれます。 リクエストは構成された宛先にルーティングされます。
複数の宛先が設定されている場合、リクエストはそれらすべてに送信されます。宛先が設定されていない場合、ユーザーはオブジェクトへのアクセスを要求できません。デフォルトでは、オブジェクトには構成された宛先がありません。ただし、メタストア管理者およびワークスペース管理者は、宛先が明示的に構成されていない場合でも、任意の電子メール宛先を有効にして、適切な所有者にアクセス要求を配信できます。
リダイレクトURLが設定されている場合、ユーザーはそのURLに移動し、アクセスリクエストフォームは表示されません。ワークスペース管理者は、通知の宛先を管理するの手順に従って、外部宛先を構成できます。
宛先継承動作
Unity Catalogオブジェクト階層の上位レベルで宛先を構成すると、宛先がまだ設定されていないすべての子オブジェクトにも適用されます。 たとえば、カタログに宛先を構成すると、この宛先は、すでに宛先が設定されているスキーマとオブジェクトを除き、カタログの下にあるすべてのスキーマとオブジェクトに継承されます。

デフォルト Eメールの宛先を有効にする
Databricksは、デフォルトEメール宛先を有効にすることをお勧めします。これにより、アクセス要求が、宛先が手動で設定されていない場合でも配信されるようになります。有効にすると、カタログオブジェクトのリクエストはカタログ所有者のEメールアドレスに送信され、外部ロケーションなどのカタログ外のオブジェクトのリクエストはオブジェクト所有者のEメールアドレスに送信されます。
デフォルト Eメール宛先を有効にすると、オブジェクトに対して宛先が手動で設定されていない場合でも、アクセス要求が配信されます。 これは、Unity Catalog メタストア全体で要求の受信と応答を開始する最速の方法です。
有効にするには デフォルト宛先、メタストア管理者とワークスペース管理者の両方である必要があります。
- ワークスペースの右上隅にあるプロフィール写真をクリックし、 設定 を選択します。
- 通知 をクリックします。
- [UC でのアクセス要求の電子メール宛先を有効にする] をオンにします。
オブジェクトへのアクセス要求の宛先を構成する
オブジェクトへのアクセス要求の宛先を構成するには、オブジェクトの所有者であるか、オブジェクトに対するMANAGE権限を持っているか、メタストア管理者である必要があります。
カタログエクスプローラ、REST API、または Terraform を使用して宛先を構成できます。
既存のオブジェクトの宛先を構成する
- Catalog Explorer
- REST API
- Terraform
-
Databricks ワークスペースで、
カタログ をクリックします。
-
セキュリティ保護可能なオブジェクトを選択します。
-
ケバブメニューをクリックし、 アクセスリクエストの宛先の管理 を選択します。
-
1つ以上のEメールまたは外部の宛先を選択するか、リダイレクトURLを設定してください。URLが選択されている場合、他の宛先タイプは追加できません。

-
更新 をクリックします。
アクセス権リクエストの宛先APIを使用して、セキュリティ保護可能なオブジェクトに宛先を設定します。PATCH は、セキュリティ保護可能なオブジェクトの宛先を置き換えます。以前に設定されていなかった場合は、作成されます。
curl -X PATCH \
https://<workspace-url>/api/3.0/rfa/destinations \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"destinations": [
{ "destination_id": "data-access@example.com", "destination_type": "EMAIL" }
],
"securable": {
"type": "TABLE",
"full_name": "main.sales.orders"
}
}'
databricks_rfa_access_request_destinations リソースを使用してください。
resource "databricks_rfa_access_request_destinations" "orders" {
destinations = [
{
destination_id = "data-access@example.com"
destination_type = "EMAIL"
}
]
securable = {
type = "TABLE"
full_name = "main.sales.orders"
}
}
カタログ作成時に宛先を設定する
- Databricks ワークスペースで、
カタログ をクリックします。
- クリック
プラスアイコン。次に、 「カタログの作成」を クリックします。
- カタログの名前を入力し、 「カタログの作成」を クリックします。
- 次のモーダルで、 「カタログの構成」を クリックします。
- 「アクセス要求」 セクションで、必要に応じて宛先を追加、変更、または削除します。カタログ所有者の電子メールが宛先として自動的に含まれます。

- 「次へ」 をクリックし、 「保存」 をクリックします。
宛先はUnity Catalogオブジェクト階層に継承されます。 アクセス要求の宛先を持つカタログ内にスキーマを作成する場合、 「新しいスキーマの作成 」モーダルに継承された宛先が表示されます。

スキーマ上のこれらの宛先を変更するには、 「既存のオブジェクトの宛先を構成する」を参照してください。
アクセス要求の例
次のセクションでは、さまざまな宛先に送信されるアクセス要求の例を示します。
Eメール
アクセスリクエスト Eメールは noreply@databricks.comから送信されます。

Slack

Webhook (JSON)
{
"requesterName": "<first-name> <last-name> (<email>)",
"objectName": "<catalog>.<schema>.<table>",
"objectType": "Table",
"privileges": "SELECT",
"principalName": "<group-name>",
"onBehalfOf": "<group-name>",
"onBehalfOfType": "Group",
"comment": "My team needs access to run queries on this table.",
"databricksWorkspaceUrl": "https:/<account>.databricks.com/explore/data/<catalog>/<schema>/<table>?o=<table-id>&activeTab=permissions&showGrantModal=true&requestedPrivileges=SELECT&groupId=<group-id>"
}
詳細については、Webhook を一般的なツールと統合する方法については、以下を参照してください。
組み込み権限検証
- ユーザーが
SELECTのような権限を要求すると、前提となる権限(USE CATALOG、USE SCHEMA)が自動的にチェックされます。 - 前提条件が不足している場合、親オブジェクトの承認者に追加の要求がルーティングされます。
- 検証は、他のユーザーまたはグループに代わって提出されたリクエストにも適用されます。
アクセス要求を承認する
アクセス要求を承認するには、アクセス要求通知に送信されたリンクをたどります。このリンクにより、ワークスペースにモーダル ダイアログが開き、リクエスタ、オブジェクト、および要求された権限が表示されます。

次に、次のいずれかの承認方法を選択します。
-
グループにプリンシパルを追加 して、要求された権限の少なくとも 1 つを持つ 1 つ以上の既存のグループにリクエスタを追加します。

-
オブジェクトに直接アクセスできるように、プリンシパルに権限を付与します。 データ閲覧者 などの特権プリセットを選択して、ユーザーに複数の特権を付与することもできます。

すべてのアクセスリクエストと宛先設定の記録については、アクセスリクエストイベントを監査ログリファレンスで参照してください。