
롤만으로는 부족할 때: ReBAC와 SpiceDB
두줄요약
자원별 권한 요구에서 RBAC의 롤 폭발 문제를 ReBAC과 SpiceDB로 해소한 구조를 소개했습니다.\n그룹·부모 관계를 활용한 권한 상속과 관계 데이터 정합성 관리 방식을 설명합니다.
문제 상황
- 자원별 담당자 권한을 역할만으로 표현할 때 발생하는 롤 폭발과 서비스 코드 분산
- 프로덕트·에픽·릴리스 계층에서 특정 프로덕트의 스크럼 마스터만 수정해야 하는 요구
구조와 흐름
- RBAC의 역할 기반 1차 관문과 ReBAC의 자원 관계 기반 2차 관문 결합
- SpiceDB 스키마의
parent->edit로 부모 자원 권한을 자식 자원에 상속 - GuardAuthorizer·Guard·gRPC를 통한 서비스와 SpiceDB 사이의 권한 질의 분리
선택 이유
- 사용자와 자원 간 관계 저장으로 자원 단위 권한과 계층형 상속 지원
- 스크럼 마스터 그룹을 프로덕트 editor에 연결해 담당자 교체를 그룹 멤버 변경으로 축소
성능/운영 포인트
- 권한 관계 변경 코드를 ProductAuthorizer에 집중해 누락 방지
- 원본 도메인 데이터와 관계 데이터 불일치 시 이전 담당자의 권한 잔존 위험



