피드로 돌아가기
How I Built Secure Firebase Cloud Functions with Admin Permissions and Rate Limiting
Dev.toDev.to
Backend

Firebase Cloud Functions에서 Firestore 기반 권한 검증과 요청 제한을 구현한 관리자 패널 구축 사례

How I Built Secure Firebase Cloud Functions with Admin Permissions and Rate Limiting

Abhishek Singh2026년 3월 31일8intermediate

Context

Firebase Callable Functions는 기본적으로 내장된 관리자 역할 검증 기능이 없다. 모든 인증된 사용자가 기본적으로 모든 엔드포인트를 호출할 수 있어 보안 취약점이 존재한다. 외부 의존성 없이 관리자 수준 트래픽을 처리할 Rate Limiting 방안도 필요하다.

Technical Solution

  • Firestore admins 컬렉션에 역할별 권한 배열을 저장하여 동적 권한 관리 구현
  • verifyAdminPermission 함수로 uid 기반 역할 확인, super_admin은 모든 권한 우회
  • applyRateLimit 함수로 요청 타임스탬프 배열 필터링 방식의 Rate Limiting 적용
  • sendAdminNotification 함수에서 알림 전송 전 권한 검증과 분당 요청 수 제한 조합
  • FCM 토큰 유효성 검증 후 토큰 삭제하여 발송 실패율 감소

Impact

Firestore where() 쿼리 단일 호출 방식으로 변경 시 500명 대상 조회 시간 3초에서 200ms로 개선

Key Takeaway

관리자 사용자 수가 적고 고처리량 Rate Limiting이 필요하지 않은 경우, Redis 등 외부 서비스 없이 Firestore만으로 권한 검증과 요청 제한을 충분히 구현할 수 있다.


소규모 관리자 패널에서 Admin 권한 검증과 Rate Limiting이 필요한 경우, Firestore 문서 기반 권한 배열 확인과 타임스탬프 필터링 방식으로 외부 의존성 없이 구현 가능하며, 쿼리 최적화로 성능 향상도 달성할 수 있다

원문 읽기