Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Zacznij korzystać z reguł bezpieczeństwa pamięci masowej

W typowych aplikacjach programiści muszą zbudować i utrzymywać wiele serwerów, które wykonują uwierzytelnianie, autoryzację i sprawdzanie poprawności danych, a także logikę biznesową programisty. Aplikacje korzystające z Cloud Storage for Firebase korzystają z uwierzytelniania Firebase i reguł bezpieczeństwa Firebase dla Cloud Storage do obsługi bezserwerowego uwierzytelniania, autoryzacji i weryfikacji danych.

Korzystanie z Cloud Storage and Storage Rules Security Rules oznacza, że ​​możesz skupić się na budowaniu doskonałego doświadczenia użytkownika bez konieczności zarządzania infrastrukturą lub pisania złożonego kodu uwierzytelniania i autoryzacji po stronie serwera!

Przegląd

Reguły bezpieczeństwa pamięci masowej służą do określania, kto ma dostęp do odczytu i zapisu do plików przechowywanych w Cloud Storage, a także do ustalenia struktury plików i zawartych w nich metadanych. Podstawowym typem reguły jest reguła allow , która zezwala na operacje read i write , jeśli zostanie spełniony opcjonalnie określony warunek. Oto kilka przykładów zasad:

// Rules can optionally specify a condition
allow write: if <condition>;

Reguły match ścieżek plików reprezentujących odwołania do Cloud Storage . Reguły mogą match jednej lub więcej ścieżek plików, a więcej niż jedna reguła może match do ścieżki pliku w danym request :

// Rules match specific paths
match /images/profilePhoto.png {
  allow write: if <condition>;
}

match /images/croppedProfilePhoto.png {
  allow write: if <other_condition>;
}

Kontekst oceny reguły jest również ujawniany za pośrednictwem obiektów request i resource , które dostarczają informacji, takich jak kontekst uwierzytelniania ( request.auth ) i rozmiar istniejącego obiektu ( resource.size ).

// Rules can specify conditions that consider the request context
match /images/profilePhoto.png {
  allow write: if request.auth != null && request.resource.size < 5 * 1024 * 1024;
}

Dowiedz się więcej o regułach bezpieczeństwa przechowywania w sekcji Bezpieczne pliki .

Przykładowe zasady

Reguły bezpieczeństwa pamięci masowej muszą najpierw określać service (w naszym przypadku firebase.storage ) i firebase.storage Cloud Storage (za pomocą match /b/{bucket}/o ), według których są oceniane reguły. Reguły domyślne wymagają uwierzytelniania Firebase, ale oto kilka przykładów innych typowych reguł z różną kontrolą dostępu.

Domyślnie

 // Only authenticated users can read or write to the bucket
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}
 

Publiczny

 // Anyone can read or write to the bucket, even non-users of your app.
// Because it is shared with Google App Engine, this will also make
// files uploaded via GAE public.
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}
 

Użytkownik

 // Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/path/to/file.txt"
    match /user/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
 

Prywatne

 // Access to files through Firebase Storage is completely disallowed.
// Files may still be accessible through Google App Engine or GCS APIs.
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if false;
    }
  }
}
 

Podczas programowania możesz używać reguł publicznych zamiast reguł domyślnych, aby ustawić publicznie możliwość odczytu i zapisu plików. Jest to bardzo przydatne przy tworzeniu prototypów, ponieważ można rozpocząć bez konfigurowania uwierzytelniania Firebase. Ponieważ jednak Cloud Storage współdzieli zasobnik z Twoją domyślną aplikacją Google App Engine, ta reguła sprawia, że ​​wszystkie dane używane przez tę aplikację również stają się publiczne.

Reguły użytkownika umożliwiają przydzielenie każdemu z uwierzytelnionych użytkowników własnego osobistego magazynu plików. Możesz także całkowicie zablokować swoje pliki, korzystając z reguł prywatnych, ale pamiętaj, że Twoi użytkownicy nie będą mogli niczego czytać ani zapisywać w Cloud Storage przy użyciu tych reguł. Użytkownicy uzyskujący dostęp do plików z aplikacji Google App Engine lub interfejsów API GCS mogą nadal mieć do nich dostęp.

Edytuj reguły

Cloud Storage zapewnia łatwy sposób edytowania reguł bezpieczeństwa magazynu za pomocą karty Reguły w sekcji Pamięć konsoli Firebase . Na karcie Reguły możesz szybko i łatwo przeglądać i edytować aktualne reguły. Te reguły są wdrażane, klikając Opublikuj lub zapisując plik ( ctrl/cmd + s ). Reguły są natychmiast przesyłane na serwery Cloud Storage, ale ich uruchomienie może zająć do pięciu minut.

Do wdrażania reguł można również użyć interfejsu wiersza polecenia Firebase. Jeśli wybierzesz Storage podczas uruchamiania firebase init , w katalogu projektu zostanie utworzony plik storage.rules z kopią reguł domyślnych . Te reguły można wdrożyć za pomocą polecenia firebase deploy . Jeśli masz wiele zasobników w projekcie, możesz użyć celów wdrażania, aby wdrożyć reguły do ​​wszystkich zasobników jednocześnie z tego samego folderu projektu.

Dowiedz się więcej o działaniu zabezpieczeń opartych na plikach w sekcji Bezpieczne pliki lub zapoznaj się z zabezpieczeniami opartymi na użytkownikach w sekcji Bezpieczeństwo użytkowników .