Introduzione agli audit log in BigQuery
I log sono record di testo generati in risposta a particolari eventi o azioni. Ad esempio, BigQuery crea voci di log per azioni come la creazione o l'eliminazione di una tabella, l'acquisto di slot o l'esecuzione di un job di caricamento.
Google Cloud scrive inoltre log, inclusi audit log che forniscono insight su problemi operativi relativi all'utilizzo dei servizi Google Cloud da parte tua. Per saperne di più su come Google Cloud gestisce il logging, consulta la documentazione di Cloud Logging e la panoramica di Cloud Audit Logs.
Audit log rispetto alle visualizzazioni INFORMATION_SCHEMA
I progetti Google Cloud contengono audit log solo per le risorse che si trovano direttamente all'interno del progetto Google Cloud. Altre risorse Google Cloud, come cartelle, organizzazioni e account di fatturazione, contengono i propri audit log.
I log di controllo consentono di rispondere alla domanda "Chi ha fatto cosa, dove e quando?". all'interno delle tue risorse Google Cloud. I log di controllo sono la fonte definitiva di informazioni sulle attività del sistema per utente e sui pattern di accesso e devono essere la tua fonte principale per domande di controllo o sicurezza.
Le viste di INFORMATION_SCHEMA
in BigQuery sono un'altra fonte di insight che puoi utilizzare insieme alle metriche e ai log. Queste viste contengono metadati relativi a job, set di dati, tabelle e altre entità BigQuery. Ad esempio, puoi ottenere metadati in tempo reale su quali job BigQuery sono stati eseguiti durante un orario specifico. Poi, puoi raggruppare o filtrare i risultati per progetto, utente, tabelle a cui viene fatto riferimento e altre dimensioni.
Le viste INFORMATION_SCHEMA
forniscono informazioni per eseguire un'analisi più dettagliata sui carichi di lavoro BigQuery, ad esempio:
- Qual è l'utilizzo medio degli slot per tutte le query negli ultimi sette giorni per un determinato progetto?
- Quali errori di flussi di dati si sono verificati negli ultimi 30 minuti, raggruppati per codice di errore?
Gli audit log di BigQuery contengono voci di log per le chiamate API, ma
non descrivono l'impatto delle chiamate API. Un sottoinsieme di chiamate API crea job
(come query e caricamenti) le cui informazioni vengono acquisite dalle visualizzazioni INFORMATION_SCHEMA
. Ad esempio, puoi trovare informazioni sull'ora e sugli slot utilizzati da una query specifica nelle visualizzazioni INFORMATION_SCHEMA
, ma non nei log di controllo.
Per ottenere insight sulle prestazioni dei tuoi carichi di lavoro BigQuery in particolare, consulta metadati dei job, metadati dei flussi di dati e metadati delle prenotazioni.
Per ulteriori informazioni sui tipi di audit log scritti dai servizi Google Cloud, consulta Tipi di audit log.
Formato degli audit log
I servizi Google Cloud scrivono gli audit log in un formato JSON strutturato. Il tipo di dati di base per le voci di log di Google Cloud è la struttura LogEntry
. Questa struttura contiene il nome del log, la risorsa che ha generato la voce di log, il timestamp (UTC) e altre informazioni di base.
I log includono i dettagli dell'evento registrato in un sottocampo denominato campo del payload. Per gli audit log, il campo del payload è denominato protoPayload
. Il tipo di questo campo (protoPayload.@type
) è impostato su type.googleapis.com/google.cloud.audit.AuditLog
, a indicare che il campo utilizza la struttura del log AuditLog
.
Per le operazioni su set di dati, tabelle e job, BigQuery scrive gli audit log in due formati diversi, anche se entrambi condividono il tipo di base AuditLog
.
Il formato precedente include i seguenti campi e valori:
- Il valore del campo
resource.type
èbigquery_resource
. - BigQuery scrive i dettagli di un'operazione nel campo
protoPayload.serviceData
. Il valore di questo campo utilizza la struttura del logAuditData
.
Il formato più recente include i seguenti campi e valori:
- Il valore del campo
resource.type
èbigquery_project
obigquery_dataset
. La risorsabigquery_project
contiene voci di log relative ai job, mentre la risorsabigquery_dataset
contiene voci di log relative allo spazio di archiviazione. - BigQuery scrive i dettagli di un'operazione nel campo
protoPayload.metadata
. Il valore di questo campo utilizza la strutturaBigQueryAuditMetadata
.
Ti consigliamo di utilizzare i log nel formato più recente. Per ulteriori informazioni, consulta la guida alla migrazione degli audit log.
Di seguito è riportato un esempio abbreviato di una voce di log che mostra un'operazione non riuscita:
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 5,
"message": "Not found: Dataset myproject:mydataset was not found in location US"
},
"authenticationInfo": { ... },
"requestMetadata": { ... },
"serviceName": "bigquery.googleapis.com",
"methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
"metadata": {
},
"resource": {
"type": "bigquery_project",
"labels": { .. },
},
"severity": "ERROR",
"logName": "projects/myproject/logs/cloudaudit.googleapis.com%2Fdata_access",
...
}
Per le operazioni sulle prenotazioni BigQuery, il campo protoPayload
utilizza la struttura AuditLog
, mentre i campi protoPayload.request
e protoPayload.response
contengono ulteriori informazioni. Puoi trovare le definizioni dei campi nell'API BigQuery Reservation. Per saperne di più, consulta Monitoraggio delle prenotazioni BigQuery.
Per una comprensione più approfondita del formato degli audit log, consulta Informazioni sui log di controllo.
Limitazioni
I messaggi di log hanno un limite di dimensione di 100.000 byte. Per ulteriori informazioni, consulta Voce di log troncata.
Visibilità e controllo dell'accesso
Gli audit log di BigQuery possono includere informazioni che gli utenti potrebbero considerare sensibili, come testo SQL, definizioni dello schema e identificatori per risorse come tabelle e set di dati. Per saperne di più sulla gestione dell'accesso a queste informazioni, consulta la documentazione sul controllo dell'accesso di Cloud Logging.
Passaggi successivi
- Per scoprire come utilizzare Cloud Logging per controllare le attività relative ai tag di criteri, consulta Controllare i tag di criteri.
- Per informazioni su come utilizzare BigQuery per analizzare l'attività registrata, consulta Panoramica degli audit log di BigQuery.