Infisical, Zanzibar 없이 폴더 기반 RBAC를 구현한 방법

There is no 10x RBAC

Infisical, Zanzibar 없이 폴더 기반 RBAC를 구현한 방법

Infisical이 폴더 단위 접근 권한을 추가했다. 기존 역할 기반 접근 제어로는 Netsuite 전문 엔지니어나 외부 계약자 같은 예외 케이스를 처리하기 어려웠다. Zanzibar 스타일 시스템으로 마이그레이션하는 대신, 5단계 권한 체계를 만들고 CASL 규칙에서 폴더 권한이 항상 우선하도록 deny 규칙을 덧붙였다. 캐시 무효화 문제는 프로젝트별 버전 카운터로 해결했다.

사람들이 어떤 제품의 RBAC나 빌링 시스템이 훌륭하다고 입에 올릴 가능성은 낮지만, 그 반대는 확실하다. 여기서 뭔가 잘못되면 불만이 터져 나온다.
  1. jzelinskie

    이런 글을 읽는 걸 정말 좋아한다. 권한 부여(authorization)가 예전처럼 틈새 주제가 아니라는 걸 보여주기 때문이다. 또한 온프레미스에서 실행되는 엔터프라이즈 소프트웨어를 출시할 때 의존성을 피하는 것에 공감한다. 우리도 AuthZed/SpiceDB를 창업하기 전에 Quay의 엔터프라이즈 고객을 지원하면서 Postgres를 많이 남용했다. 엔지니어로서 언제 전용 시스템을 사용할 적절한 시점인지, 아니면 계속 자체 개발에 투자할 시점인지 결정하는 것은 네 일이다.

    그들의 설계가 Zanzibar/SpiceDB의 개념과 유사하다는 점을 어쩔 수 없이 보게 되는데, 그건 훌륭하다! 이는 또한 기존 시스템이 더 이상 실행 가능하지 않은 상황(엔지니어가 떠나거나 새로운 설계 제약으로 재고가 필요할 때)에 직면하더라도 전용 솔루션으로 쉽게 마이그레이션할 수 있다는 뜻이다.

    이 글에서 인정하지 않은 트레이드오프 하나는 도구(tooling) 측면의 희생이다. 전용 솔루션은 CI/CD에 통합할 수 있는 디버깅 및 정확성 증명을 위한 툴체인을 갖추고 있지만, 자체 개발 솔루션은 보통 멋진 툴체인을 직접 구축할 시간을 낼 수 없다.

  2. sandeepkd

    내가 본 바로는 이 주제는 받는 것보다 훨씬 더 많은 관심이 필요하다. 이는 현실에서 대부분의 장소에서 접근 규칙이 내부적으로 꽤 개방적이라는 사실로 이어진다. 이것은 중앙화(AuthZed 같은 솔루션 사용)와 분산화(비즈니스 도메인에 따라 로컬에서 검사를 건너뛰는 것)가 건강한 긴장 관계를 보여주는 영역이며, 효율적으로 작동하게 하려면 비즈니스 도메인에 대한 전문 지식을 가진 사람이 필요하다.

  3. bbkane

    내가 RBAC 전문가가 아니라서 그런지도 모르지만, 폴더에 대한 데이터 모델을 이해하기 어려웠다. 폴더가 주체(subject)인가? 그리고 레이어가 서로 덮어쓰는 계층화된 CASL이 있는 건가? 그리고 사용자는 행위자(actor)인가?

이 날의 다른 글

2026-09-11