데이터 마스킹 정책 관리 절차 - 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)

인수

파라미터 데이터 형식 설명
policy_name NAME

마스킹 정책의 이름입니다. 테이블마다 고유해야 합니다.

table_name REGCLASS

마스킹 정책을 적용할 테이블의 정규화된/비정규화된 이름 또는 oid입니다.

masking_expressions JSONB

열 이름과 마스킹 함수 페어가 포함된 JSON 객체입니다. 각 키는 열 이름이며 해당 값은 해당 열에 적용할 마스킹 표현식입니다.

roles NAME[]

이 마스킹 정책이 적용되는 역할입니다. 기본값은 PUBLIC입니다.

weight INT

마스킹 정책의 가중치입니다. 지정된 사용자의 쿼리에 여러 정책을 적용할 수 있는 경우 가중치가 가장 높은(높은 정수 수) 정책이 마스킹된 각 열에 적용됩니다.

기본값은 0. 테이블의 두 마스킹 정책이 동일한 가중치를 가질 수 없습니다.

반환 유형:

없음

test_user 역할의 이메일 열을 마스킹하는 마스킹 정책 생성:
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)

인수

파라미터 데이터 형식 설명
policy_name NAME

마스킹 정책의 기존 이름입니다.

table_name REGCLASS

마스킹 정책이 포함된 테이블의 정규화된/비정규화된 이름입니다.

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)

인수

파라미터 데이터 형식 설명
policy_name NAME

마스킹 정책의 기존 이름입니다.

table_name REGCLASS

마스킹 정책이 포함된 테이블의 정규화된/비정규화된 이름입니다.

반환 유형:

없음

예 마스킹 정책 customer_mask 삭제
-- Drop a masking policy CALL pgcolumnmask.drop_masking_policy( 'customer_mask', 'public.customers', );