Databricks 데이터 엔지니어

Databricks 데이터 엔지니어 14강

[Professional] 보안 & 거버넌스 — Unity Catalog 심화

이번 강은 Unity Catalog 기반의 보안과 거버넌스를 심화한다.

Databricks 14강 개념도

Associate에서 GRANT 기초를 봤다면, 여기서는 3단 이름공간·계보·동적 뷰·서비스 주체로 세밀한 통제를 다룬다.

이 강의 목표는 다음과 같다.

  • 3단 이름공간과 중앙 거버넌스를 이해한다.
  • 동적 뷰로 행·열 수준 접근을 제어한다.
  • 계보·감사·서비스 주체를 활용한다.

1. 3단 이름공간과 중앙 거버넌스

Unity Catalog는 워크스페이스를 넘어 데이터 자산을 중앙에서 관리한다.

  • 이름은 카탈로그.스키마.테이블 3단으로 붙는다.
  • 하나의 메타스토어를 여러 워크스페이스가 공유해 일관된 권한을 적용한다.

2. 동적 뷰 — 행·열 보안

사용자 그룹에 따라 민감 정보를 가리거나 행을 제한한다.

CREATE VIEW users_safe AS
SELECT id,
  CASE WHEN is_account_group_member('admins') THEN ssn
       ELSE '***' END AS ssn
FROM users
WHERE is_account_group_member('kr') OR region = 'KR';
  • 열 마스킹: 조건에 따라 값을 가림.
  • 행 필터: WHERE로 그룹별 접근 범위 제한.

3. 계보와 감사

  • 계보(Lineage): 테이블·컬럼이 어디서 왔고 어디에 쓰이는지 자동 추적. 영향도 분석에 쓴다.
  • 감사 로그: 누가 언제 무엇에 접근했는지 기록.

4. 서비스 주체 (Service Principal)

자동화(잡·CI/CD)는 개인 계정 대신 서비스 주체의 자격증명으로 실행한다. 사람이 퇴사해도 파이프라인이 끊기지 않고, 권한을 최소로 부여한다.

예제

예제) 분석가는 고객 테이블을 봐야 하지만 주민번호는 관리자만 봐야 한다. 어떻게 구현하나?

해설) 원본 테이블 접근은 막고, 동적 뷰를 만들어 노출한다. 뷰에서 CASE와 is_account_group_member('admins')로 관리자 그룹에게만 실제 주민번호를, 그 외에는 마스킹 값을 보여 준다. 분석가에게는 뷰에만 SELECT 권한을 GRANT 한다.

샘플 문제

문) 자동화된 프로덕션 잡의 실행 자격증명으로 권장되는 것은?

  • (A) 개발자 개인 계정
  • (B) 서비스 주체(Service Principal)
  • (C) 공용 관리자 계정
  • (D) 익명 접근

정답: (B). 자동화는 서비스 주체로 실행해야 담당자 변경·퇴사와 무관하게 동작하고 최소 권한을 유지할 수 있다.

정리

  • Unity Catalog는 3단 이름공간으로 자산을 중앙 통제한다.
  • 동적 뷰로 열 마스킹·행 필터 등 세밀한 접근 제어를 구현한다.
  • 계보로 출처·영향을, 감사 로그로 접근을 추적한다.
  • 자동화는 서비스 주체로 실행해 안정성과 최소 권한을 확보한다.

다음 강에서는 운영 상태를 관측하는 모니터링·로깅을 다룬다.

댓글 0