Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Inizia con le regole di sicurezza dell'archiviazione

Nelle app tipiche, gli sviluppatori devono creare e gestire molti server che eseguono autenticazione, autorizzazione e convalida dei dati, nonché la logica aziendale dello sviluppatore. Le app che utilizzano Cloud Storage per Firebase utilizzano le regole di autenticazione Firebase e Firebase per Cloud Storage per gestire l'autenticazione senza server, l'autorizzazione e la convalida dei dati.

L'uso di Cloud Storage e Storage Security Rules significa che puoi concentrarti sulla costruzione di una fantastica esperienza utente, senza dover gestire l'infrastruttura o scrivere complessi codici di autenticazione e autorizzazione sul lato server!

Panoramica

Le regole di sicurezza dell'archiviazione vengono utilizzate per determinare chi ha accesso in lettura e scrittura ai file archiviati in Cloud Storage, nonché come sono strutturati i file e quali metadati contengono. Il tipo base di regola è la regola allow , che consente le operazioni di read e write se viene soddisfatta una condizione specificata facoltativamente. Alcuni esempi di regole sono:

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

Le regole match percorsi dei file che rappresentano i riferimenti di Cloud Storage . Le regole possono match uno o più percorsi di file e più di una regola può match al percorso di file in una determinata request :

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

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

Il contesto della valutazione della regola è anche esposto attraverso la request e gli oggetti resource , che forniscono informazioni come il contesto auth ( request.auth ) e le dimensioni 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;
}

Ulteriori informazioni sulle regole di sicurezza dell'archiviazione nella sezione File protetti .

Regole di esempio

Le Regole di sicurezza dell'archiviazione devono prima specificare il service (nel nostro caso firebase.storage ) e il bucket di Archiviazione cloud (tramite match /b/{bucket}/o ) su cui vengono valutate le regole. Le regole predefinite richiedono l'autenticazione Firebase, ma qui ci sono alcuni esempi di altre regole comuni con controllo di accesso diverso.

Predefinito

 // 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;
    }
  }
}
 

Pubblico

 // 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;
    }
  }
}
 

Utente

 // 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;
    }
  }
}
 

Privato

 // 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;
    }
  }
}
 

Durante lo sviluppo, è possibile utilizzare le regole pubbliche al posto delle regole predefinite per impostare i file leggibili e scrivibili pubblicamente. Questo è molto utile per la prototipazione, in quanto puoi iniziare senza configurare l'autenticazione Firebase. Tuttavia, poiché Cloud Storage condivide un bucket con l'app Google App Engine predefinita, questa regola rende pubblici anche tutti i dati utilizzati da tale app.

Le regole utente consentono di assegnare a ciascuno dei tuoi utenti autenticati il ​​proprio archivio file personale. Puoi anche bloccare completamente i tuoi file utilizzando le regole private, ma tieni presente che i tuoi utenti non saranno in grado di leggere o scrivere nulla tramite Cloud Storage con queste regole. Gli utenti che accedono ai file dall'app Google App Engine o dalle API GCS possono comunque avere accesso.

Modifica regole

Cloud Storage fornisce un modo semplice per modificare le regole di sicurezza dello storage tramite la scheda Regole nella sezione Archiviazione della console Firebase . Nella scheda Regole , puoi visualizzare e modificare rapidamente e facilmente le tue regole attuali. Queste regole vengono distribuite facendo clic su Pubblica o salvando il file ( ctrl/cmd + s ). Le regole vengono caricate immediatamente sui server di archiviazione cloud, ma potrebbero essere necessari fino a cinque minuti per diventare attive.

La CLI di Firebase può essere utilizzata anche per distribuire regole. Se si seleziona Archiviazione quando si esegue firebase init , nella directory del progetto verrà creato un file storage.rules con una copia delle regole predefinite . È possibile distribuire queste regole utilizzando il comando firebase deploy . Se nel progetto sono presenti più bucket, è possibile utilizzare le destinazioni di distribuzione per distribuire le regole su tutti i bucket contemporaneamente dalla stessa cartella del progetto.

Scopri di più su come funziona la sicurezza basata su file nella sezione File protetti o sulla sicurezza basata sugli utenti nella sezione Sicurezza utente .