Introduzione agli audit log in BigQuery
Puoi utilizzare gli audit log di BigQuery per monitorare le attività amministrative e di accesso ai dati nei tuoi progetti. I log sono file di testo che vengono creati automaticamente e registrano chi ha eseguito azioni specifiche, come la creazione di tabelle o l'esecuzione di job, per aiutarti a mantenere la sicurezza e garantire la conformità. Questo documento spiega quando utilizzare gli audit log e fornisce una panoramica del loro formato.
Google Cloud scrive anche log, inclusi gli audit log che forniscono informazioni su problemi operativi relativi all'utilizzo dei servizi Google Cloud . 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 e visualizzazioni INFORMATION_SCHEMA
I tuoi progetti Google Cloud contengono gli 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.
Gli audit log ti aiutano a rispondere alla domanda "Chi ha fatto cosa, dove e quando?" all'interno delle tue risorse Google Cloud . Gli audit log sono la fonte di informazioni definitiva per l'attività di sistema in base ai modelli di accesso e utente e dovrebbero essere la tua fonte principale per le domande di controllo o sicurezza.
Le visualizzazioni INFORMATION_SCHEMA in BigQuery sono un'altra fonte di insight che puoi utilizzare insieme a metriche e log. Queste viste contengono metadati su job, set di dati, tabelle e altre entità BigQuery. Ad esempio, puoi ottenere metadati in tempo reale sui job BigQuery eseguiti in un periodo di tempo specificato. In seguito, puoi raggruppare o filtrare i risultati per progetto, utente, tabelle di riferimento e altre dimensioni.
Le viste INFORMATION_SCHEMA forniscono informazioni per eseguire un'analisi più dettagliata dei workload BigQuery, ad esempio:
- Qual è l'utilizzo medio degli slot per tutte le query negli ultimi sette giorni per un determinato progetto?
- Quali errori di streaming 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 caricamento) le cui informazioni vengono acquisite dalle viste INFORMATION_SCHEMA. Ad esempio, puoi trovare informazioni sull'ora e sugli slot utilizzati da una query specifica nelle visualizzazioni INFORMATION_SCHEMA, ma non negli audit log.
Per ottenere insight sulle prestazioni dei tuoi workload BigQuery in particolare, consulta i metadati dei job, i metadati di streaming e i metadati delle prenotazioni.
Per saperne di più sui tipi di audit log scritti dai servizi Google Cloud , consulta Tipi di audit log.
Formato degli audit log
I serviziGoogle Cloud scrivono gli audit log in un formato JSON strutturato. Il tipo di dati di base per le voci di log 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 chiamato campo 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, il che indica che il campo utilizza la struttura di 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 di logAuditData.
Il formato più recente include i seguenti campi e valori:
- Il valore del campo
resource.typeèbigquery_projectobigquery_dataset. La risorsabigquery_projectcontiene voci di log relative ai job, mentre la risorsabigquery_datasetcontiene 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 saperne di più, 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 e 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 informazioni più approfondite sul formato degli audit log, consulta Informazioni sugli audit log.
Limitazioni
I messaggi di log hanno un limite di dimensioni di 100.000 byte. Per saperne di più, 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 di schemi e identificatori di risorse come tabelle e set di dati. Per informazioni sulla gestione dell'accesso a queste informazioni, consulta la documentazione sul controllo degli accessi di Cloud Logging.
Mappa di telemetria
La tabella seguente mappa le funzionalità e le risorse di BigQuery alla telemetria di monitoraggio operativo, ai servizi e alle risorse API controllati e alla documentazione di riferimento degli audit log. Puoi utilizzarlo per trovare la telemetria necessaria per risolvere i problemi, ottimizzare le prestazioni, controllare i costi, controllare l'utilizzo e mantenere la conformità.
A differenza di molti servizi Google Cloud che scrivono i log dei job operativi in
Cloud Logging, BigQuery scrive la telemetria dei job operativi nelle
viste dello schema di informazioni, come
INFORMATION_SCHEMA.JOBS. Queste visualizzazioni acquisiscono le fasi di esecuzione delle query, l'utilizzo degli slot, i byte fatturati e tutti i job inviati, inclusi quelli in corso e quelli non riusciti.
BigQuery utilizza Logging principalmente per generare Cloud Audit Logs, che registrano le attività amministrative e di accesso ai dati. Quando esegui l'audit di questa attività, puoi determinare chi ha eseguito l'accesso alle risorse o ai dati, dove e quando.
Gli audit log non vengono emessi per ogni interruzione o errore del job. Ad esempio, i job non riusciti non generano eventi TableDataRead o TableDataChange e jobCompletedEvent registra solo i completamenti dei job riusciti. Per i dettagli sugli scenari che non generano audit log, consulta Accesso ai dati nella panoramica degli audit log di BigQuery.
Nella tabella seguente, un asterisco (*) nel nome di una vista INFORMATION_SCHEMA indica varianti della vista specifiche per l'ambito, ad esempio _BY_PROJECT, _BY_USER, _BY_FOLDER e _BY_ORGANIZATION.
| Funzionalità o risorsa | Monitoraggio operativo | Cloud Audit Logs |
|---|---|---|
| Query e job |
Viste dello schema di informazioni:
Console:
Metriche: metriche di Cloud Monitoring, come |
Servizio API:
Risorse controllate: job in Audit log: log di accesso ai dati che utilizzano |
| Tabelle e viste |
Viste dello schema di informazioni:
Metriche: metriche di Monitoring, come |
Servizi API:
Risorse controllate: tabelle, viste e viste materializzate in Audit log: log di accesso ai dati che utilizzano
|
| Set di dati |
Viste dello schema di informazioni:
|
Servizio API:
Risorse controllate: set di dati, policy IAM dei set di dati e ACL dei set di dati in Audit log: log di Attività di amministrazione e Accesso ai dati utilizzando |
| Slot e prenotazioni |
Viste dello schema di informazioni:
Console:
Metriche: metriche di Monitoring, come |
Servizio API:
Risorse controllate: prenotazioni, impegni di capacità e assegnazioni di prenotazioni in Audit log: log Attività di amministrazione e Accesso ai dati per la creazione, la modifica, l'eliminazione e l'elenco di prenotazioni, impegni di capacità e assegnazioni di progetti o cartelle. Consulta Audit logging dell'API BigQuery Reservation. |
| Sicurezza a livello di colonna e mascheramento dei dati |
Viste dello schema di informazioni:
|
Servizi API:
Risorse controllate: tassonomie e tag di policy in
Audit log: log di Attività di amministrazione e Accesso ai dati per la gestione delle tassonomie e dei tag di criteri e per le modifiche alle policy IAM (Tag di policy di controllo); gestione delle policy dei dati e aggiornamenti dei beneficiari (Audit logging di BigQuery Data Policy); e log |
| Routine, incluse le funzioni definite dall'utente e le stored procedure |
Viste dello schema di informazioni:
|
Servizio API:
Risorse controllate: funzioni definite dall'utente (UDF), funzioni di tabella e stored procedure in Audit log: log di Attività di amministrazione e Accesso ai dati che utilizzano |
| Connessioni esterne |
Viste dello schema di informazioni:
|
Servizio API:
Risorse controllate: connessioni e policy IAM di connessione in Audit log: log di attività di amministrazione e accesso ai dati per la creazione di connessioni, gli aggiornamenti delle credenziali, l'eliminazione, l'elenco e le modifiche alle policy IAM. Consulta Audit logging dell'API BigQuery Connection. |
| BigQuery sharing |
Viste dello schema di informazioni:
Dashboard: dashboard delle metriche di utilizzo della condivisione. |
Servizio API:
Risorse controllate: scambi di dati, schede, abbonamenti e policy IAM di scambio o scheda in Audit log: log di attività di amministrazione e accesso ai dati per la creazione, l'aggiornamento e l'eliminazione di scambi di dati e schede, modifiche alle policy IAM e operazioni dei sottoscrittori. Consulta Audit logging della condivisione. |
| BigQuery Data Transfer Service |
Metriche e log:
|
Servizio API:
Risorse controllate: configurazioni dei trasferimenti, esecuzioni dei trasferimenti e origini dati in Audit log: log di attività di amministrazione e accesso ai dati per la creazione, l'aggiornamento, l'eliminazione, l'elenco e l'avvio di configurazioni ed esecuzioni di trasferimento. Consulta Audit logging di BigQuery Data Transfer Service. |
| Cataloghi e tabelle BigLake |
Viste dello schema di informazioni: |
Servizi API:
Risorse controllate: cataloghi, database, tabelle e partizioni del metastore in Audit log: log Attività di amministrazione e Accesso ai dati per le operazioni relative a policy IAM di catalogo, database, spazio dei nomi, tabella, partizione e catalogo. Consulta Audit logging di BigLake. |
| BigQuery Migration Service |
Stato e report:
|
Servizio API:
Risorse controllate: flussi di lavoro di migrazione, attività secondarie di migrazione e richieste di traduzione SQL in Audit log: log di accesso ai dati per la creazione, l'avvio, l'elenco, la visualizzazione e l'eliminazione di workflow e attività secondarie di migrazione e per la traduzione di query SQL. Consulta Audit logging di BigQuery Migration Service. |
Passaggi successivi
- Per scoprire come utilizzare Cloud Logging per controllare le attività correlate ai tag di policy, consulta Controlla i tag di policy.
- Per scoprire come utilizzare BigQuery per analizzare le attività registrate, consulta Panoramica degli audit log di BigQuery.