Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Cloud Storage에 대한 Firebase 보안 규칙 이해

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

전통적으로 보안은 앱 개발에서 가장 복잡한 부분 중 하나였습니다. 대부분의 응용 프로그램에서 개발자는 인증(사용자가 누구인지) 및 권한 부여(사용자가 수행할 수 있는 작업)를 처리하는 서버를 구축하고 실행해야 합니다. 인증 및 권한 부여는 설정하기 어렵고 제대로 하기가 더 어려우며 제품의 성공에 매우 중요합니다.

Firebase 인증을 사용하여 사용자를 쉽게 인증하는 것과 마찬가지로 Cloud Storage용 Firebase 보안 규칙을 사용하면 사용자를 쉽게 승인하고 요청을 검증할 수 있습니다. Cloud Storage 보안 규칙은 경로 기반 권한을 지정할 수 있도록 하여 복잡성을 관리합니다. 몇 줄의 코드로 Cloud Storage 요청을 특정 사용자로 제한하거나 업로드 크기를 제한하는 승인 규칙을 작성할 수 있습니다.

Firebase 실시간 데이터베이스에는 Firebase 실시간 데이터베이스 규칙 이라는 유사한 기능이 있습니다.

입증

사용자가 누구인지 아는 것은 애플리케이션 빌드의 중요한 부분이며 Firebase 인증은 사용하기 쉽고 안전한 클라이언트 측 인증 솔루션을 제공합니다. Cloud Storage용 Firebase 보안 규칙은 사용자 기반 보안을 위해 Firebase 인증과 연결됩니다. 사용자가 Firebase 인증으로 인증되면 Cloud Storage 보안 규칙의 request.auth 변수는 사용자의 고유 ID( request.auth.uid )와 토큰( request.auth.token )의 기타 모든 사용자 정보를 포함하는 객체가 됩니다. . 사용자가 인증되지 않은 경우 request.authnull 입니다. 이를 통해 사용자별로 데이터 액세스를 안전하게 제어할 수 있습니다. 인증 섹션에서 자세히 알아볼 수 있습니다.

권한 부여

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

Cloud Storage를 사용하면 Google 서버에 있는 파일별 및 경로별 권한 부여 규칙을 지정하고 앱의 파일에 대한 액세스를 결정할 수 있습니다. 예를 들어 기본 Cloud Storage 보안 규칙에는 모든 파일에 대한 read 또는 write 작업을 수행하기 위해 Firebase 인증이 필요합니다.

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

Firebase 콘솔 에서 Firebase 앱을 선택하고 저장소 섹션의 Rules 탭에서 이러한 규칙을 수정할 수 있습니다.

데이터 유효성 검사

Cloud Storage용 Firebase 보안 규칙은 파일 이름 및 경로는 물론 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/.*');
    }
  }
}

다음 단계