In typischen Apps müssen Entwickler viele Server bauen, die Authentifizierung, Autorisierung und Datenvalidierung sowie die Geschäftslogik. Apps, die Cloud Storage for Firebase verwenden, nutzen Firebase Authentication und Firebase Security Rules für Cloud Storage zur Verarbeitung serverloser Daten Authentifizierung, Autorisierung und Datenvalidierung.
Mit Cloud Storage und Cloud Storage Security Rules können Sie sich auf eine großartige User Experience zu schaffen, ohne Infrastruktur oder komplexen serverseitigen Authentifizierungs- und Autorisierungscode schreiben
Übersicht
Mit Cloud Storage Security Rules wird festgelegt, wer Lese- und Schreibzugriff auf
Dateien, die in Cloud Storage gespeichert sind, sowie zur Strukturierung und
welche Metadaten sie enthalten. Der grundlegende Regeltyp ist die allow
-Regel, die
lässt read
- und write
-Vorgänge zu, wenn eine optional angegebene Bedingung
erfüllt sind. Hier einige Beispiele für Regeln:
// Rules can optionally specify a condition allow write: if <condition>;
Dateipfade der Regeln match
, die für
Cloud Storage-Referenzen. Regeln können einen oder mehrere Dateipfade match
. Mehrere Regeln können den Dateipfad in einem bestimmten request
match
:
// Rules match specific paths match /images/profilePhoto.png { allow write: if <condition>; } match /images/croppedProfilePhoto.png { allow write: if <other_condition>; }
Der Kontext der Regelbewertung wird auch über die request
und
resource
-Objekte, die Informationen wie den Auth-Kontext bereitstellen
(request.auth
) und die Größe des vorhandenen Objekts (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; }
Weitere Informationen zu Cloud Storage Security Rules finden Sie in der Secure Files.
Beispielregeln
Cloud Storage Security Rules muss zuerst die service
angeben (in unserem Fall
firebase.storage
) und dem Bucket Cloud Storage
(über match /b/{bucket}/o
), welche Regeln
bewertet werden. Die Standardregeln erfordern Firebase Authentication, aber hier sind
einige Beispiele weiterer gängiger Regeln mit unterschiedlicher Zugriffssteuerung.
Standard
// Only authenticated users can read or write to the folder
service firebase.storage {
match /b/{bucket}/o {
match /someFolder/{fileName} {
allow read, write: if request.auth != null;
}
}
}
Öffentlich
// Anyone can read or write to the folder, even non-users of your app.
// Because it is shared with App Engine, this will also make
// files uploaded via App Engine public.
service firebase.storage {
match /b/{bucket}/o {
match /someFolder/{fileName} {
allow read, write;
}
}
}
Nutzer
// 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;
}
}
}
Privat
// Access to files through Cloud Storage for Firebase is completely disallowed.
// Files may still be accessible through App Engine or Google Cloud Storage APIs.
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if false;
}
}
}
Während der Entwicklung können Sie die öffentlichen Regeln anstelle der Standardregeln verwenden, um Ihre Dateien öffentlich lesbar und beschreibbar zu machen. Dies ist sehr nützlich für Prototyping erstellen, da Sie ohne Firebase Authentication-Einrichtung starten können. Da Cloud Storage jedoch einen Bucket mit Ihrer Standardeinstellung teilt App Engine App verwendet, werden durch diese Regel auch alle von dieser App verwendeten Daten öffentlich zugänglich sein.
Mit Nutzerregeln können Sie jedem Ihrer authentifizierten Nutzer einen eigenen persönlichen Dateispeicher zuweisen. Sie können Ihre Dateien auch vollständig sperren, indem Sie den Modus Regeln einrichten. Beachten Sie jedoch, dass Ihre Nutzer weder Lese- noch Schreibzugriff bis Cloud Storage mit diesen Regeln. Nutzer, die auf Dateien zugreifen von die App Engine App oder die Google Cloud Storage-APIs haben möglicherweise noch Zugriff.
Regeln bearbeiten
Mit Cloud Storage können Sie Ihr Cloud Storage Security Rules ganz einfach bearbeiten
über den Tab Regeln in der Firebase Console im Bereich „Speicher“.
Auf dem Tab Regeln können Sie Ihre aktuellen
Regeln. Diese Regeln werden durch Klicken auf Veröffentlichen oder durch Speichern der Datei bereitgestellt
(ctrl/cmd + s
). Regeln werden sofort in Cloud Storage hochgeladen
Servers verfügbar. Es kann jedoch bis zu fünf Minuten dauern, bis die Live-Version aktiviert wird.
Die Firebase-Befehlszeile kann auch zum Bereitstellen von Regeln verwendet werden. Wenn Sie
Storage
beim Ausführen von firebase init
, eine storage.rules
-Datei mit der Kopie von
werden die Standardregeln erstellt.
in Ihrem Projektverzeichnis. Sie können diese Regeln mithilfe der
firebase deploy
-Befehl. Wenn Sie in Ihrem Projekt mehrere Buckets haben,
können Sie mithilfe von Bereitstellungszielen Regeln für alle Ihre
Buckets gleichzeitig aus demselben Projektordner.
Weitere Informationen zur datenbasierten Sicherheit finden Sie im Abschnitt Dateien schützen. Im Abschnitt Nutzersicherheit erfahren Sie mehr über die nutzerbasierte Sicherheit.