Inizia a utilizzare le regole di sicurezza di Cloud Storage

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 .