Cloud Storage용 Firebase 보안 규칙 이해

지금까지 보안은 앱 개발에서 가장 복잡한 부분 중 하나였습니다. 대부분의 애플리케이션에서 개발자는 인증(사용자가 누구인지) 및 승인(사용자가 무엇을 할 수 있는지)을 처리하는 서버를 직접 구축하여 실행해야 합니다. 인증 및 승인은 제품의 성공에 필수적이지만 설정하기가 어렵고 제대로 구현하기란 더욱 어렵습니다.

Firebase Authentication를 통해 계정을 쉽게 인증할 수 있는 방법과 비슷합니다. 사용자, Cloud StorageFirebase Security Rules을(를) 사용하면 사용자를 쉽게 승인할 수 있습니다. 요청을 검증할 수 있습니다 Cloud Storage Security Rules는 자동으로 복잡성을 관리하여 경로 기반 권한을 지정할 수 있습니다. 단 몇 줄의 코드로 Cloud Storage 요청을 업로드 크기를 제한할 수 있습니다

Firebase Realtime Database에도 다음과 같은 유사한 기능이 있습니다. Firebase Realtime Database Security Rules

인증

사용자가 누구인지 파악하는 것은 애플리케이션 빌드의 중요한 부분이며, Firebase Authentication는 사용하기 쉽고 안전한 클라이언트 측 전용 솔루션을 제공합니다. 있습니다 Cloud StorageFirebase Security Rules, Firebase Authentication와(과) 비슷함 사용자 기반 보안에 사용됩니다 사용자가 Firebase Authentication로 인증되면 Cloud Storage Security Rulesrequest.auth 변수가 사용자의 고유 ID(request.auth.uid) 및 기타 모든 사용자 정보를 토큰(request.auth.token)에 포함하는 객체가 됩니다. 사용자가 인증되지 않은 경우 request.authnull입니다. 이를 통해 데이터 액세스를 사용자별로 안전하게 제어할 수 있습니다. 자세한 내용은 인증 섹션을 참조하세요.

승인

사용자 식별은 보안의 일부에 불과합니다. 그들이 누구인지 알게 되면 Cloud Storage에 있는 파일에 대한 액세스를 제어할 방법이 필요합니다.

Cloud Storage를 사용하면 파일별 및 경로별 승인을 지정할 수 있습니다. 앱의 파일에 대한 액세스 권한을 결정합니다. 예를 들어 기본 Cloud Storage Security Rules에는 Firebase Authentication가 필요합니다. 를 사용하여 모든 파일에서 read 또는 write 작업을 수행할 수 있습니다.

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Firebase Console에서 Firebase 앱을 선택하여 이러한 규칙을 수정할 수 있습니다. Storage 섹션의 Rules 탭을 확인합니다.

데이터 검증

Cloud StorageFirebase Security Rules는 파일 이름 및 경로 검증뿐만 아니라 contentTypesize와 같은 파일 메타데이터 속성 검증을 비롯한 데이터 유효성 검사에도 사용할 수 있습니다.

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

다음 단계