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

メタストアレベルの ABAC ポリシー (ベータ)

備考

ベータ版

Metastore-level attribute-based access control (ABAC) ポリシー are in Beta.You can attach ABAC ポリシー at the metastore, the root of the Unity Catalog object hierarchy, so a single policy applies across every catalog in the metastore.

メタストアは、ABACポリシーの有効なスコープです。メタストアにアタッチされたポリシーは、ポリシーを定義した後に作成されたオブジェクトを含め、メタストア内の各ポリシータイプでサポートされるすべてのカタログ、スキーマ、およびオブジェクトに適用されます。これにより、ガバナンスチームは、カタログごとにポリシーを設定または複製することなく、組織全体のデータ保護ルールを定義する単一の場所を持つことができます。メタストアを直接タグ付けすることはできないため、タグベースのポリシーは、カタログおよび下位レベルのオブジェクトに適用された管理タグによってオブジェクトに一致します。

行フィルター、列マスク、GRANTDENY(ベータ)の4つのABACポリシータイプすべてがメタストアレベルでサポートされています。メタストアレベルのポリシーは、他のABACポリシーと同じフィールド、条件、および評価動作を使用します。スコープのみが異なります。

Catalog Explorer 、 SQL 、または REST API を使用して、メタストアレベルのポリシーを作成および管理できます。管理タグや、has_taghas_tag_valueなどの組み込み関数を含む ABAC とコア概念の概要については、 属性ベースアクセス制御(ABAC)の基本概念を参照してください。

要件

コンピュートの要件

SQLを使用してメタストアレベルのポリシーを作成、変更、または削除するには、Databricks Runtime 19以上を実行しているコンピュートが必要です。

権限要件

  • メタストアレベルのポリシーの作成、更新、削除を行うには、メタストア管理者ロールが必要です。
  • メタストア レベルのポリシーを一覧表示および表示するには、READ METADATA またはメタストア管理者ロールが必要です。

メタストアレベルのポリシーの仕組み

メタストア レベルのポリシーは、他の ABAC ポリシーと同じルールを使用して、オブジェクト階層の下位に継承されます。

  • 1つのポリシーがメタストア全体をカバーします。 メタストアにアタッチされたポリシーは、メタストア内のすべてのカタログとスキーマにわたって、FOR句で指定されたタイプのすべてのオブジェクトに対して評価されます。
  • 新しいカタログは自動的に対象となります。 ポリシーの定義後に作成されたカタログは、カタログ所有者または管理者の操作なしで、ポリシーの条件に一致したときに自動的に対象になります。
  • 動作は下位レベルのポリシーに一致します。 メタストアレベルのポリシーは、DENY の優先順位、ワークスペースバインディング、行フィルターの構成など、各ポリシータイプがサポートする標準機能と評価動作を維持します。メタストアの範囲に固有の評価ロジックはありません。

メタストアに直接タグを付けることはできないため、メタストアレベルのポリシーでタグ条件を使用する場合は、ポリシーの対象とする各カタログまたは下位レベルのオブジェクトに管理タグを適用してください。

サポートされているポリシーのターゲット

メタストアレベルのポリシーは、カタログレベルでポリシータイプがサポートする(FOR)すべての保護可能なタイプに適用できます:

GRANTおよびDENYポリシーは、外部ロケーション、ストレージ資格情報、共有、受信者、プロバイダー、接続など、メタストア内のカタログ以外のオブジェクトを対象にすることはできません。制限事項を参照してください。

メタストアレベルのポリシーを作成する

カタログエクスプローラ UI、CREATE POLICY SQL ステートメント、または REST API を使用して、メタストアレベルのポリシーを作成できます。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。
  2. カタログ ペインの上部にある歯車アイコン。歯車アイコンをクリックし、 メタストア を選択します。
  3. [ ポリシー ] タブをクリックします。
  4. 新しいポリシー をクリックします。
  5. 選択した ポリシーの種類 に必要なポリシーフィールドを入力します。 Scope フィールドは現在のメタストアに設定されています。
  6. ポリシーの作成 」をクリックします。

メタストアレベルのポリシーを削除する

メタストアの Policies tab から、メタストアレベルのポリシーを管理します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。
  2. カタログ ペインの上部にある歯車アイコン。歯車アイコンをクリックし、 メタストア を選択します。
  3. [ ポリシー ] タブをクリックします。
  4. ポリシーを選択します。
  5. ポリシーの削除 をクリックします。

ポリシーを表示

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

SQL
SHOW [EFFECTIVE] POLICIES ON METASTORE

result includes the ポリシー name, ポリシー type, the catalog and schema of the securable each ポリシー is defined on, and that securable's type and full name.メタストアレベルのポリシーは、on_securable_typeMETASTORE に設定され、on_securable_fullname がメタストア名に設定されて返されます。Table 列は、ポリシーがテーブルに定義されている場合にのみ入力されます。

例:

SQL
SHOW POLICIES ON METASTORE;
Text
Policy Name     Policy Type  Catalog  Schema  Table  Comment                                                           on_securable_type  on_securable_fullname
-------------- ----------- ------- ------ ----- ---------------------------------------------------------------- ----------------- ---------------------
ssn_mask COLUMN_MASK NULL NULL NULL NULL METASTORE my_metastore
managed_access DENY NULL NULL NULL Prevent non-admins from managing permissions on sensitive tables METASTORE my_metastore

ポリシーの説明

DESCRIBE POLICY を使用して、特定のメタストアレベルのポリシーの詳細を表示します。メタストア上の READ METADATA、またはメタストア管理者ロールが必要です。

SQL
{ DESC | DESCRIBE } POLICY policy_name ON METASTORE

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

情報スキーマを使用したクエリーポリシー定義

メタストアレベルのポリシー定義を一覧表示するには、SYSTEM.INFORMATION_SCHEMA.ABAC_POLICY_DEFINITIONS をクエリーし、on_securable_type でフィルター処理します。

SQL
SELECT *
FROM system.information_schema.abac_policy_definitions
WHERE on_securable_type = 'METASTORE';

メタストアレベルのポリシーは、on_securable_typeMETASTOREを返し、catalog_nameschema_name、およびsecurable_nameはすべてNULLになります。利用可能な列とその他の例については、ABAC_POLICY_DEFINITIONSを参照してください。

ポリシーのクォータ

リソース

ポリシーの種類

上限

メタストアあたりのポリシー(すべてのオブジェクト)

行フィルター / 列マスク

10,000

メタストアあたりのポリシー(すべてのオブジェクト)

GRANT / DENY

10,000

メタストアごとのポリシー(直接アタッチ)

行フィルター / 列マスク

100

メタストアごとのポリシー(直接アタッチ)

GRANT / DENY

100

リソース

ポリシーの種類

上限

メタストアあたりのポリシー(すべてのオブジェクト)

行フィルター / 列マスク

10,000

メタストアあたりのポリシー(すべてのオブジェクト)

GRANT / DENY

10,000

メタストアごとのポリシー(直接アタッチ)

行フィルター / 列マスク

100

メタストアごとのポリシー(直接アタッチ)

GRANT / DENY

100

Row filter and column mask ポリシー share one quota, and GRANT and DENY ポリシー share a separate quota.The two groups are counted independently.

行フィルターおよび列マスク ポリシーのクォータの詳細については、ポリシー クォータを参照してください。GRANT ポリシーのクォータの詳細については、ポリシー クォータを参照してください。DENY ポリシーのクォータの詳細については、ポリシー クォータを参照してください。

監査ログ

メタストアレベルのポリシーの作成、変更、およびドロップの各操作は、他のABACポリシーと同じ createPolicydeletePolicygetPolicy、および listPolicies アクションの下でログに記録され、on_securable_typeMETASTORE に設定されます。監査ログのクエリーの例については、監査ロギングを参照してください。

制限事項

  • SQL は現在のメタストアのみをターゲットとします。 ON METASTORE は常に、操作対象のメタストアをターゲットとします。ON METASTORE の後にメタストア名を指定すると構文エラーになり、別のメタストアでポリシーを管理することはできません。

  • GRANT および DENY のターゲット。 GRANT および DENY ポリシーは、外部ロケーション、ストレージ資格情報、共有、受信者、プロバイダー、接続など、メタストア内のカタログ以外のオブジェクトをターゲットにすることはできません。オブジェクト階層全体の詳細については、Unity Catalog のオブジェクト階層を参照してください。

  • 情報スキーマ。 ABAC_POLICY_DEFINITIONS ビューには metastore_name 列がありません。メタストア レベルのポリシーは、on_securable_type = METASTORE によって識別されます。

  • ディザスタリカバリ. Unity Catalog 管理のディザスタリカバリでは、Databricks デプロイメントをセカンダリーリージョンにレプリケートする際、メタストアレベルのポリシーはレプリケートされません。停止が発生した場合、以前はメタストアレベルの ABAC ポリシーによって保護されていたオブジェクトは、保護されない状態でレプリケートされます。

詳細情報