事前定義されたデータマスキング関数 - Amazon Aurora

事前定義されたデータマスキング関数

pg_columnmask 拡張機能は、pg_columnmask ポリシーのマスキング式として使用できる C 言語 (高速実行用) で記述された組み込みユーティリティ関数を提供します。

mask_text

設定可能な可視性オプションを使用してテキストデータをマスクする関数。

引数:

パラメータ Datatype 説明
input TEXT

マスクする元のテキスト文字列

mask_char CHAR(1)

マスキングに使用される文字 (デフォルト: 'X')

visible_prefix INT

入力テキストの先頭でマスクされていないままになる文字数 (デフォルト: 0)

visible_suffix INT

マスクされていないままになる入力テキストの末尾の文字数 (デフォルト: 0)

use_hash_mask BOOLEAN

TRUE の場合、mask_char の代わりにハッシュベースのマスキングを使用します (デフォルト: FALSE)

例 さまざまなマスキングオプションの使用

入力文字列全体をデフォルトの「X」文字でマスクする

postgres=> SELECT pgcolumnmask.mask_text('Hello World'); mask_text ------------- XXXXXXXXXXX

mask_char 引数を使用して、別の文字を使用してテキスト入力をマスクする

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*'); mask_text ------------- ***********

visible_prefix および visible_suffix パラメータを使用して、テキストの先頭と末尾でマスクされない文字数を制御します。

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 5, 1); mask_text ------------- Hello*****d

use_hash_mask が true の場合、入力文字列はランダムな文字を使用してマスクされます。mask_char 引数は無視されますが、visible_prefixvisible_suffix は引き続き有効です。

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 2, 2, true); mask_text ------------- Hex36dOHild

mask_timestamp

パラメータ Datatype 説明
ts_to_mask TIMESTAMP

マスクする元のタイムスタンプ

mask_part TEXT

タイムスタンプのどの部分をマスクするかを指定します (デフォルト: 'all') 有効な値: 'year'、'month'、'day'、'hour'、'minute'、'second'、'all'

mask_value TIMESTAMP

マスキングに使用するタイムスタンプ値 (デフォルト: '1900-01-01 00:00:00')

mask_timestamps の使用

これらの例は、デフォルト値への完全なタイムスタンプのマスキング、特定のタイムスタンプコンポーネント (年のみ) の部分的なマスキング、カスタム置換値によるマスキングを示しています。

入力値をデフォルトのタイムスタンプに完全にマスクする

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00'); mask_timestamp --------------------- 1900-01-01 00:00:00

年のみの例からタイムスタンプの一部のみをマスクするには

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'year'); mask_timestamp --------------------- 1900-06-15 14:30:00

タイムスタンプのマスクされた値を変更するには、mask_value 引数を使用します。

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'all', '2012-12-12 12:12:12'); mask_timestamp --------------------- 2012-12-12 12:12:12

mask_timestamp

E メール構造を保持しながら E メールアドレスをマスクする関数。

パラメータ Datatype 説明
input TEXT

マスクする元の E メールアドレス

mask_char CHAR(1)

マスキングに使用される文字 (デフォルト: 'X')

mask_local BOOLEAN

TRUE の場合、E メールのローカル部分をマスクします (@ より前) (デフォルト: TRUE)

mask_domain BOOLEAN

TRUE の場合、E メールのドメイン部分をマスクします (@ の後) (デフォルト: TRUE)

mask_email の使用

これらの例は、E メールアドレスのローカル部分またはドメイン部分の完全な E メールマスキング、カスタムマスク文字、選択的マスキングを示しています。

完全なマスキング

postgres=> SELECT pgcolumnmask.mask_email('user@example.com'); mask_email ------------------ XXXX@XXXXXXX.com

マスキングに使用する文字を変更するには、mask_char を使用します。

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*'); mask_email ------------------ ****@*******.com

mask_localmask_domain を使用してローカルとドメインのマスキングを制御する

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', true, false); mask_email ------------------ ****@example.com postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', false, true); mask_email ------------------ user@*******.com