피드로 돌아가기
Dev.toSecurity
원문 읽기
Bitmap 기반 권한 검증으로 p99 Latency 14ms에서 4-5ms로 단축
Authorization at Scale: Access Levels, Roles, and Compact Decisions
AI 요약
Context
수억 건의 요청을 처리하는 Gateway 단계에서 대규모 사용자의 권한 검증 오버헤드 발생. 권한 정보의 JWT 포함 시 토큰 크기 증가(최대 3KB) 및 네트워크 에지 단의 쿠키 제한 문제 직면.
Technical Solution
- Role-Access Level-Endpoint로 이어지는 3계층 Coarse-grained 권한 모델 설계
- Access Level 정의 주체를 Gateway가 아닌 개별 Product Service로 분산하여
access_levels.json기반의 소유권 분리 - CI/CD 파이프라인을 통한 S3 기반 Registry 배포 체계 구축으로 Gateway 배포 없는 정책 반영 구현
- JWT 내 권한 정보를 Base64url 인코딩된 Bitmap으로 압축하여 전송 데이터량 최소화
policy_bitmap_version필드를 통한 Registry 버전 관리 및 버전 불일치 시 String matching으로의 Graceful Fallback 경로 유지- Gateway 부팅 시 Endpoint 요구 권한을 메모리에 로드하여 런타임 시 In-memory Lookup 수행
실천 포인트
- 권한 종류가 고정적이고 수가 적다면 String 대신 Bitmap/Bitmask 도입 검토 - 중앙 집중식 권한 관리 대신 서비스별 설정 파일 기반의 분산 관리 및 자동 배포 파이프라인 구축 - JWT 크기 증가로 인한 네트워크 이슈 발생 시 Coarse-grained 권한만 토큰에 담고 세부 권한은 서버측 캐시 활용