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/.*');
    }
  }
}

다음 단계