이 가이드에서 만드는 것
전체 구성 흐름
1
테스트 테이블 준비
PII 컬럼이 포함된 샘플 테이블 생성
2
PII 태그 생성 및 적용
Unity Catalog 관리 태그로 PII 컬럼 분류
3
마스킹 함수(UDF) 작성
그룹 멤버십에 따라 원본/마스킹 값을 반환하는 함수 생성
4
Row Filter 함수 작성
부서별 행 접근 제어 함수 생성
5
테이블에 적용
수동 방식 또는 ABAC 정책으로 일괄 적용
6
테스트
다른 사용자로 로그인하여 마스킹/필터 확인
Step 1: 테스트 테이블 준비
Step 2: PII 태그 생성 및 적용
관리 태그(Governed Tag) 생성
UI에서 생성하는 방법:- Catalog 사이드바 클릭
- 상단의 Govern 탭 클릭
- Governed Tags > Create governed tag 클릭
- 설정:
- Key:
pii - Allowed values:
ssn,email,phone,address
- Key:
- Create 클릭
컬럼에 태그 적용
태그 확인
Step 3: 마스킹 함수(UDF) 작성
각 PII 유형별로 마스킹 함수를 만듭니다.IS_ACCOUNT_GROUP_MEMBER() 함수로 사용자 그룹을 확인하여, 권한이 있으면 원본을, 없으면 마스킹된 값을 반환합니다.
SSN 마스킹
이메일 마스킹
전화번호 마스킹
주소 마스킹
Step 4: Row Filter 함수 작성
사용자가 속한 부서의 데이터만 볼 수 있도록 행 필터를 만듭니다.admin그룹 → 모든 행 보임hr_full_access그룹 → 모든 행 보임Engineering그룹 → department = ‘Engineering’인 행만 보임Finance그룹 → department = ‘Finance’인 행만 보임
Step 5: 테이블에 적용
두 가지 방식 중 선택합니다.방법 A: 수동 적용 (Runtime 12.2+, 모든 환경)
개별 테이블에 직접 마스크와 필터를 설정합니다. 테이블 수가 적을 때 적합합니다.방법 B: ABAC 정책 (Runtime 16.4+, 권장)
PII 태그가 붙은 모든 테이블에 자동으로 적용됩니다. 테이블이 많거나 새 테이블이 자주 추가될 때 적합합니다.
참고
ABAC 정책의 핵심 장점: 나중에 pii = email 태그가 붙은 새 테이블이 추가되면 자동으로 마스킹 정책이 적용됩니다. 테이블별로 수동 설정할 필요가 없습니다.
Step 6: 테스트
현재 사용자의 그룹 멤버십 확인
마스킹 결과 확인
pii_authorized 그룹이 아닌 Engineering 그룹 사용자의 결과:
- PII 컬럼은 마스킹됨
- Engineering 부서의 행만 보임 (Row Filter)
pii_authorized + admin 그룹 사용자의 결과:
- PII 컬럼 원본 노출
- 모든 부서의 행 보임
Genie Space와의 연동
이 마스킹과 필터는 Genie Space에서도 자동으로 적용됩니다.- Consumer 사용자가 Genie에서 “직원 이메일 목록 보여줘”라고 질문하면, 해당 사용자의 그룹에 따라 마스킹된 결과가 반환됩니다
- Genie Space 작성자의 크레덴셜로 쿼리가 실행되지만, 데이터 접근 권한은 조회하는 사용자 기준으로 적용됩니다
- 자세한 Genie Consumer 설정은 Genie Space Consumer 전용 운영 가이드를 참고하세요