Topic

Zanzibar

JackerLab 2025. 11. 20. 09:31
728x90
반응형

개요

Zanzibar는 Google이 내부적으로 개발하여 Gmail, Google Drive, YouTube 등에서 사용 중인 분산형 권한 관리 시스템(Access Control System) 이다. 수십억 개의 사용자와 리소스에 대해 초당 수백만 건의 접근 제어 결정을 일관성 있게 처리할 수 있도록 설계되었다. 이후 Zanzibar 모델은 오픈소스화되어 AuthZed(SpiceDB), OpenFGA, Permit.io 등 다양한 상용 및 오픈소스 솔루션의 기반이 되었다.


1. 개념 및 정의

항목 내용 비교
개념 관계 기반 접근 제어(RBAC + ABAC) 모델을 확장한 글로벌 권한 관리 시스템 전통적 RBAC보다 유연하고 확장 가능
목적 대규모 분산 환경에서 일관된 권한 검증 수행 Google Workspace 등에서 활용
필요성 수십억 단위 리소스와 사용자 간 관계를 실시간 평가 대규모 SaaS 및 멀티테넌트 환경 대응

2. 특징

특징 설명 비교
관계 중심 모델(Relationship-based Model) 사용자-리소스 간 관계를 그래프 형태로 저장 및 평가 단순 Role 기반보다 정교한 제어 가능
Consistency Model Global Consistency 보장(Google Spanner 기반) eventual consistency보다 안정적
고가용성 다중 데이터센터에 걸친 분산 복제 구조 장애에도 서비스 지속 가능
실시간 평가 수백만 TPS 수준의 권한 검증 처리 캐시 및 인덱스 최적화 지원

3. 구성 요소

구성 요소 설명 예시
Tuple Store 사용자-리소스 관계 데이터를 저장 (user:alice, relation:viewer, object:file123)
Namespace 리소스 타입과 관계 스키마 정의 file, folder, organization
Check API 특정 사용자의 권한 여부를 실시간 검증 /check(user, relation, object)
Expand API 리소스에 접근 가능한 모든 사용자 목록 조회 /expand(object, relation)

4. 기술 요소

기술 설명 예시
Consistency Token 최신 상태를 기준으로 접근 제어 평가 Snapshot 기반 검증
ACL Graph 관계형 권한 구조를 그래프로 모델링 Directed Acyclic Graph (DAG)
Distributed Cache 권한 검증 속도를 위한 캐시 최적화 Redis, Memcached 연계
Fine-Grained Access Control 리소스 단위의 세밀한 권한 제어 Document-level Permission

5. 장점 및 이점

구분 설명 예시
확장성 수십억 개의 관계 데이터를 효율적으로 관리 Google Drive 파일 공유 구조
일관성 글로벌 수준의 데이터 정합성 유지 Spanner 기반 트랜잭션 일관성
유연성 관계형, 계층형, 역할 기반 권한 구조 통합 RBAC+ABAC 하이브리드 모델
실시간 응답성 밀리초 단위 권한 검증 속도 대규모 실시간 애플리케이션 적용

6. 주요 활용 사례 및 고려사항

활용 사례 설명 고려사항
SaaS 플랫폼 권한 관리 사용자-조직-리소스 관계 기반 접근 제어 관계 데이터 모델링 중요
협업 도구(Drive, Docs) 파일 단위 권한 제어 및 공유 기능 캐시 및 인덱스 전략 필요
게임 플랫폼 유저, 길드, 아이템 간 관계형 권한 구조 트랜잭션 일관성 보장 필수
오픈소스 구현 SpiceDB, OpenFGA 등 Zanzibar 기반 솔루션 데이터 스키마 설계 복잡성

7. 결론

Zanzibar는 글로벌 규모에서 일관된 권한 검증을 수행하기 위한 혁신적인 관계형 접근 제어 시스템이다. Google의 내부 서비스뿐만 아니라, 오픈소스 및 상용 솔루션으로 확장되어 현대 SaaS 환경의 세밀한 권한 제어(Fine-Grained Authorization) 의 표준으로 자리 잡고 있다.

728x90
반응형