データマスキングポリシーを管理する手順 - Amazon Aurora

データマスキングポリシーを管理する手順

pg_columnmask 拡張機能が提供する手順を使用して、マスキングポリシーを管理できます。マスキングポリシーを作成、変更、または削除するには、次のいずれかの権限が必要です。

  • pg_columnmask ポリシーを作成するテーブルの所有者。

  • rds_superuser のメンバー。

  • pgcolumnmask.policy_admin_rolname パラメータによって設定された pg_columnmask ポリシーマネージャーロールのメンバー。

次のコマンドは、以降のセクションで使用するテーブルを作成します。

CREATE TABLE public.customers ( id SERIAL PRIMARY KEY, name TEXT, phone TEXT, address TEXT, email TEXT );

CREATE_MASKING_POLICY

次の手順では、ユーザーテーブルの新しいマスキングポリシーを作成します。

構文

create_masking_policy( policy_name, table_name, masking_expressions, roles, weight)

引数

パラメータ Datatype 説明
policy_name NAME

マスキングポリシーの名前。テーブルごとに一意である必要があります。

table_name REGCLASS

マスキングポリシーを適用するテーブルの修飾名または非修飾名または oid。

masking_expressions JSONB

列名とマスキング関数のペアを含む JSON オブジェクト。各キーは列名で、その値はその列に適用されるマスキング式です。

roles NAME[]

このマスキングポリシーが適用されるロール。デフォルトは PUBLIC です。

weight INT

マスキングポリシーの重み。特定のユーザーのクエリに複数のポリシーが適用される場合、重みが最も大きいポリシー (整数数が高い) がマスクされた各列に適用されます。

デフォルトは 0 です。テーブル上の 2 つのマスキングポリシーが同じ重みを持つことはできません。

戻り値の型:

なし

test_user ロールの E メール列をマスクするマスキングポリシーの作成:
CALL pgcolumnmask.create_masking_policy( 'customer_mask', 'public.customers', JSON_OBJECT('{ "email", "pgcolumnmask.mask_email(email)" }')::JSONB, ARRAY['test_user'], 100 );

ALTER_MASKING_POLICY

この手順では、既存のマスキングポリシーを変更します。ALTER_MASKING_POLICY は、ポリシーのマスキング式、ポリシーが適用されるロールのセット、およびマスキングポリシーの重みを変更できます。これらのパラメータのいずれかを省略すると、ポリシーの対応する部分は変更されません。

構文

alter_masking_policy( policy_name, table_name, masking_expressions, roles, weight)

引数

パラメータ Datatype 説明
policy_name NAME

既存のマスキングポリシーの名前。

table_name REGCLASS

マスキングポリシーを含むテーブルの修飾/非修飾名 oid。

masking_expressions JSONB

列名とマスキング関数ペアまたは NULL を含む新しい JSON オブジェクト。

roles NAME[]

このマスキングポリシーが適用される新しいロールのリスト。それ以外の場合は NULL。

weight INT

マスキングポリシーまたは NULL の新しい重み。

戻り値の型:

なし

例 他のポリシー属性を変更せずに、アナリストロールを既存のマスキングポリシーに追加する。
CALL pgcolumnmask.alter_masking_policy( 'customer_mask', 'public.customers', NULL, ARRAY['test_user', 'analyst'], NULL ); -- Alter the weight of the policy without altering other details CALL pgcolumnmask.alter_masking_policy( 'customer_mask', 'customers', NULL, NULL, 4 );

DROP_MASKING_POLICY

この手順では、既存のマスキングポリシーを削除します。

構文

drop_masking_policy( policy_name, table_name)

引数

パラメータ Datatype 説明
policy_name NAME

既存のマスキングポリシーの名前。

table_name REGCLASS

マスキングポリシーを含むテーブルの修飾/非修飾名 oid。

戻り値の型:

なし

例 マスキングポリシー customer_mask の削除
-- Drop a masking policy CALL pgcolumnmask.drop_masking_policy( 'customer_mask', 'public.customers', );