Come Esportare i Log di BigQuery

Come Esportare i Log di BigQuery

SOC Prime Team
SOC Prime Team linkedin icon Segui

Quando i log di sicurezza sono in BigQuery (da un sink di Cloud Logging, un’esportazione di Google Workspace o la tua pipeline), esportali con EXPORT DATA. Scrive JSON delimitato da nuove righe in un bucket di Cloud Storage, e tu scarichi quello. Per risultati piccoli, bq query –format=json stampa le righe direttamente. In entrambi i casi, filtra prima sulla colonna tempo o partizione della tabella, perché BigQuery fattura sui dati scansionati.

BigQuery è dove molti team di Google Cloud conservano la cronologia dei log molto dopo che la conservazione predefinita di Cloud Logging è passata. Prime Core ha più di 24.000 regole di rilevamento uniche, mappate a 676 tecniche MITRE ATT&CK. Di seguito è riportato come estrarre un frammento, sanificarlo e investigarlo gratuitamente in LogTotal.

Inizia Gratis

Prima di iniziare

Autorizzazioni. È necessario eseguire lavori (Utente Job di BigQuery), leggere il dataset (Visualizzatore Dati BigQuery) e scrivere sul bucket di esportazione.

Conosci le tabelle. Un sink di Cloud Logging su BigQuery crea tabelle denominate in base ai log, ad esempio cloudaudit_googleapis_com_activity, spesso partizionate per timestamp. Le esportazioni di Workspace hanno il loro schema.

Controlla prima il costo. Aggiungi –dry_run a una bq query per vedere quanti byte verrebbero scansionati. Se il numero ti fa sobbalzare, aggiungi un filtro temporale più ristretto.

Opzione 1: EXPORT DATA su Cloud Storage

EXPORT DATA OPTIONS (
  uri = 'gs://my-bq-exports/audit-20261019/*.json',
  format = 'JSON',
  overwrite = true
) AS
SELECT *
FROM `my-project.audit_logs.cloudaudit_googleapis_com_activity`
WHERE timestamp >= TIMESTAMP('2026-10-19') AND timestamp < TIMESTAMP('2026-10-20');

L’URI ha bisogno di un carattere jolly (*), perché BigQuery potrebbe scrivere diversi file. Scaricali e combinagli:

gcloud storage cp 'gs://my-bq-exports/audit-20261019/*' ./audit-20261019/
cat ./audit-20261019/*.json > bq_audit_20261019.jsonl

Opzione 2: bq query per risultati piccoli

bq query --nouse_legacy_sql --format=json --max_rows=10000 
  'SELECT * FROM `my-project.audit_logs.cloudaudit_googleapis_com_activity`
  WHERE timestamp >= TIMESTAMP("2026-10-19") AND timestamp < TIMESTAMP("2026-10-20")'
  > bq_audit_small.json

jq -c '.[]' bq_audit_small.json > bq_audit_small.jsonl

–format=json stampa un array JSON, che jq appiattisce in una riga per linea.

Carica, sanifica e rivedi in LogTotal

  1. Carica. Apri logtotal.com e trascina il file .jsonl.
  2. Sanificare. 
  3. Rivedi. 

Quando qualcosa va storto

SintomoCausa probabileFix
La query scansiona tutta la tabellaNessun filtro sulla colonna di partizione o tempoFiltra sul timestamp (o _PARTITIONTIME)
EXPORT DATA fallisce sull’URINessun carattere jolly nell’URIUsa …/*.json
Permesso negato nella scrittura sul bucketDiritti di creazione oggetti di Storage mancantiConcedi l’accesso in scrittura sul bucket
Output bq tagliato a 100 righeDefault –max_rowsImposta –max_rows, o usa EXPORT DATA
Campi nidificati sembrano straniLe colonne annidate e ripetute mantengono la loro strutturaPrevisto; è comunque JSON valido

FAQ

È lo stesso dell’esportazione da Cloud Logging?

No. Cloud Logging ha la sua esportazione. Questa guida è per i log che vivono già in tabelle BigQuery.

Posso esportare un’intera tabella senza una query

Sì: bq extract –destination_format NEWLINE_DELIMITED_JSON copia una tabella o una partizione su Cloud Storage. Per le investigazioni, di solito è meglio una query filtrata.

Unisciti alla piattaforma Detection as Code di SOC Prime per migliorare la visibilità sulle minacce più rilevanti per il tuo business. Per aiutarti a iniziare e aumentare immediatamente il valore, prenota ora un incontro con gli esperti di SOC Prime.