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 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 dettagliate sui problemi operativi relativi al tuo utilizzo dei servizi Google Cloud . Per ulteriori informazioni su come Google Cloud gestisce la registrazione, consulta la documentazione di Cloud Logging e la panoramica di Cloud Audit Logs.

Audit log e visualizzazioni di INFORMATION_SCHEMA

I tuoi 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.

Gli audit log ti aiutano a 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 sull'attività di sistema per utente e sui modelli di accesso e devono essere la tua fonte principale per le domande di controllo o di sicurezza.

Le visualizzazioni INFORMATION_SCHEMA in BigQuery sono un'altra fonte di informazioni che puoi utilizzare insieme a metriche e log. Queste viste contengono metadati relativi a job, set di dati, tabelle e altre entità BigQuery. Ad esempio, puoi ottenere metadati in tempo reale sui job BigQuery eseguiti durante un periodo di tempo specificato. 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 dei 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 streaming si sono verificati negli ultimi 30 minuti, raggruppati per codice di errore?

I log di controllo 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 viste INFORMATION_SCHEMA, ma non nei log di controllo.

Per ottenere informazioni dettagliate sul rendimento dei tuoi workload BigQuery in particolare, consulta Metadati dei job, Metadati di streaming e Metadati delle prenotazioni.

Per saperne di più sui tipi di audit log scritti dai servizi Google Cloud , vedi Tipi di audit log.

Formato degli audit log

Google Cloud scrivono log di controllo 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 campo secondario chiamato campo payload. Per gli audit log, il campo 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 dei log AuditLog.

Per le operazioni su set di dati, tabelle e job, BigQuery scrive 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 dei log AuditData.

Il formato più recente include i seguenti campi e valori:

  • Il valore del campo resource.type è bigquery_project o bigquery_dataset. La risorsa bigquery_project ha voci di log relative ai job, mentre la risorsa bigquery_dataset ha voci di log relative all'archiviazione.
  • BigQuery scrive i dettagli di un'operazione nel campo protoPayload.metadata. Il valore di questo campo utilizza la struttura BigQueryAuditMetadata.

Ti consigliamo di utilizzare i log nel formato più recente. Per saperne di più, consulta la guida alla migrazione dei log di controllo.

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 ulteriori informazioni, vedi Monitoraggio delle prenotazioni BigQuery.

Per una migliore comprensione del formato dei log di controllo, vedi Comprendere i log di controllo.

Limitazioni

I messaggi di log hanno un limite di dimensioni di 100.000 byte. Per ulteriori informazioni, vedi Voce di log troncata.

Visibilità e controllo dell'accesso

I log di controllo BigQuery possono includere informazioni che gli utenti potrebbero considerare sensibili, come testo SQL, definizioni di schema e identificatori per risorse come tabelle e set di dati. Per informazioni sulla gestione dell'accesso a queste informazioni, consulta la documentazione sul controllo dell'accesso di Cloud Logging.

Passaggi successivi