In questa pagina sono descritti gli audit log creati da Firebase come parte di audit log di Cloud.
Panoramica
I servizi Firebase scrivono gli audit log per aiutarti a rispondere alle domande "Chi ha fatto cosa, dove e quando?". Si tratta di audit log di Cloud, forniti come parte del Google Cloud collegato al tuo progetto Firebase.
Ogni progetto Firebase contiene solo gli audit log per le risorse che si trovano direttamente al suo interno.
Per una panoramica generale di Cloud Audit Logs, consulta Panoramica di Cloud Audit Logs. Per informazioni più approfondite sul formato degli audit log, consulta Informazioni sugli audit log.
Audit log disponibili
Per Firebase App Check sono disponibili i seguenti tipi di audit log:
-
Audit log delle attività di amministrazione
Include le operazioni "scrittura amministratore" che scrivono i metadati o le informazioni di configurazione.
Non puoi disattivare gli audit log delle attività di amministrazione.
-
Audit log degli accessi ai dati
Include le operazioni "lettura amministratore" che leggono i metadati o le informazioni di configurazione. Include anche le operazioni "lettura dati" e "scrittura dati" che leggono o scrivono i dati forniti dall'utente.
Per ricevere gli audit log degli accessi ai dati, devi abilitarli esplicitamente.
Per descrizioni più dettagliate dei tipi di audit log, consulta Tipi di audit log.
Operazioni con audit
Di seguito viene riassunto quali operazioni API corrispondono a ogni tipo di audit log in Firebase App Check:
| Tipo di autorizzazione | Metodi |
|---|---|
ADMIN_READ |
google.firebase.appcheck.v1.ConfigService.BatchGetAppAttestConfigsgoogle.firebase.appcheck.v1.ConfigService.BatchGetDeviceCheckConfigsgoogle.firebase.appcheck.v1.ConfigService.BatchGetPlayIntegrityConfigsgoogle.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaEnterpriseConfigsgoogle.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaV3Configsgoogle.firebase.appcheck.v1.ConfigService.BatchGetSafetyNetConfigsgoogle.firebase.appcheck.v1.ConfigService.GetAppAttestConfiggoogle.firebase.appcheck.v1.ConfigService.GetDebugTokengoogle.firebase.appcheck.v1.ConfigService.GetDeviceCheckConfiggoogle.firebase.appcheck.v1.ConfigService.GetPlayIntegrityConfiggoogle.firebase.appcheck.v1.ConfigService.GetRecaptchaEnterpriseConfiggoogle.firebase.appcheck.v1.ConfigService.GetRecaptchaV3Configgoogle.firebase.appcheck.v1.ConfigService.GetSafetyNetConfiggoogle.firebase.appcheck.v1.ConfigService.GetServicegoogle.firebase.appcheck.v1.ConfigService.ListDebugTokensgoogle.firebase.appcheck.v1.ConfigService.ListServicesgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetAppAttestConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetDeviceCheckConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetPlayIntegrityConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaEnterpriseConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaV3Configsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetSafetyNetConfigsgoogle.firebase.appcheck.v1beta.ConfigService.GetAppAttestConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetDebugTokengoogle.firebase.appcheck.v1beta.ConfigService.GetDeviceCheckConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetPlayIntegrityConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetRecaptchaConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetRecaptchaEnterpriseConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetRecaptchaV3Configgoogle.firebase.appcheck.v1beta.ConfigService.GetResourcePolicygoogle.firebase.appcheck.v1beta.ConfigService.GetSafetyNetConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetServicegoogle.firebase.appcheck.v1beta.ConfigService.ListDebugTokensgoogle.firebase.appcheck.v1beta.ConfigService.ListResourcePoliciesgoogle.firebase.appcheck.v1beta.ConfigService.ListServices |
ADMIN_WRITE |
google.firebase.appcheck.v1.ConfigService.BatchUpdateServicesgoogle.firebase.appcheck.v1.ConfigService.CreateDebugTokengoogle.firebase.appcheck.v1.ConfigService.DeleteDebugTokengoogle.firebase.appcheck.v1.ConfigService.UpdateAppAttestConfiggoogle.firebase.appcheck.v1.ConfigService.UpdateDebugTokengoogle.firebase.appcheck.v1.ConfigService.UpdateDeviceCheckConfiggoogle.firebase.appcheck.v1.ConfigService.UpdatePlayIntegrityConfiggoogle.firebase.appcheck.v1.ConfigService.UpdateRecaptchaEnterpriseConfiggoogle.firebase.appcheck.v1.ConfigService.UpdateRecaptchaV3Configgoogle.firebase.appcheck.v1.ConfigService.UpdateSafetyNetConfiggoogle.firebase.appcheck.v1.ConfigService.UpdateServicegoogle.firebase.appcheck.v1beta.ConfigService.BatchUpdateResourcePoliciesgoogle.firebase.appcheck.v1beta.ConfigService.BatchUpdateServicesgoogle.firebase.appcheck.v1beta.ConfigService.CreateDebugTokengoogle.firebase.appcheck.v1beta.ConfigService.CreateResourcePolicygoogle.firebase.appcheck.v1beta.ConfigService.DeleteDebugTokengoogle.firebase.appcheck.v1beta.ConfigService.DeleteResourcePolicygoogle.firebase.appcheck.v1beta.ConfigService.UpdateAppAttestConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateDebugTokengoogle.firebase.appcheck.v1beta.ConfigService.UpdateDeviceCheckConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdatePlayIntegrityConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaEnterpriseConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaV3Configgoogle.firebase.appcheck.v1beta.ConfigService.UpdateResourcePolicygoogle.firebase.appcheck.v1beta.ConfigService.UpdateSafetyNetConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateServicegoogle.firebase.appcheck.v1beta.TokenVerificationService.VerifyAppCheckToken |
Formato degli audit log
Le voci degli audit log includono i seguenti oggetti:
La voce di log stessa, che è un oggetto di tipo
LogEntry. Di seguito sono elencati alcuni campi utili:logNamecontiene l'ID risorsa e il tipo di audit log.resourcecontiene il target dell'operazione sottoposta ad audit.timestampcontiene l'ora dell'operazione sottoposta ad audit.protoPayloadcontiene le informazioni sottoposte ad audit.
I dati di audit logging, che sono un oggetto
AuditLogcontenuto nel campoprotoPayloaddella voce di log.Informazioni di audit facoltative e specifiche del servizio, che sono un oggetto specifico del servizio. Per le integrazioni precedenti, questo oggetto è contenuto nel campo
serviceDatadell'oggettoAuditLog; le integrazioni successive utilizzano il campometadata.
Per informazioni sugli altri campi in questi oggetti e su come interpretarli, consulta Informazioni sugli audit log.
Nome log
I nomi delle risorse di Cloud Audit Logs indicano il progetto Firebase o un'altra Google Cloud entità proprietaria degli audit log, oltre a specificare se il log contiene Attività di amministrazione, Accesso ai dati, Policy negata o Evento di sistema. Ad esempio, l'esempio seguente mostra i nomi dei log per gli audit log delle attività di amministrazione a livello di progetto e gli audit log degli accessi ai dati di un'organizzazione. Le variabili indicano gli identificatori del progetto Firebase e dell'organizzazione.
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
Nome servizio
Gli audit log di Firebase App Check utilizzano il nome servizio firebaseappcheck.googleapis.com.
Per un elenco completo di tutti i nomi di servizio dell'API Cloud Logging e dei relativi tipi di risorse monitorate, consulta Mappa i servizi alle risorse.
Tipi di risorse
Gli audit log di Firebase App Check utilizzano il tipo di risorsa audited_resource per tutti gli audit log.
Per un elenco di tutti i tipi di risorse monitorate di Cloud Logging e informazioni descrittive, consulta Tipi di risorse monitorate.
Attivazione degli audit log
Gli audit log per le attività di amministrazione sono sempre attivati e non possono essere disattivati.
Gli audit log di accesso ai dati sono disabilitati per impostazione predefinita e non vengono scritti a meno che non vengano attivati esplicitamente (fanno eccezione gli audit log degli accessi ai dati per BigQuery, che non possono essere disattivati).
Per istruzioni sull'attivazione di alcuni o tutti gli audit log di accesso ai dati, consulta Configurare i log di accesso ai dati.
Autorizzazioni e ruoli
Le autorizzazioni e i ruoli Cloud IAM determinano la tua capacità di accedere ai dati degli audit log nelle risorse Google Cloud.
Per decidere quali autorizzazioni e ruoli specifici per il logging si applicano al tuo caso d'uso, considera quanto segue:
Il ruolo Logs Viewer (
roles/logging.viewer) ti concede l'accesso di sola lettura agli audit log Attività di amministrazione, Policy negata ed Evento di sistema. Se disponi solo di questo ruolo, non puoi visualizzare gli audit log di accesso ai dati che si trovano nel bucket_Default.Il ruolo Private Logs Viewer
(roles/logging.privateLogViewer) include le autorizzazioni contenute inroles/logging.viewer, oltre alla possibilità di leggere gli audit log di accesso ai dati nel bucket_Default.Tieni presente che se questi log privati sono archiviati in bucket definiti dall'utente, qualsiasi utente che dispone delle autorizzazioni di lettura dei log in questi bucket può leggere i log privati. Per saperne di più sui bucket di log, consulta la panoramica su routing e archiviazione.
Per saperne di più sui ruoli e sulle autorizzazioni Cloud IAM che si applicano ai dati degli audit log, consulta Controllo dell'accesso.
Visualizza i log
Per trovare e visualizzare gli audit log, devi conoscere l'identificatore del progetto Firebase, della cartella o dell'organizzazione per cui vuoi visualizzare le informazioni di audit logging. Puoi specificare ulteriormente altri campi indicizzati
LogEntry, come resource.type; per i dettagli, consulta
Trovare rapidamente le voci di log.
Di seguito sono riportati i nomi degli audit log, incluse le variabili per gli identificatori del progetto Firebase, della cartella o dell'organizzazione:
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 gli audit log in Cloud Logging utilizzando la console Google Cloud, lo strumento a riga di comando gcloud o l'API Logging.
Console
Puoi utilizzare Esplora log nella console Google Cloud per recuperare le voci di audit log per il progetto Firebase, la cartella o l'organizzazione:
Nella console Google Cloud, vai alla pagina Logging > Esplora log.
Nella pagina Esplora log, seleziona un progetto Firebase, una cartella o un'organizzazione esistente.
Nel riquadro Generatore di query, procedi nel seguente modo:
In Tipo di risorsa, seleziona la Google Cloud risorsa di cui vuoi visualizzare gli audit log.
In Nome log, seleziona il tipo di audit log che vuoi visualizzare:
- Per gli audit log Attività di amministrazione, seleziona activity.
- Per gli audit log Accesso ai dati, seleziona data_access.
- Per gli audit log Evento di sistema, seleziona system_event.
- Per gli audit log Policy negata, seleziona policy.
Se non vedi queste opzioni, significa che non sono disponibili audit log di questo tipo nel progetto Firebase, nella cartella o nell'organizzazione.
Per maggiori dettagli sull'esecuzione di query utilizzando Esplora log, consulta Creare query di log.
gcloud
Lo strumento a riga di comando gcloud fornisce un'interfaccia a riga di comando per l'API Cloud Logging. Specifica un PROJECT_ID, FOLDER_ID o ORGANIZATION_ID valido in ciascuno dei nomi di log.
Per leggere le voci di audit log 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 di audit log 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 di audit log a livello di organizzazione, esegui il comando seguente:
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID
Per saperne di più sull'utilizzo dello strumento gcloud, consulta
Leggere le voci di log.
API
Quando crei le query, sostituisci le variabili con valori validi, sostituendo il nome o gli identificatori degli audit log a livello di progetto, cartella o organizzazione appropriati, come indicato nei nomi degli audit log. Ad esempio, se la query include un PROJECT_ID, l' identificatore del progetto specificato deve fare riferimento al progetto Firebase attualmente selezionato.
Per utilizzare l'API Logging per esaminare le voci di audit log, procedi nel seguente modo:
Vai alla sezione Prova questa API nella documentazione del
entries.listmetodo.Inserisci il codice seguente nella sezione Corpo della richiesta del modulo Prova questa API. Facendo clic su questo modulo precompilato il corpo della richiesta viene compilato automaticamente, ma devi fornire un
PROJECT_IDvalido in ciascuno dei nomi di log.{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }Fai clic su Esegui.
Per maggiori dettagli sull'esecuzione di query, consulta Linguaggio delle query di Logging.
Per un esempio di voce di log di controllo e su come trovare le informazioni più importanti, consulta Esempio di voce di log di controllo.
Instrada gli audit log
Puoi instradare gli audit log alle destinazioni supportate nello stesso modo in cui puoi instradare altri tipi di log. Ecco alcuni motivi per cui può essere utile instradare gli audit log:
Per conservare gli audit log più a lungo o utilizzare funzionalità di ricerca più avanzate, puoi instradare delle copie degli audit log in Google Cloud Storage, BigQuery o Google Cloud Pub/Sub. Utilizzando Cloud Pub/Sub, puoi instradare i log in altre applicazioni, in altri repository e a terze parti.
Per gestire gli audit log in tutta l'organizzazione, puoi creare dei sink aggregati che permettono di instradare i log da qualsiasi progetto Firebase o anche da tutti i progetti Firebase nell'organizzazione.
- Se gli audit log di accesso ai dati abilitati causano il possibile superamento della soglia consentita per i progetti Firebase, puoi creare sink che escludano gli audit log di accesso ai dati da Logging.
Per istruzioni su come instradare i log, consulta Configurare i sink.
Prezzi
Gli audit log delle attività di amministrazione e gli audit log degli eventi di sistema non prevedono costi.
Gli audit log degli accessi ai dati e gli audit log sugli accessi negati in base ai criteri sono a pagamento.
Per saperne di più sui prezzi di Cloud Logging, consulta Prezzi della suite operativa di Google Cloud: Cloud Logging.