본문으로 건너뛰기

RBAC 접근제어

GenD의 역할 기반 접근제어(RBAC) 시스템으로 사용자를 관리하고, 카탈로그/스키마/테이블 단위로 데이터 접근 권한을 부여하는 방법을 안내합니다.

사용자 관리

사전 준비

  • 관리자 권한으로 로그인
  • Keycloak에 사용자가 등록되어 있어야 합니다

RBAC 개요

GenD는 Unity Catalog 패턴의 3계층 RBAC를 사용합니다:

계층권한설명
CatalogUSE카탈로그 접근 허용
SchemaUSE, CREATE스키마 접근/테이블 생성
TableSELECT, INSERT, DELETE, ALL테이블 CRUD

1단계: 사용자 관리

사이드바 하단 ⚙ 관리 콘솔 → 테넌트 & 사용자 → 사용자 관리 메뉴를 클릭합니다.

Keycloak과 동기화된 사용자 목록이 표시됩니다:

컬럼설명
사용자사용자명
이메일이메일 주소
역할Keycloak 역할 (admin, analyst, viewer)
그룹소속 부서/팀
상태활성/비활성

역할 체계

역할기본 권한대상
admin전체 시스템 관리관리자
analyst데이터 조회 + 분석데이터 분석가
viewer읽기 전용일반 사용자

2단계: 데이터 권한 부여

사이드바 → 거버넌스 → 데이터 액세스 메뉴의 부여된 권한 탭(/governance/access?tab=grants, admin 전용)을 엽니다. 구 "데이터 권한" 메뉴(/admin/grants)는 이 탭으로 통합·리디렉트됩니다.

데이터 권한

2-1. 새 권한 부여

[+ 권한 추가] 버튼을 클릭합니다.

필드예시 값설명
대상 유형user / group사용자 또는 그룹
대상명analyst사용자명 또는 그룹명
오브젝트catalog / schema / table권한 범위
카탈로그sourcedb대상 카탈로그
스키마*전체 또는 특정 스키마
테이블*전체 또는 특정 테이블
권한USE / SELECT / ALL부여할 권한

2-2. 예시: analyst에게 sourcedb 읽기 권한

대상: user / analyst
오브젝트: catalog / sourcedb / * / *
권한: USE
대상: user / analyst
오브젝트: table / sourcedb / public / customers
권한: SELECT

이렇게 하면 analyst 사용자는 sourcedb 카탈로그에 접근하고, customers 테이블을 조회할 수 있습니다.


3단계: 권한 요청 (일반 사용자)

일반 사용자(viewer, analyst)는 권한이 없는 데이터에 접근할 때 권한 요청을 보낼 수 있습니다.

사이드바 → 거버넌스 → 데이터 액세스 메뉴의 요청 탭(/governance/access?tab=requests, 기본 탭)을 엽니다. 구 "권한 요청" 메뉴(/portal/permissions)는 이 탭으로 통합·리디렉트됩니다.

권한 요청

요청 흐름

1. 사용자: 데이터 액세스 **요청** 탭에서 필요한 카탈로그/테이블에 대해 권한 요청 생성
2. 관리자: 데이터 액세스 **검토** 탭에서 요청 확인 → 승인/반려
3. 시스템: 승인 시 자동으로 데이터 권한(Grant) 생성
4. 사용자: 권한 부여 완료 → 데이터 접근 가능

4단계: 권한 검증

SQL 에디터에서 권한이 올바르게 적용되었는지 확인합니다:

-- analyst 사용자로 로그인 후
-- 허용된 카탈로그 확인
SHOW CATALOGS;

-- 허용된 테이블 조회 (성공)
SELECT * FROM sourcedb.public.customers LIMIT 5;

-- 마스킹 정책이 적용된 컬럼 확인
-- phone 컬럼이 **** 로 표시됨
SELECT name, phone FROM sourcedb.public.customers LIMIT 5;

권한 매트릭스 예시

역할tpchsourcedbiceberg
adminALLALLALL
analystSELECTUSE + SELECT(일부)SELECT
viewerSELECT(tiny만)

다음 단계