Firebase 보안 규칙의 신속한 검증

Firebase Console에서 업데이트된 Firebase Security Rules 보안 규칙을 빠르게 테스트하려면 규칙 플레이그라운드를 사용하세요.

규칙 플레이그라운드는 새로운 동작을 살펴보거나 규칙을 작성하면서 이 규칙을 빠르게 검증할 때 사용할 수 있는 편리한 도구입니다. 시뮬레이션에 설정한 매개변수에 따라 액세스가 허용되었는지 거부되었는지를 확인하는 메시지가 표시됩니다.

규칙 플레이그라운드 사용

  1. Firebase 콘솔을 열고 프로젝트를 선택합니다.
  2. 그런 다음 제품 탐색에서 다음 중 하나를 수행합니다.
    • Realtime Database, Cloud Firestore 또는 Storage를 적절히 선택한 다음 규칙을 클릭하여 Rules 편집기로 이동합니다.
  3. 수정을 마친 후 편집기에서 규칙 플레이그라운드를 클릭합니다.
  4. 규칙 플레이그라운드 설정에서 다음과 같은 테스트 옵션을 선택합니다.
    • 읽기 또는 쓰기 테스트
    • 데이터베이스 또는 스토리지 버킷의 특정 위치(경로)
    • 인증 유형 — 인증되지 않은 사용자, 인증된 익명 사용자 또는 특정 사용자 ID
    • 규칙에서 구체적으로 참조하는 문서별 데이터(예: 특정 필드가 있어야 쓰기를 허용하는 규칙의 경우)
  5. 실행을 클릭하고 편집기 위의 배너에서 결과를 확인합니다.

샘플 규칙 플레이그라운드 시나리오

다음 샘플 시나리오와 기본 규칙을 사용하여 규칙 플레이그라운드 동작을 테스트합니다.

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /some_collection/{document} {
      allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
      }
    }
  }

 // These rules grant access to a node matching the authenticated
 // user's ID from the Firebase auth token
 {
   "rules": {
     "users": {
       "$uid": {
         ".read": "$uid === auth.uid",
         ".write": "$uid === auth.uid"
       }
     }
   }
 }
 

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/file.txt"
    match /user/{userId}/{fileName} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • Rules 편집기에서 제공된 규칙을 추가합니다.

  • 시뮬레이션 유형 드롭다운 메뉴에서 가져오기를 선택하고 위치 필드에 유효한 경로를 입력합니다.

  • 인증을 전환하고 제공업체 드롭다운에서 인증 유형을 선택합니다.

  • 사용자 ID 세부정보를 입력하고 실행을 클릭합니다.

시뮬레이션의 결과가 편집기의 맨 위에 표시됩니다. 입력한 사용자 ID 세부정보에 따라 읽기가 허용되었는지 아니면 거부되었는지를 확인하는 배너가 나타납니다.