홈으로 돌아가기

RBACX 업데이트: ReBAC 및 AI 정책

RBACX 라이브러리 업데이트: SpiceDB/OpenFGA 통합을 통한 ReBAC 추가, OpenAPI로부터의 AI 정책 생성, 배치 권한 평가. DoS 및 SSRF 취약점 수정, Redis 캐시 및 비동기 Django 추가.

RBACX의 진화: RBAC에서 AI를 통한 ReBAC으로
Advertisement 728x90

RBACX 6개월 후: ReBAC, AI 정책, 그리고 일괄 권한 부여

지난 6개월 동안 RBACX 라이브러리는 기본적인 RBAC/ABAC 엔진에서 ReBAC와 AI 생성 정책을 포함한 종합적인 시스템으로 발전했습니다. 주요 취약점들이 해결되었습니다: 컴파일러의 거부 우회, 조건 재귀를 통한 DoS, HTTP 소스의 SSRF 등이 있습니다. 시스템은 이제 MAX_CONDITION_DEPTH=50, verify_ssl을 적용하고 사설 IP를 차단합니다.

일괄 권한 확인은 Guard 클래스의 evaluate_batch_asyncevaluate_batch_sync 메서드를 통해 구현되었습니다. 이는 UI 애플리케이션에서 여러 요청을 처리할 때 asyncio.gather를 사용한 병렬 평가로 지연 시간을 줄이는 문제를 해결합니다.

decisions = await guard.evaluate_batch_async([
    (subject, Action("read"),   doc, ctx),
    (subject, Action("write"),  doc, ctx),
    (subject, Action("delete"), doc, ctx),
])

ReBAC: 속성 대신 관계 그래프

관계 기반 권한 부여(ReBAC)는 Google Drive나 GitHub와 유사한 "누가 무엇을 누구에게 허용했는가" 모델을 도입합니다. 권한은 엔티티 그래프로 정의됩니다: 문서 소유자가 접근 권한을 위임합니다. OpenFGA 및 SpiceDB와의 통합은 객체 목록을 위한 일괄 gRPC를 포함한 동기/비동기 호출을 지원합니다. 로컬 그래프는 테스트에 적합합니다.

Google AdInline article slot

구현은 리소스 특이성에 기반한 정책 평가를 재작업해야 했으며, 컴파일과 해석 경로 간의 동등성에 대한 테스트가 포함되었습니다.

LLM을 활용한 정책 생성

추가 rbacx[ai] 패키지는 OpenAPI 스키마에서 정책 생성을 자동화하는 AIPolicy를 추가합니다. 파이프라인: LLM 생성 → JSON 스키마 검증 → 재시도 → 린터 → 컴파일.

from rbacx.ai import AIPolicy

ai = AIPolicy(api_key="sk-...", model="gpt-4o")
result = await ai.from_schema(openapi_schema)
guard = Guard(result.policy)

자연어 정제를 위한 refine_policy 및 결정 설명을 위한 explain_decision과 같은 메서드는 엔진의 결정론적 특성을 유지합니다. 지원에는 OpenAI, Ollama, Azure 및 재시도 제한이 있는 호환 가능한 제공업체가 포함됩니다.

Google AdInline article slot

roles: ["admin", "editor"]와 같은 단축 표현은 유연성을 잃지 않으면서 RBAC를 단순화합니다. condition과의 AND 조합은 린터가 중복에 대해 경고합니다.

추가 성능 개선

  • 다중 호스트 배포를 위한 Redis 어댑터(rbacx[cache-redis]) 캐싱.
  • Django ASGI 4.1+를 위한 비동기 어댑터.
  • 엄격한 타입 모드: Guard(policy, strict_types=True)는 암시적 타입 변환을 비활성화합니다.
  • 규칙 매칭 디버깅을 위한 explain=True 결정 추적.

이러한 변경 사항은 PyQt UI에서 마이크로서비스까지 프로덕션 환경에서의 확장성을 보장합니다.

핵심 요약

  • 보안 우선: 거부 우회, DoS 재귀, SSRF 패치; 실패 시 폐쇄 동작.
  • ReBAC 통합: 일괄 gRPC를 지원하는 OpenFGA/SpiceDB, 개발용 로컬 그래프.
  • AI 자동화: 수동 DSL 없이 OpenAPI에서 정책 생성, 검증 및 재시도 포함.
  • 일괄 권한: UI 및 객체 목록을 위한 병렬 평가.
  • 성능: Redis 캐시, 비동기 Django, 엄격한 타이핑.

— Editorial Team

Google AdInline article slot
Advertisement 728x90

다음 읽기