권한 모델 한눈에 — Role · Collection · FGAC
D.Hub 권한 모델의 3 층 (Role · 컬렉션 ceiling · FGAC) 을 한 화면에 정렬하고, *권한 부여는 컬렉션부터 시작* 한다는 첫 규칙을 잡습니다.
관리자 시점의 첫 답은 어떤 사용자가 무엇을 볼 수 있는가 입니다. D.Hub 의 권한 모델은 3 층 으로 풀립니다 — 본 레슨은 그 3 층을 한 화면에 정렬하고 권한 부여는 컬렉션부터 시작 한다는 첫 규칙을 잡습니다.
3 층 권한 모델
| 층 | 부여 단위 | 답하는 질문 |
|---|---|---|
| Role | 컬렉션 / 사용자 또는 그룹 | "자원에 접근 할 수 있나" |
| 컬렉션 Ceiling | 컬렉션 자체 | "하위 자산이 상속 받을 권한 상한선은" |
| FGAC (Fine-Grained Access Control) | 데이터셋 컬럼 · 행 | "어떤 데이터를 볼 수 있나" |
각 층이 서로 위에 쌓여 동작합니다. Role 이 접근 자체 를 통제하고, Ceiling 이 그 위의 상한 을 정하고, FGAC 가 같은 자원 안에서 보이는 범위 를 좁힙니다.
1 층: Role 세 종
D.Hub 의 Role 은 세 가지로 끝납니다.
- Reader — 자원을 볼 수 있습니다. 데이터셋 미리 보기, 대시보드 조회, 파이프라인 결과 확인.
- Writer (Editor) — 자원을 만들고 수정합니다. 데이터셋 등록, 파이프라인 작성, 대시보드 편집.
- Owner — 자원의 권한을 부여하고 삭제합니다. 다른 사용자에게 Role 을 줄 수 있고, 컬렉션을 삭제할 수 있습니다.
Role 은 컬렉션 단위 로 부여됩니다. 데이터셋 한 개에 Reader 같은 더 좁은 권한은 없습니다 — 자원 단위 권한이 필요하면 그 자원만 담은 컬렉션 을 만들어 분리합니다.
2 층: 컬렉션 Ceiling
이게 D.Hub 권한 모델의 특이점입니다. 컬렉션에 부여된 Role 은 그 컬렉션 안의 모든 자원의 상한선 (Ceiling) 으로 동작합니다.
구체적으로:
- 사용자 A 가 컬렉션 X 에 Reader 를 갖고 있으면, X 안의 어떤 자원 에도 Reader 이상의 권한을 가질 수 없습니다.
- 같은 사용자 A 가 X 안의 데이터셋 D 에 Writer 를 직접 부여받았어도, X 의 ceiling 이 Reader 이므로 최종 권한은 Reader 입니다.
이 패턴은 권한 누수 를 한 곳에서 막는 핵심 안전 장치입니다. 사용자에게 부여한 적이 없는 권한이 상속·이동 으로 흘러 들어가는 일을 차단합니다.
3 층: FGAC — 같은 자원 안의 범위 좁히기
Role + Ceiling 이 접근 자체 를 통제했다면, FGAC 는 같은 데이터셋 안에서 보이는 컬럼·행을 사용자별로 다르게 통제합니다.
- 컬럼 마스킹 — 예: 인사 데이터셋에서
salary컬럼을 HR 그룹만 보이게. - 행 필터 — 예: 영업 데이터셋에서 각 지역 영업 사원에게 자기 지역 row 만 보이게.
FGAC 정책 작성은 레슨 4 에서 손으로 짚어 봅니다. 본 레슨은 FGAC 가 Role · Ceiling 위에 쌓이는 셋째 층 이라는 위치만 확정합니다.
권한 부여의 시작점
위 3 층의 작동 순서에서 자연스럽게 따라오는 운영 규칙 — 권한 부여는 항상 컬렉션부터 시작 합니다.
새 팀이 합류했을 때 가장 자주 하는 실수는 데이터셋 단위로 권한을 잘게 부여 하는 것입니다. 그 자체가 동작하지 않는 건 아니지만, 컬렉션 ceiling 이 자주 실제 권한 을 가립니다. 첫 흐름은 항상 팀이 다룰 컬렉션을 정의 → 그 컬렉션에 그룹 Role 부여 입니다.
이 레슨에서 익혀야 할 것
- Role / Ceiling / FGAC 3 층의 각각이 답하는 질문
- 컬렉션 Ceiling 의 상한선 효과
- 권한 부여는 컬렉션부터 시작 한다는 첫 규칙
다음 레슨
외부 IdP (OIDC) 와 SSO 를 연결하고, 첫 사용자가 로그인 시 자동 프로비저닝되도록 설정합니다.