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

ABAC GRANTポリシー(ベータ版)

備考

ベータ版

ABAC GRANTポリシーはベータ版です。GRANTポリシーはカタログまたはスキーマレベルでアタッチされ、サポートされているセキュリティ保護可能なオブジェクトタイプに対して権限を付与します。付与できる権限は、セキュリティ保護可能なタイプによって異なります。サポートされているセキュリティ保護可能なタイプと権限を参照してください。

ABAC GRANTポリシーは、管理タグが条件に一致するセキュリティ保護可能なオブジェクトに対して、Unity Catalogの権限を動的に付与します。このページでは、ABAC GRANT ポリシーの作成、編集、一覧表示、削除の方法、GRANT ポリシーと直接付与の相互作用、および現在のベータ版の範囲と制限について説明します。

サポートされている任意のセキュリティ保護可能なタイプに対して、カタログエクスプローラーまたはDatabricks SDKを使用してABAC GRANTポリシーを作成および管理できます。SQL はモデルに対してのみサポートされています。

ABACの概要、および管理タグやhas_taghas_tag_valueなどの組み込み関数といった主要な概念については、属性ベースアクセス制御(ABAC)の基本概念を参照してください。

コンピュートの要件

SQLを使用してGRANTポリシーを作成、変更、または削除するには、Databricks Runtime 18 LTS以上を実行しているクラシックコンピュートリソースが必要です。

注記

Databricks Runtime 18 は Databricks Runtime 18.0、18.1、および 18.2 より新しいです。以前はより新しい番号のバージョンとして提供されていた機能が、代わりに Databricks Runtime 18 への日付付きアップデートとして提供されます。詳細については、統合リリースノートについてを参照してください。

GRANT ポリシーとは何ですか?

GRANTポリシーは、管理タグがポリシーの条件と一致するセキュリティ保護可能なオブジェクトに、Unity Catalogの権限を動的に付与する属性ベースのアクセス制御ポリシーです。Unity Catalog は、アクセスがチェックされるたびに、ポリシーのスコープ内にある各セキュリティ保護可能なオブジェクトの管理タグに対して、ポリシーの WHEN 条件を評価し、一致するすべてのセキュリティ保護可能なオブジェクトに権限を付与します。

これに対し、直接のGRANTステートメントは、3階層の名前空間(catalog.schema.object)で識別される保護可能なオブジェクトに権限を割り当てます。

GRANT ポリシーは、作成した管理タグ、または Databricks によって条件で事前定義されたシステムタグのいずれかを参照できます。

GRANT ポリシーの例

これらの例は、顧客が登録したMLflowモデルと、system.ai内のDatabricksがホストする基盤モデルの両方に適用されます。Unity CatalogでのMLflowモデルの登録方法に関する情報については、Unity Catalogでのモデルのライフサイクルの管理を参照してください。Databricks でホストされている基盤モデルについては、「Unity Catalog からの AI モデルおよび LLM モデルへのアクセス」を参照してください。

以下のポリシーでは、production.ml_models 内の顧客登録済み MLflow モデルに適用された lifecycle 管理タグを使用します。このポリシーは、lifecycle = 'production'というタグが付いたモデルに対してのみEXECUTEを付与します:

SQL
CREATE POLICY grant_production_model_access
ON SCHEMA production.ml_models
COMMENT 'Grant EXECUTE on production MLflow models'
TO `analysts`
GRANT EXECUTE FOR MODELS
WHEN has_tag_value('lifecycle', 'production');

以下のポリシーは、事前に適用された ai.model_creator システムタグを使用して、contractors を除く system.ai 内のすべての Anthropic がホストする基盤モデルに EXECUTEdata_scientists に付与します。このポリシーは、Databricks が後で追加するあらゆる Anthropic モデルを自動的に対象とします。

SQL
CREATE POLICY grant_anthropic_foundation_models
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on Anthropic foundation models'
TO `data_scientists`
EXCEPT `contractors`
GRANT EXECUTE FOR MODELS
WHEN has_tag_value('ai.model_creator', 'anthropic');

直接付与を使用した同等のアクセスでは、system.aiにあるモデルごとに1つのステートメントが必要であり、Databricksが新しいAnthropicモデルを追加するたびに再発行されます。

SQL
GRANT EXECUTE ON MODEL `system`.`ai`.`databricks-claude-sonnet-4-6` TO `data_scientists`;
GRANT EXECUTE ON MODEL `system`.`ai`.`databricks-claude-opus-4-7` TO `data_scientists`;
GRANT EXECUTE ON MODEL `system`.`ai`.`databricks-claude-haiku-4-5` TO `data_scientists`;

GRANTポリシーは、行フィルターおよび列マスクポリシーとは2つの点で異なります。

  • 行フィルターと列マスクのポリシーは、ユーザーがすでにアクセスできるデータの内容を制限します。GRANT ポリシーは、ユーザーがそもそもオブジェクトにアクセスできるかどうかを決定します。
  • 行フィルターと列マスクのポリシーには、フィルターまたはマスクを実装するためのユーザー定義関数 (UDF) が必要です。GRANT ポリシーは UDF を使用しません。条件はポリシー定義にインラインで表現されます。

付与できる権限は、セキュリティ保護可能なタイプによって異なります。サポートされているタイプとそのポリシーで付与可能な権限の完全なリストについては、サポートされているセキュリティ保護可能なタイプと権限を参照してください。

サポートされているセキュリティ保護可能なタイプと権限

次の表に、サポートされているタイプと、それらに対してポリシーで付与可能な権限を示します。Unity Catalog は、ポリシー作成時に指定した権限をセキュリティ保護可能なタイプに対して検証し、そのタイプでサポートされていない権限は拒否します。

セキュリティ保護可能なタイプ

APPLY_TAG

EXECUTE

READ_METADATA

READ_SKILL

WRITE_SKILL

MODEL

MODEL_SERVICE

MODEL_PROVIDER_SERVICE

MCP_SERVICE

AGENT_SERVICE

SKILL

セキュリティ保護可能なタイプ

APPLY_TAG

EXECUTE

READ_METADATA

READ_SKILL

WRITE_SKILL

MODEL

MODEL_SERVICE

MODEL_PROVIDER_SERVICE

MCP_SERVICE

AGENT_SERVICE

SKILL

ダッシュ(—)は、そのセキュリティ保護可能なタイプに対してGRANTポリシーを通じてその権限を付与できないことを意味しますが、直接的なGRANTステートメントを使用して付与できる場合があります。各オブジェクトタイプに対して直接付与できるすべての権限については、Unity Catalog権限リファレンスを参照してください。

SKILL EXECUTE をサポートしていません。代わりに READ_SKILL および WRITE_SKILL を使用して、スキルのアクセスを管理してください。

GRANT ポリシーと直接のGRANTの連携

オブジェクトに対する有効な権限は、直接付与された権限と、適用可能なすべてのGRANTポリシーの和集合です。この結合ロジックは、サポートされている型と権限に含まれるすべてのサポート対象の型と権限に適用されます。以下の例では、モデルに対して EXECUTE を使用しています。次のいずれかが当てはまる場合、プリンシパルはモデルに対して EXECUTE を保持します:

  • モデルのカタログまたはスキーマにアタッチされたGRANTポリシーは、TOにプリンシパルをリストし(EXCEPTにはリストしません)、ポリシーのWHEN条件がモデルのタグと一致します。
  • モデル、そのスキーマ、またはそのカタログに対する直接のGRANT EXECUTEは、直接付与されたか、グループメンバーシップを通じてか、あるいは他の管理権限を通じてかにかかわらず、そのプリンシパルに適用されます。

アクセスはこれらのソースの結合であるため、より選択的なGRANTポリシーは、除外されたプリンシパルがEXECUTEを欠いていることを意味しません。プリンシパルは、モデルに対する直接付与、またはその親スキーマもしくは親カタログを介して、まだ権限を保持できます。モデルに対するEXECUTEの制御の主な方法としてGRANTポリシーを使用する予定がある場合は、まず、すでに存在する直接のGRANTがそのポリシーを上書きする可能性があるかどうかを判断してください。

  • スコープがそのスキーマまたはカタログ内のモデルをカバーするすべてのGRANTポリシーを一覧表示するには、SHOW EFFECTIVE POLICIES ON SCHEMA <parent_schema> (または ON CATALOG <parent_catalog>) を使用できます。SHOW EFFECTIVE POLICIESON MODELを直接サポートしていません。対応する REST API は GET /api/2.1/unity-catalog/policies/{on_securable_type}/{on_securable_fullname}?include_inherited=true です(Python SDK: w.policies.list_policies(..., include_inherited=True))。
  • 直接の許可を列挙するために、モデルとその祖先にSHOW GRANTSを適用してください。セキュラブルオブジェクトへの直接付与に対する同等のREST APIはGET /api/2.1/unity-catalog/permissions/{securable_type}/{full_name}です(Python SDK: w.grants.get(...));直接付与と継承された付与の結合については、GET /api/2.1/unity-catalog/effective-permissions/{securable_type}/{full_name}を使用します(Python SDK: w.grants.get_effective(...))。

GRANT ポリシーを作成

GRANT ポリシーは、カタログ エクスプローラ UI、CREATE POLICY SQL ステートメント、または Databricks SDK を使用して作成できます。

GRANT ポリシーを作成するには、ポリシーがアタッチされているカタログまたはスキーマに対するMANAGEが必要か、またはそのセキュリティ保護可能なオブジェクトを所有している必要があります。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. ポリシーを添付するカタログまたはスキーマを選択します。GRANT ポリシーは、カタログまたはスキーマレベルでのみ添付できます。

  3. [ ポリシー ] タブをクリックします。

  4. 新しいポリシー をクリックします。

  5. ポリシー識別 」の下で、 ポリシー名 とオプションの 説明 を入力します。

  6. プリンシパルとスコープ:

    • 適用先 」で、ポリシーが適用されるプリンシパル(ユーザー、グループ、またはサービスプリンシパル)を選択します。
    • 除外対象 で、ポリシーから除外するプリンシパルを任意で選択します。
    • **スコープ**で、ポリシーがアタッチされているカタログまたはスキーマを確認してください。
  7. 「**ポリシータイプ**」で、「**アクセス権の付与**」を選択します。

  8. セキュリティ保護可能なオブジェクト で、ポリシーを適用するセキュリティ保護可能なタイプを選択します。サポートされているタイプと権限を参照してください。

  9. [条件] で、カタログまたはスキーマ内の選択したタイプのセキュリティ保護可能なオブジェクトに対してポリシーのスコープを設定する方法を選択します:

    • No condition は、選択したカタログまたはスキーマの下にあるそのタイプのすべてのセキュリティ保護可能なオブジェクトにポリシーを適用します。
    • これらのタグのいずれかに一致するセキュリティ保護可能なオブジェクト は、選択された管理タグの少なくとも 1 つを持つセキュリティ保護可能なオブジェクトにのみポリシーを適用します。
    • カスタム式に一致するセキュリティ保護可能なオブジェクト を使用すると、タグベースの式を記述して、ポリシーを適用するセキュリティ保護可能なオブジェクトを決定できます。使用可能な条件関数については、条件と組み込み関数を参照してください。
  10. Privileges で、付与する権限を選択します。利用可能な権限は、選択したセキュリティ保護可能なタイプによって異なります。サポートされているタイプと権限を参照してください。

  11. 保存する前に、同等のSQLステートメントを確認するため、[ コードを表示 ] をクリックしてから、[ ポリシーを作成 ] をクリックします。

GRANTポリシーの編集

親カタログまたはスキーマの [ポリシー] タブから、それらにアタッチされている GRANT ポリシーを管理します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。
  2. ポリシーが関連付けられているカタログまたはスキーマを選択してください。
  3. [ ポリシー ] タブをクリックします。
  4. 編集したいポリシーを選択します。
  5. 変更したい任意のフィールドを更新してください。
  6. ポリシーを更新 」をクリックします。

GRANT ポリシーを削除する

親カタログまたはスキーマの [ポリシー] タブから、それらにアタッチされている GRANT ポリシーを管理します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。
  2. ポリシーが関連付けられているカタログまたはスキーマを選択してください。
  3. [ ポリシー ] タブをクリックします。
  4. ポリシーを選択してください。
  5. ポリシーを削除 をクリックします。

ポリシーを表示

セキュリティ保護可能なオブジェクトで定義されているポリシーを一覧表示するには、SHOW POLICIES を使用します。SHOW EFFECTIVE POLICIES を使用すると、スキーマに影響するカタログ レベルのポリシーなど、親スコープから継承されたポリシーも含められます。

SQL
SHOW [EFFECTIVE] POLICIES ON { CATALOG | SCHEMA } securable_name

結果には、ポリシー名、ポリシータイプ、および各ポリシーが定義されているカタログまたはスキーマが含まれます。GRANT ポリシーは、同じスコープにアタッチされている行フィルターおよび列マスクポリシーと共に、ポリシータイプGRANTとして返されます。table列は、テーブルスコープのポリシー(行フィルターと列マスク)にのみ値が設定されます。カタログまたはスキーマにアタッチされているGRANTポリシーの場合、NULLとなります。

例:

SQL
SHOW EFFECTIVE POLICIES ON SCHEMA system.ai;

ポリシー名

ポリシータイプ

カタログ

スキーマ

テーブル

Comment

アンソロピック・ファウンデーションモデルの付与

GRANT

システム

AI

NULL

Anthropic基盤モデルに対する実行権を付与する

ポリシー名

ポリシータイプ

カタログ

スキーマ

テーブル

Comment

アンソロピック・ファウンデーションモデルの付与

GRANT

システム

AI

NULL

Anthropic基盤モデルに対する実行権を付与する

SHOW GRANTS には、GRANT ポリシーを通じて付与された権限は含まれません。セキュリティ保護可能なオブジェクトに対するすべてのアクセス権を確認するには、そのオブジェクトの SHOW GRANTS 出力と、親スキーマまたはカタログ上の SHOW EFFECTIVE POLICIES によって返される GRANT ポリシーを組み合わせます。

ポリシーについて説明します

特定のGRANTポリシーの詳細を表示するには、DESCRIBE POLICYを使用します。ターゲットのセキュリティ保護可能なオブジェクトに対する READ METADATA または MANAGE、あるいはオブジェクトの所有権が必要です。

SQL
{ DESC | DESCRIBE } POLICY policy_name ON { CATALOG | SCHEMA } securable_name

結果には、名前、セキュリティ保護可能なオブジェクトのタイプ、セキュリティ保護可能なオブジェクトの名前、プリンシパル、権限、およびWHEN条件を含む、ポリシーのプロパティがキーと値のペアとして表示されます。

例:

SQL
DESCRIBE POLICY grant_anthropic_foundation_models ON SCHEMA system.ai;

info_name

情報値

名前

アンソロピック・ファウンデーションモデルの付与

セキュリティ保護可能なタイプ

スキーマ

セキュリティ対象について

system.ai

プリンシパルへ

データサイエンティスト

プリンシパルを除く

請負業者

セキュリティ保護可能なタイプ

モデル

ポリシーの種類

GRANT

付与された権限

EXECUTE

条件時

AIモデル作成者:Anthropic

info_name

情報値

名前

アンソロピック・ファウンデーションモデルの付与

セキュリティ保護可能なタイプ

スキーマ

セキュリティ対象について

system.ai

プリンシパルへ

データサイエンティスト

プリンシパルを除く

請負業者

セキュリティ保護可能なタイプ

モデル

ポリシーの種類

GRANT

付与された権限

EXECUTE

条件時

AIモデル作成者:Anthropic

基盤モデルにおけるシステムタグ system.ai

Databricks が system.ai でホストする基盤モデルには、GRANT ポリシーが直接参照できるシステムタグがあらかじめタグ付けされています。これらのモデルをポリシーで使用するために、ご自身でタグ付けする必要はありません。

タグ

値の例

ai.model_creator

anthropicopenaigooglemeta

ai.model_family

claude-opusgptgeminiqwen

タグ

値の例

ai.model_creator

anthropicopenaigooglemeta

ai.model_family

claude-opusgptgeminiqwen

独自のカタログとスキーマに登録するモデルには、標準のUnity Catalogタグワークフローを使用して管理タグを適用します。See 管理タグ.

ポリシー クォータ

リソース

上限

メタストアごとのポリシー

10,000

カタログまたはスキーマごとのポリシー

100

リソース

上限

メタストアごとのポリシー

10,000

カタログまたはスキーマごとのポリシー

100

これらのクォータは、行フィルターと列マスクのポリシーに関するクォータとは別です。

監査ログ

GRANT ポリシーの作成、変更、および削除操作は、行フィルターポリシーおよび列マスキングポリシーと同じcreatePolicydeletePolicygetPolicy、およびlistPoliciesのアクションとしてログに記録されます。監査ログクエリのサンプルについては、監査ログを参照してください。

ベストプラクティス

  • TO および EXCEPT でグループを使用し、個々のユーザーは使用しないでください。 ポリシーで指定されたグループにユーザーを追加または削除すると、ポリシーを編集することなく、ポリシーの適用対象が変更されます。
  • 対象をカバーする最小のスコープでポリシーをアタッチしてください。 ポリシーを適用する保護対象を含む最も狭いスコープを使用してください。より広範なスコープでは、ポリシーのタグ照合に無関係なセキュリティ保護可能オブジェクトを含めてしまい、意図しないアクセスを許可してしまう可能性があります。
  • 安全なデフォルト設定にはタグ継承を使用してください。 子孫が継承するように、親カタログまたはスキーマでデフォルトのタグ値を適用します。継承されたタグは、異なる値が必要な特定のオブジェクトでのみ上書きする必要があります。EXCEPTと組み合わせて、ポリシーの制御された例外を処理します。
  • 同じ権限に対して、GRANTポリシーと直接付与を併用しないでください。 特定の保護可能なオブジェクトに対する特定の権限については、GRANTポリシーまたは直接付与のいずれかを選択してください。両方を選択することはできません。GRANT ポリシーは直接付与される権限と統合されます。そのため、それらを同じ保護対象で混在させると、誰がアクセス権を持っているかを把握し、変更を監査することが難しくなります。
  • USE CATALOG および USE SCHEMA の前提条件には直接付与を使用し、そのタイプのサポートされている権限には GRANT ポリシーを使用します。 GRANT ポリシーは、セキュリティ保護可能なオブジェクトへのアクセスに必要な USE CATALOG および USE SCHEMA の前提条件を付与しません。それらを直接付与し、GRANT ポリシーを使用して、サポートされている場合は EXECUTE、スキルについては READ_SKILL および WRITE_SKILL などのタグによって、そのタイプのサポートされている権限の範囲を制限します。

制限事項:

  • CREATE MODEL 権限と CREATE MODEL VERSION 権限は GRANT ポリシーではサポートされていないため、直接付与する必要があります。MODELでサポートされている権限については、サポートされているタイプと権限を参照してください。
  • ALL_PRIVILEGESMANAGE、および MODIFY は GRANT ポリシーではサポートされていません。
  • ユーザーがセキュリティ保護可能なオブジェクトにアクセスするために必要な前提条件である USE SCHEMA および USE CATALOG の権限は、GRANT ポリシーではサポートされていないため、直接付与する必要があります。
  • ポリシーはカタログまたはスキーマに添付できますが、個々のセキュリティ保護可能なオブジェクトには添付できません。
  • SHOW GRANTS GRANT ポリシーによって付与された権限は返されません。
  • INFORMATION_SCHEMA GRANT ポリシーは含まれていません。
  • SQLでのGRANTポリシーの作成は、現在モデルでのみ利用可能です。モデルサービス、モデルプロバイダーサービス、モデルコンテキストプロトコル(MCP)サービス、エージェントサービス、またはスキルに関するポリシーを作成するには、カタログエクスプローラまたはDatabricks SDKを使用します。ポリシー作成後も、SQLで管理できます。SHOW POLICIESSHOW EFFECTIVE POLICIESDESCRIBE POLICY、およびDROP POLICYはカタログまたはスキーマのスコープを取り、セキュリティ保護可能なタイプによる制限を受けません。
  • システムタグはモデルでは利用可能ですが、モデルサービスではまだ利用できません。ポリシーをモデルサービスにスコープするには、顧客が適用した管理タグで一致させます。
  • モデルまたはモデルバージョンの削除はGRANTポリシーの対象外です。モデルのバージョンとモデルを削除する方法については、Unity Catalogでのモデルのライフサイクルの管理を参照してください。
  • GRANTポリシーが定義されているモデルを共有するためにDelta Sharingを使用することはできません。Delta Sharingは、GRANTポリシーが適用されているかどうかにかかわらず、モデルサービス、モデルプロバイダーサービス、MCPサービス、エージェントサービス、またはスキルの共有をサポートしていません。

詳細情報

Unity Catalog での特権の管理も参照してください。