Nelle app tipiche, gli sviluppatori devono creare e gestire molti server in grado di eseguire l'autenticazione, l'autorizzazione e la convalida dei dati, nonché i la logica di business. Le app che usano Cloud Storage for Firebase usano Firebase Authentication e Firebase Security Rules per Cloud Storage per gestire il serverless autenticazione, autorizzazione e convalida dei dati.
Usare Cloud Storage e Cloud Storage Security Rules significa che puoi concentrarti su creando un'esperienza utente ottimale, senza dover gestire l'infrastruttura o scrivere codice di autorizzazione e autenticazione lato server complessi.
Panoramica
Cloud Storage Security Rules vengono utilizzati per determinare chi ha accesso in lettura e scrittura ai file archiviati in Cloud Storage, nonché la struttura dei file e i metadati che contengono. Il tipo base di regola è la regola allow, che
consente le operazioni read e write se una condizione facoltativa specificata è
sono soddisfatte determinate condizioni. Ecco alcuni esempi di regole:
// Rules can optionally specify a condition allow write: if <condition>;
Regole match percorsi file che rappresentano
Cloud Storage riferimenti. Regole
può match uno o più percorsi file e più di una regola può match il file
percorso in un determinato request:
// Rules match specific paths match /images/profilePhoto.png { allow write: if <condition>; } match /images/croppedProfilePhoto.png { allow write: if <other_condition>; }
Anche il contesto della valutazione della regola viene esposto tramite request e
Oggetti resource, che forniscono informazioni come il contesto di autenticazione
(request.auth) e la dimensione dell'oggetto esistente (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; }
Scopri di più su Cloud Storage Security Rules nel Sezione File protetti.
Regole di esempio
Cloud Storage Security Rules deve prima specificare service (nel nostro caso
firebase.storage) e il bucket Cloud Storage
(tramite match /b/{bucket}/o) quali regole sono
in base a cui viene valutato. Le regole predefinite richiedono Firebase Authentication, ma qui sono
alcuni esempi di altre regole comuni con controlli dell'accesso diversi.
Predefinito
// 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;
}
}
}
Pubblico
// 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;
}
}
}
Utente
// 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;
}
}
}
Privato
// 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;
}
}
}
Durante lo sviluppo, puoi utilizzare le regole pubbliche al posto di quelle predefinite per impostare i file leggibili pubblicamente e scrivibili. Questo è molto utile per Prototipazione, poiché puoi iniziare senza configurare Firebase Authentication. Tuttavia, poiché Cloud Storage condivide un bucket con la tua app predefinitaApp Engine, questa regola rende pubblici anche i dati utilizzati da quell'app.
Le regole per gli utenti ti consentono di assegnare a ciascuno dei tuoi utenti autenticati il proprio l'archiviazione dei file. Puoi anche bloccare completamente i tuoi file utilizzando l'impostazione ma tieni presente che gli utenti non potranno leggere o scrivere nulla tramite Cloud Storage con queste regole. Gli utenti che accedono ai file dalla tua app App Engine o dalle API Google Cloud Storage potrebbero comunque avere accesso.
Modifica regole
Cloud Storage offre un modo semplice per modificare Cloud Storage Security Rules
tramite la scheda Regole nella sezione Spazio di archiviazione della console Firebase.
Nella scheda Regole, puoi visualizzare e modificare rapidamente e facilmente le regole
le regole del caso. Per implementare queste regole, fai clic su Pubblica o salva il file
(ctrl/cmd + s). Le regole vengono caricate immediatamente in Cloud Storage
ma l'attivazione potrebbe richiedere fino a cinque minuti.
L'interfaccia a riga di comando Firebase può essere utilizzata anche per eseguire il deployment delle regole. Se selezioni
Storage quando è in esecuzione firebase init, un file storage.rules con una copia di
verranno create le regole predefinite
nella directory del progetto. Puoi eseguire il deployment di queste regole utilizzando
Comando firebase deploy. Se il tuo progetto contiene più bucket,
puoi usare le target di deployment per eseguire il deployment delle regole in tutti i tuoi
contemporaneamente dalla stessa cartella di progetto.
Scopri di più su come funziona la sicurezza basata su file nel File protetti o comprendi l'utente basata sulla sicurezza nella sezione User Security .