LLM WikiAccess-protected knowledge portal

WIKI

Databricks 2026년 8월: RBAC GA·관리형 Iceberg 공유 GA·DML 최소권한으로 달라진 데이터 거버넌스 경계

Databricks 2026년 8월 RBAC GA·관리형 Iceberg 공유 GA·DML 최소권한으로 달라진 데이터 거버넌스 경계 요약 Databricks가 2026년 8월 릴리스에서 거버넌스 제어면에 세 가지 중요한 변화를 도입했다. 1. RBAC 역할 기반 접근 제어 GA 사용자가 역할을 가정 assume 하면 그 역할의 권한만 적용되고 본인 누적 권한은 일시 차단된다. 감사 로그에 run by 실사용자 와 run as 역

경로human/study/content/database-frontier/141-databricks-august-2026-rbac-ga-iceberg-sharing-dml-privileges.md
카테고리Study
태그#dml #iceberg #mysql #privileges #rbac #sharing #study

# Databricks 2026년 8월: RBAC GA·관리형 Iceberg 공유 GA·DML 최소권한으로 달라진 데이터 거버넌스 경계

요약

Databricks가 2026년 8월 릴리스에서 거버넌스 제어면에 세 가지 중요한 변화를 도입했다.

  1. RBAC(역할 기반 접근 제어) GA: 사용자가 역할을 가정(assume)하면 그 역할의 권한만 적용되고 본인 누적 권한은 일시 차단된다. 감사 로그에 run_by(실사용자)와 run_as(역할)가 분리 기록된다.
  1. 관리형 Iceberg 테이블 공유 GA: Databricks-to-Databricks 공유뿐 아니라 외부 Iceberg 클라이언트(Spark, Trino, Flink 등)에 관리형 Iceberg 테이블을 개방할 수 있게 됐다.
  1. Unity Catalog DML 최소권한 Beta: MODIFY 권한 대신 INSERT, UPDATE, DELETE를 개별로 부여하는 세분화된 쓰기 권한이 도입됐다.

이 세 변화는 각각 독립적으로 동작하지만, 함께 사용하면 데이터 플랫폼의 권한 경계를 더 좁고 감사 가능하게 만든다.


RBAC GA: 권한 덮기와 신원 분리

기존 문제: 누적 권한 모델의 위험

Databricks 기존 모델에서 사용자는 본인에게 할당된 모든 권한을 항상 동시에 행사할 수 있다. 데이터 엔지니어가 여러 프로젝트(임상 시험 A, 임상 시험 B, 재무 데이터)에 접근 권한을 가진 경우, 어느 작업을 실행하든 세 프로젝트 모두에 동시에 접근할 수 있다.

이는 실수로 잘못된 테이블을 읽거나 쓰는 위험을 낳는다. 컴플라이언스 요건(HIPAA, GxP 등)이 있는 환경에서는 "이 작업은 임상 시험 A 데이터만 접근해야 한다"는 격리 보장을 기술적으로 강제할 수 없었다.

RBAC 역할 가정의 동작 방식

RBAC GA 이후 사용자는 작업 전에 역할을 명시적으로 가정(assume) 해야 한다.

-- 역할 목록 확인
SHOW ROLES;

-- 역할 가정 (이 세션에서 user 권한은 비활성화)
ASSUME ROLE clinical_trial_a_engineer;

-- 이 세션에서는 clinical_trial_a_engineer 권한만 적용됨
SELECT * FROM catalog_a.clinical_data.patients LIMIT 10;

-- 역할 해제
RELEASE ROLE clinical_trial_a_engineer;

역할을 가정한 동안:

ABAC(속성 기반 접근 제어)와 결합

RBAC는 Unity Catalog의 ABAC와 결합된다. 컨텍스트 속성(current_role())을 컬럼 마스크·행 필터 정책에 사용할 수 있다.

-- 역할에 따라 환자 이름 마스킹
CREATE OR REPLACE COLUMN MASK mask_patient_name
  USING COLUMNS (name)
  AS CASE
    WHEN current_role() = 'clinical_trial_a_engineer' THEN name
    ELSE '***'
  END;

ALTER TABLE patients ALTER COLUMN name SET MASK mask_patient_name;

이 패턴은 같은 테이블에서 역할마다 다른 데이터 뷰를 제공하면서 테이블 복제 없이 데이터 격리를 구현한다.

감사 로그: run_by와 run_as

RBAC의 핵심 운영 이점 중 하나는 감사 가시성이다. 역할을 가정한 상태에서 실행된 모든 작업은 Unity Catalog 감사 로그에 두 신원 모두 기록된다.

필드의미
identity_metadata.run_by실제 작업을 수행한 사람 (사용자 이메일)
identity_metadata.run_as작업이 수행된 역할

컴플라이언스 감사 시 "이 데이터에 실제로 접근한 사람이 누구인가"와 "어떤 권한 범위에서 접근했는가"를 모두 추적할 수 있다.


가정 전 (기존 모델)
사용자 Alice
모든 권한 동시 활성
catalog_a
접근 가능
catalog_b
접근 가능
재무 데이터
접근 가능
⚠️ 격리 보장 없음
가정 후 (RBAC GA)
사용자 Alice
역할 가정 중
↓ ASSUME ROLE
clinical_trial_a_engineer
catalog_a 권한만 활성
catalog_a
✓ 접근 가능
catalog_b
✗ 차단됨
재무 데이터
✗ 차단됨
✅ 기술적 격리 보장
감사 로그
run_as: clinical_trial_a_engineer
작업 유형, 시간,
대상 테이블 포함
RBAC 권한 모델: 가정 전후 비교

관리형 Iceberg 테이블 공유 GA

기존 한계

Delta Sharing의 기존 방식에서는 Unity Catalog 관리형 테이블(델타 형식)을 외부 수신자와 공유할 수 있었지만, 관리형 Iceberg 테이블은 외부 Iceberg 클라이언트에 직접 노출하는 것이 제한적이었다.

이제 가능해진 것

GA 이후 Databricks 공급자는 관리형 Iceberg 테이블을 다음 대상에게 공유할 수 있다.

공유된 테이블은 수신자의 외부 엔진에서 읽기 전용으로 Iceberg REST API를 통해 접근된다. Databricks 측에서 테이블이 관리되므로 스냅샷 관리·compaction·파일 정리는 제공자가 담당한다.

# 수신자 등록 (제공자 측)
CREATE RECIPIENT my_external_partner
  USING ID 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';

# 관리형 Iceberg 테이블을 공유
CREATE SHARE iceberg_share;
ALTER SHARE iceberg_share ADD TABLE catalog.schema.events;

GRANT SELECT ON SHARE iceberg_share TO RECIPIENT my_external_partner;

외부 Spark 클러스터에서 수신자 관점:

# Iceberg REST Catalog로 공유 테이블 접근
spark.conf.set("spark.sql.catalog.shared", "org.apache.iceberg.spark.SparkCatalog")
spark.conf.set("spark.sql.catalog.shared.type", "rest")
spark.conf.set("spark.sql.catalog.shared.uri", "https://..." )
spark.conf.set("spark.sql.catalog.shared.token", recipient_token)

df = spark.table("shared.schema.events")

운영 주의점


Unity Catalog DML 최소권한: INSERT·UPDATE·DELETE Beta

기존 MODIFY 권한의 문제

Unity Catalog에서 테이블 쓰기 권한을 부여하려면 MODIFY 권한을 사용해야 했다. 그러나 MODIFY는 INSERT, UPDATE, DELETE, TRUNCATE를 모두 포함하는 묶음 권한이다. 특정 파이프라인에 INSERT만 허용하고 싶어도 MODIFY 전체를 줄 수밖에 없었다.

새 세분화 권한

Beta로 도입된 세 권한은 각각 독립적으로 부여할 수 있다.

권한허용하는 작업포함되지 않는 것
INSERT새 행 추가UPDATE, DELETE, TRUNCATE
UPDATE기존 행 수정INSERT, DELETE, TRUNCATE
DELETE행 삭제INSERT, UPDATE, TRUNCATE
-- 수집 파이프라인 서비스 계정에 INSERT만 허용
GRANT INSERT ON TABLE catalog.schema.events TO `[email protected]`;

-- 보정 스크립트에 UPDATE만 허용 (INSERT/DELETE는 금지)
GRANT UPDATE ON TABLE catalog.schema.events TO `[email protected]`;

-- 기존 MODIFY 부여 방식은 계속 동작 (하위 호환)
GRANT MODIFY ON TABLE catalog.schema.events TO `[email protected]`;

스키마 변경(ALTER TABLE)이나 TRUNCATE는 여전히 별도 권한(MODIFY 또는 ALL PRIVILEGES)이 필요하다.


Lakeflow Connect 업데이트 (2026년 8월)

커넥터상태주요 기능
SharePointGAOffice 365 SharePoint 목록·라이브러리를 Lakeflow 파이프라인으로 수집
PagerDutyBeta인시던트·알림 데이터를 Delta 테이블로 수집해 운영 분석 활용
Default Python packagesGA파이프라인 클러스터의 기본 Python 패키지 저장소를 워크스페이스 단위로 설정

SharePoint GA는 특히 데이터 엔지니어링 팀이 비즈니스 부서의 수동 Excel/SharePoint 데이터를 자동으로 레이크하우스에 적재할 수 있게 해 자주 발생하던 수동 CSV 임포트 작업을 제거한다.


운영 체크리스트

RBAC 도입 전 확인사항:

관리형 Iceberg 공유 도입 전 확인사항:

DML 최소권한 마이그레이션:


Open question


References