Registrazione di controllo per le regole di sicurezza Firebase

Questa pagina descrive i log di controllo creati da Firebase come parte degli audit log di Cloud .

Panoramica

I servizi Firebase scrivono log di controllo per aiutarti a rispondere alle domande "Chi ha fatto cosa, dove e quando?". Si tratta degli audit log di Cloud, forniti come parte del progetto Google Cloud Platform collegato al tuo progetto Firebase .

Ciascuno dei tuoi progetti Firebase contiene solo i log di controllo per le risorse che si trovano direttamente all'interno del progetto.

Per una panoramica generale degli audit log di Cloud, consulta Panoramica degli audit log di Cloud . Per una comprensione più approfondita del formato del registro di controllo, vedere Comprendere i registri di controllo .

Log di controllo disponibili

Per le regole di sicurezza Firebase sono disponibili i seguenti tipi di log di controllo:

  • Registri di controllo delle attività di amministrazione

    Include operazioni di "scrittura amministrativa" che scrivono metadati o informazioni di configurazione.

    Non è possibile disabilitare i log di controllo delle attività di amministrazione.

  • Registri di controllo dell'accesso ai dati

    Include operazioni di "lettura amministratore" che leggono metadati o informazioni di configurazione. Include anche le operazioni di "lettura dati" e "scrittura dati" che leggono o scrivono dati forniti dall'utente.

    Per ricevere i log di controllo dell'accesso ai dati, è necessario abilitarli esplicitamente.

Per descrizioni più complete dei tipi di log di controllo, vedere Tipi di log di controllo .

Operazioni controllate

Di seguito vengono riepilogate le operazioni API che corrispondono a ciascun tipo di registro di controllo nelle regole di sicurezza Firebase:

Categoria dei registri di controllo Operazioni relative alle regole di sicurezza Firebase
Operazioni di progetto
Attività amministrativa
Accesso ai dati (ADMIN_READ) Set di regole di prova
Operazioni con le regole
Attività amministrativa Crea set di regole
Elimina set di regole
Accesso ai dati (ADMIN_READ) Ottieni set di regole
Elencoset di regole
Set di regole di prova
Operazioni di rilascio
Attività amministrativa CreaRilascio
UpdateRelease
EliminaRilascia
Accesso ai dati (ADMIN_READ) OttieniRelease
ElencoRilasci

Formato del registro di controllo

Le voci del registro di controllo includono i seguenti oggetti:

  • La voce di log stessa, che è un oggetto di tipo LogEntry . I campi utili includono quanto segue:

    • Il logName contiene l'ID della risorsa e il tipo di log di controllo.
    • La resource contiene la destinazione dell'operazione controllata.
    • Il timestamp contiene l'ora dell'operazione controllata.
    • Il protoPayload contiene le informazioni controllate.
  • I dati di registrazione di controllo, che sono un oggetto AuditLog contenuto nel campo protoPayload della voce di registro.

  • Informazioni di controllo facoltative specifiche del servizio, che sono un oggetto specifico del servizio. Per le integrazioni precedenti, questo oggetto è contenuto nel campo serviceData dell'oggetto AuditLog ; le integrazioni più recenti utilizzano il campo metadata .

Per altri campi in questi oggetti e come interpretarli, consulta Comprendere i log di controllo .

Nome del registro

I nomi delle risorse di Cloud Audit Logs indicano il progetto Firebase o un'altra entità GCP proprietaria dei log di controllo e se il log contiene dati di registrazione di controllo di attività di amministrazione, accesso ai dati, criteri negati o eventi di sistema. Ad esempio, di seguito vengono mostrati i nomi dei log per i log di controllo delle attività di amministrazione a livello di progetto e i log di controllo dell'accesso ai dati di un'organizzazione. Le variabili indicano il progetto Firebase e gli identificatori dell'organizzazione.

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

Nome di Servizio

I log di controllo delle regole di sicurezza Firebase utilizzano il nome del servizio firebaserules.googleapis.com .

Per un elenco completo di tutti i nomi dei servizi API Cloud Logging e del tipo di risorsa monitorata corrispondente, consulta Mappare i servizi sulle risorse .

Tipi di risorse

I log di controllo delle regole di sicurezza Firebase utilizzano il tipo di risorsa audited_resource per tutti i log di controllo.

Per un elenco di tutti i tipi di risorse monitorate di Cloud Logging e informazioni descrittive, consulta Tipi di risorse monitorate .

Abilita la registrazione di controllo

I log di controllo delle attività di amministrazione sono sempre abilitati; non puoi disabilitarli.

I log di controllo di accesso ai dati sono disabilitati per impostazione predefinita e non vengono scritti a meno che non siano abilitati esplicitamente (l'eccezione sono i log di controllo di accesso ai dati per BigQuery, che non possono essere disabilitati).

Per istruzioni su come abilitare alcuni o tutti i log di controllo di accesso ai dati, vedere Configurare i log di accesso ai dati .

Autorizzazioni e ruoli

Le autorizzazioni e i ruoli di Cloud IAM determinano la tua capacità di accedere ai dati dei log di controllo nelle risorse GCP.

Quando decidi quali autorizzazioni e ruoli specifici di Logging si applicano al tuo caso d'uso, considera quanto segue:

  • Il ruolo Visualizzatore log ( roles/logging.viewer ) fornisce accesso di sola lettura ai log di controllo delle attività di amministrazione, dei criteri negati e degli eventi di sistema. Se disponi solo di questo ruolo, non puoi visualizzare i log di controllo di accesso ai dati presenti nel bucket _Default .

  • Il ruolo Visualizzatore log privati (roles/logging.privateLogViewer ) include le autorizzazioni contenute in roles/logging.viewer , oltre alla possibilità di leggere i log di controllo di accesso ai dati nel bucket _Default .

    Tieni presente che se questi log privati ​​vengono archiviati in bucket definiti dall'utente, qualsiasi utente dotato delle autorizzazioni per leggere i log in tali bucket potrà leggere i log privati. Per ulteriori informazioni sui bucket di log, consulta Panoramica di routing e archiviazione .

Per ulteriori informazioni sulle autorizzazioni e sui ruoli Cloud IAM applicabili ai dati dei log di controllo, consulta Controllo degli accessi .

Visualizza i registri

Per trovare e visualizzare i log di controllo, devi conoscere l'identificatore del progetto, della cartella o dell'organizzazione Firebase per cui desideri visualizzare le informazioni sul registro di controllo. Puoi specificare ulteriormente altri campi LogEntry indicizzati, come resource.type ; per maggiori dettagli, consulta Trovare rapidamente le voci di registro .

Di seguito sono riportati i nomi dei registri di controllo; includono variabili per gli identificatori del progetto, della cartella o dell'organizzazione Firebase:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

Puoi visualizzare i log di controllo in Cloud Logging utilizzando la console GCP, lo strumento a riga di comando gcloud o l'API Logging.

Consolle

Puoi utilizzare Esplora log nella console GCP per recuperare le voci del log di controllo per il tuo progetto, cartella o organizzazione Firebase:

  1. Nella console GCP, vai alla pagina Registrazione > Esplora log .

    Vai alla pagina Esplora log

  2. Nella pagina Esplora log , seleziona un progetto, una cartella o un'organizzazione Firebase esistente.

  3. Nel riquadro Generatore di query , procedi come segue:

    • In Tipo di risorsa , seleziona la risorsa GCP di cui desideri visualizzare i log di controllo.

    • In Nome registro , seleziona il tipo di registro di controllo che desideri visualizzare:

      • Per i log di controllo delle attività di amministrazione, seleziona attività .
      • Per i log di controllo dell'accesso ai dati, selezionare data_access .
      • Per i registri di controllo degli eventi di sistema, selezionare system_event .
      • Per i log di controllo Criteri negati, selezionare policy .

    Se non vedi queste opzioni, non sono disponibili log di controllo di quel tipo nel progetto, nella cartella o nell'organizzazione Firebase.

    Per ulteriori dettagli sull'esecuzione di query utilizzando Logs Explorer, consulta Creare query di log .

gcloud

Lo strumento da riga di comando gcloud fornisce un'interfaccia da riga di comando all'API Cloud Logging. Fornire un PROJECT_ID , FOLDER_ID o ORGANIZATION_ID valido in ciascuno dei nomi di registro.

Per leggere le voci del log di controllo a livello di progetto Firebase, esegui il comando seguente:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" --project=PROJECT_ID

Per leggere le voci del registro di controllo a livello di cartella, esegui il comando seguente:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" --folder=FOLDER_ID

Per leggere le voci del registro di controllo a livello di organizzazione, esegui il comando seguente:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID

Per ulteriori informazioni sull'utilizzo dello strumento gcloud , consulta Lettura delle voci di log .

API

Quando crei le tue query, sostituisci le variabili con valori validi, sostituisci il nome o gli identificatori del log di controllo a livello di progetto, cartella o organizzazione appropriati come elencato nei nomi del log di controllo. Ad esempio, se la tua query include PROJECT_ID , l'identificatore di progetto che fornisci deve fare riferimento al progetto Firebase attualmente selezionato.

Per utilizzare l'API Logging per esaminare le voci del registro di controllo, procedi come segue:

  1. Vai alla sezione Prova questa API nella documentazione per il metodo entries.list .

  2. Inserisci quanto segue nella parte del corpo della richiesta del modulo Prova questa API . Facendo clic su questo modulo precompilato viene compilato automaticamente il corpo della richiesta, ma è necessario fornire un PROJECT_ID valido in ciascuno dei nomi di registro.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Fare clic su Esegui .

Per ulteriori dettagli sulle query, vedere Linguaggio delle query di registrazione .

Per un esempio di voce del registro di controllo e come trovare le informazioni più importanti al suo interno, vedere Voce di registro di controllo di esempio .

Log di controllo del percorso

Puoi instradare i log di controllo alle destinazioni supportate nello stesso modo in cui puoi instradare altri tipi di log. Ecco alcuni motivi per cui potresti voler instradare i log di controllo:

  • Per conservare i log di controllo per un periodo di tempo più lungo o per utilizzare funzionalità di ricerca più potenti, puoi instradare copie dei log di controllo a Google Cloud Storage, BigQuery o Google Cloud Pub/Sub. Utilizzando Cloud Pub/Sub, puoi instradare ad altre applicazioni, altri repository e a terze parti.

  • Per gestire i log di controllo in un'intera organizzazione, puoi creare sink aggregati in grado di instradare i log da uno o tutti i progetti Firebase nell'organizzazione.

  • Se i log di controllo di accesso ai dati abilitati stanno spingendo i tuoi progetti Firebase oltre le assegnazioni di log, puoi creare sink che escludono i log di controllo di accesso ai dati dalla registrazione.

Per istruzioni sul routing dei log, consulta Configurare i sink .

Prezzi

I registri di controllo delle attività di amministrazione e i registri di controllo degli eventi di sistema non hanno alcun costo.

I registri di controllo dell'accesso ai dati e i registri di controllo della politica negata sono a pagamento.

Per ulteriori informazioni sui prezzi di Cloud Logging, consulta i prezzi della suite operativa di Google Cloud: Cloud Logging .