ワークスペースカタログのバインディング
Unity Catalogでは、同じメタストアに接続されているワークスペースからすべてのカタログに安心してアクセスできます。 ワークスペースとカタログのバインディングを使用すると、これをオーバーライドして、カタログを 1 つ以上の特定のワークスペースに制限できます。 バインドされていないワークスペースからのアクセスは、カタログに対する明示的な権限が付与されているユーザーであっても拒否されます。
ワークスペースカタログバインディングを使用する理由
組織およびコンプライアンスの要件では、特定のデータは指定された環境でのみアクセスできるようにする必要があると指定されることがよくあります。 また、以下のことも必要になる場合があります。
- 本番運用データを開発環境またはテスト環境から分離します。
- 特定のデータドメイン同士が結合されるのを防止する。
- 機密データは特定のワークスペースでのみ処理されるようにしてください。
Databricksでは、ワークスペースが主要なデータ処理環境であり、カタログが主要なデータドメインです。ワークスペースとカタログのバインディングは、これら 2 つの概念を結び付け、カタログ所有者とMANAGE権限を持つユーザーがどのワークスペースがどのカタログにアクセスできるかを定義できるようにします。
ワークスペースカタログのバインディングの仕組み
カタログを特定のワークスペースにバインドすると、そのカタログにアクセスできるのは、あなたが割り当てたワークスペースのみになります。割り当てリストに含まれていないワークスペースでは、ユーザーがカタログにアクセスしようとするとエラーが発生し、そのユーザーが持つ個別の権限はすべて無効になります。

この図では、 prod_catalogは 2 つの本番運用ワークスペースにバインドされています。 ユーザーがprod_catalogテーブルに対してSELECT権限を持っている場合でも、開発者ワークスペースからそのテーブルにアクセスすることはできません。
読み取り専用アクセス
カタログをワークスペースにバインドする際、そのワークスペースへのアクセスを読み取り専用に制限することもできます。そのワークスペースからカタログへのすべての書き込み操作はブロックされます。
デフォルトのワークスペースカタログの動作
安全なオープン動作の例外は、すべての新しいワークスペースに対して自動的に作成される安全なワークスペース カタログです。 このワークスペースカタログは、デフォルトでは自身のワークスペースのみに紐付けられています。このカタログのバインドを解除するか、他のワークスペースへのアクセスを拡張する場合、ワークスペース admins グループはワークスペースローカルであり、ワークスペース全体で使用できないため、必要な権限を手動で付与する必要があります。
プラットフォーム全体での執行
ワークスペースとカタログのバインディングは、プラットフォーム全体で一貫して適用されます。
- 情報スキーマクエリは、現在のワークスペースでアクセス可能なカタログのみを返します。
- データリネージとカタログエクスプローラーには、現在のワークスペースに割り当てられているカタログのみが表示されます。
ワークスペースにバインドできるもの
ワークスペースバインディングはカタログ以外にも適用されます。以下の項目もバインドできます。
- 外部ロケーション :特定のクラウドストレージパスにアクセスできるワークスペースを制限します。「特定のワークスペースに外部ロケーションを割り当てる」を参照してください。
- ストレージ認証情報 :特定のクラウド認証情報を使用できるワークスペースを制限します。特定のワークスペースにストレージ認証情報を割り当てる方法については、「ストレージ認証情報を特定のワークスペースに割り当てる」を参照してください。
カタログを1つ以上のワークスペースにバインドします。
カタログを特定のワークスペースに割り当てるには、カタログエクスプローラーまたはDatabricks CLIを使用できます。
必要な権限 : メタストア管理者、カタログ所有者、またはカタログに対するMANAGEとUSE CATALOG権限。
カタログが現在のワークスペースに割り当てられているかどうかに関わらず、メタストア管理者はメタストア内のすべてのカタログを表示でき、カタログ所有者はメタストア内で自分が所有するすべてのカタログを表示できます。ワークスペースに割り当てられていないカタログはグレー表示され、子オブジェクトは表示もクエリもできません。
- Catalog Explorer
- CLI
-
メタストアにリンクされているワークスペースにログインします。
-
クリック
カタログ
-
カタログ ペインの左側で、カタログ名をクリックします。
メインのカタログエクスプローラーペインは、デフォルトで カタログ 一覧が表示されます。そこでカタログを選択することもできます。
-
[ ワークスペース ] タブで、[ すべてのワークスペースがアクセス可能] チェックボックスをオフにします。
カタログが既に1つ以上のワークスペースに紐付けられている場合、このチェックボックスは既にオフになっています。
-
[ ワークスペースに割り当てる ] をクリックし、割り当てるワークスペースを入力または検索します。
-
(オプション)ワークスペースへのアクセスを読み取り専用に制限します。
「アクセスレベルの管理」 メニューで、 「アクセスを読み取り専用に変更」 を選択します。
カタログを編集して 「アクセス権を読み取りと書き込みに変更」 を選択することで、いつでもこの選択を元に戻すことができます。
アクセス権を取り消すには、[ ワークスペース ] タブに移動し、ワークスペースを選択して、[ 取り消し ] をクリックします。
ワークスペースにカタログを割り当てるには、2 つのDatabricks CLIコマンド グループと 2 つのステップが必要です。
以下の例では、 <profile-name> Databricks 認証構成プロファイルの名前に置き換えてください。これには、個人アクセストークンを生成したワークスペースのワークスペース インスタンス名とワークスペース ID に加えて、個人アクセストークンの値が含まれている必要があります。 個人アクセストークン認証(従来方式)を参照してください。
-
catalogsコマンドグループのupdateコマンドを使用して、カタログのisolation modeISOLATEDに設定します。Bashdatabricks catalogs update <my-catalog> \
--isolation-mode ISOLATED \
--profile <profile-name>デフォルトの
isolation-modeは、メタストアにアタッチされているすべてのワークスペースに対してOPENです。 -
workspace-bindingsコマンドグループのupdate-bindingsコマンドを使用して、ワークスペースをカタログに割り当てます。Bashdatabricks workspace-bindings update-bindings catalog <my-catalog> \
--json '{
"add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...],
"remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...]
}' --profile <profile-name>ワークスペースのバインディングを追加または削除するには、
"add"プロパティと"remove"プロパティを使用します。<binding-type>は"BINDING_TYPE_READ_WRITE"(デフォルト)または"BINDING_TYPE_READ_ONLY"いずれかになります。
カタログのすべてのワークスペース割り当てを一覧表示するには、 workspace-bindingsコマンドグループのget-bindingsコマンドを使用します。
databricks workspace-bindings get-bindings catalog <my-catalog> \
--profile <profile-name>
ワークスペースからカタログのバインドを解除する
カタログエクスプローラ または workspace-bindings CLI コマンド グループを使用してカタログへのワークスペース アクセスを取り消す手順については、「 カタログを 1 つ以上のワークスペースにバインドする」を参照してください。
ワークスペースがUnity Catalogに対して自動的に有効化され、すでにワークスペース カタログがある場合、ワークスペース管理者はそのカタログを所有し、 ワークスペース内で のみそのカタログに対するすべての権限を持ちます。 そのカタログをアンバインドするか、他のカタログにバインドする場合は、ワークスペース admins グループはワークスペース ローカル グループであるため、ワークスペース admins グループのメンバーに個別のユーザーとして、またはアカウント レベルのグループを使用して、必要な権限を手動で付与する必要があります。 アカウント グループとワークスペース ローカル グループの詳細については、「グループ ソース」を参照してください。