사전 정의된 데이터 마스킹 함수 - Amazon Aurora

사전 정의된 데이터 마스킹 함수

pg_columnmask 확장은 pg_columnmask 정책의 마스킹 표현식으로 사용할 수 있는 C 언어(더 빠른 실행을 위해)로 작성된 내장 유틸리티 함수를 제공합니다.

mask_text

구성 가능한 가시성 옵션으로 텍스트 데이터를 마스킹하는 함수입니다.

인수

파라미터 데이터 형식 설명
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_prefixvisible_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

파라미터 데이터 형식 설명
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

이메일 구조를 유지하면서 이메일 주소를 마스킹하는 함수입니다.

파라미터 데이터 형식 설명
input TEXT

마스킹할 원래 이메일 주소

mask_char CHAR(1)

마스킹에 사용되는 문자(기본값: 'X')

mask_local BOOLEAN

TRUE인 경우 이메일의 로컬 부분(@ 이전)을 마스킹합니다(기본값: TRUE).

mask_domain BOOLEAN

TRUE인 경우는 이메일의 도메인 부분(@ 뒤)을 마스킹합니다(기본값: TRUE).

mask_email 사용

이 예제에서는 이메일 주소의 로컬 부분 또는 도메인 부분에 대한 완전한 이메일 마스킹, 사용자 지정 마스크 문자 및 선택적 마스킹을 보여 줍니다.

마스킹 완료

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