Skip to main content
사용자 그룹/역할에 따라 PII(개인식별정보)를 자동으로 마스킹하거나 행 단위로 필터링하는 방법을 단계별로 안내합니다. Unity Catalog의 Column Mask, Row Filter, ABAC 정책을 사용합니다.

이 가이드에서 만드는 것


전체 구성 흐름

1

테스트 테이블 준비

PII 컬럼이 포함된 샘플 테이블 생성
2

PII 태그 생성 및 적용

Unity Catalog 관리 태그로 PII 컬럼 분류
3

마스킹 함수(UDF) 작성

그룹 멤버십에 따라 원본/마스킹 값을 반환하는 함수 생성
4

Row Filter 함수 작성

부서별 행 접근 제어 함수 생성
5

테이블에 적용

수동 방식 또는 ABAC 정책으로 일괄 적용
6

테스트

다른 사용자로 로그인하여 마스킹/필터 확인

Step 1: 테스트 테이블 준비


Step 2: PII 태그 생성 및 적용

관리 태그(Governed Tag) 생성

UI에서 생성하는 방법:
  1. Catalog 사이드바 클릭
  2. 상단의 Govern 탭 클릭
  3. Governed Tags > Create governed tag 클릭
  4. 설정:
    • Key: pii
    • Allowed values: ssn, email, phone, address
  5. 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 전용 운영 가이드를 참고하세요

마스킹 해제 (필요 시)


주의사항


참고 문서