- 애플리케이션 리소스를 위한 강력하고 컨텍스트 인식적인 접근 제어 규칙을 정의할 수 있는 권한 관리 레이어
- 간단한 YAML 정책으로 작성하며, GitOps 기반 인프라를 통해 관리 및 배포 가능
-
Cerbos 정책 결정 지점(PDP, Policy Decision Point) 를 셀프호스팅 하고. 고가용성 API를 통해 정책을 평가하고 동적 접근 결정을 수행
Cerbos 주요 특징
-
정책 작성 및 배포:
- YAML 형식으로 정책 정의
- 디스크, 클라우드 오브젝트 스토어, Git 저장소 또는 데이터베이스를 통해 정책 저장
-
확장성과 통합:
- K8s 서비스, 사이드카, systemd 서비스, AWS Lambda 등 다양한 환경에서 배포 가능
- 서버리스 및 엣지 배포에 쉽게 통합 가능
-
강력한 정책 관리 기능:
- 단순 RBAC(Role-Based Access Control)을 넘어 ABAC(Attribute-Based Access Control) 구현
- 실행 시 컨텍스트 데이터를 사용해 세분화된 조건 평가 가능
핵심 개념
-
Principal: 작업을 수행하려는 주체(예: 사용자, 애플리케이션, 서비스)
-
Action: 주체가 수행하려는 작업(예: 생성, 읽기, 업데이트, 삭제 등)
-
Resource: 접근을 제어하는 대상(예: 보고서, 영수증, 카드 정보 등)
-
Policies: 리소스별 접근 규칙을 정의하는 YAML 파일
-
Cerbos PDP:
- 정책을 실행하고 접근 결정을 내리는 Stateless 서비스
- 주요 API:
-
CheckResources: 특정 주체가 리소스에 접근 가능한지 확인
-
PlanResources: 특정 주체가 어떤 리소스에 접근 가능한지 확인
-
SDK 및 어댑터:
- 다양한 프로그래밍 언어를 지원하는 SDK 제공
-
PlanResources 응답을 쿼리로 변환하는 어댑터 제공
활용 사례
-
RBAC -> ABAC 확장:
- 실행 시 조건 평가로 동적 역할 추가
- 특정 사용자를 위한 상세한 정책 오버라이드 가능
-
협업 및 정책 배포:
- Cerbos Hub를 통해 팀과 협력하며 정책 작성
- PDP 플릿 전체에 효율적으로 정책 업데이트 배포
-
클라우드 및 엣지 환경 통합: