Comment exporter les journaux BigQuery

Comment exporter les journaux BigQuery

SOC Prime Team
SOC Prime Team linkedin icon Suivre

Lorsque les journaux de sécurité sont dans BigQuery (à partir d’un export Cloud Logging, d’un export Google Workspace ou de votre propre pipeline), exportez-les avec EXPORT DATA. Cela écrit du JSON délimité par des sauts de ligne dans un bucket Cloud Storage, et vous téléchargez cela. Pour de petits résultats, bq query –format=json imprime directement les lignes. Dans les deux cas, filtrez d’abord sur la colonne de temps ou de partition du tableau, car BigQuery facture selon les données scannées.

BigQuery est l’endroit où de nombreuses équipes de Google Cloud conservent l’historique des journaux longtemps après que la rétention par défaut de Cloud Logging a expiré. Prime Core dispose de plus de 24 000 règles de détection uniques, mappées à 676 techniques MITRE ATT&CK. Voici comment extraire un échantillon, le nettoyer et l’examiner gratuitement dans LogTotal.

Commencez gratuitement

Avant de commencer

Autorisations. Vous devez lancer des tâches (utilisateur de tâches BigQuery), lire le dataset (lecteur de données BigQuery) et écrire dans le bucket d’exportation.

Connaître les tables. Un sink Cloud Logging vers BigQuery crée des tables nommées d’après les journaux, par exemple cloudaudit_googleapis_com_activity, souvent partitionnées par timestamp. Les exports Workspace ont leur propre schéma.

Vérifiez d’abord le coût. Ajoutez –dry_run à une requête bq pour voir combien d’octets cela scannerait. Si le nombre vous fait grimacer, ajoutez un filtre temporel plus strict.

Option 1 : EXPORT DATA vers Cloud Storage

OPTIONS D'EXPORTATION DE DONNÉES (
  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 nécessite un caractère générique (*), car BigQuery peut écrire plusieurs fichiers. Téléchargez-les et combinez-les :

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

Option 2 : requête bq pour de petits résultats

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 imprime un tableau JSON, que jq aplatie en une ligne par entrée.

Télécharger, nettoyer et examiner dans LogTotal

  1. Télécharger. Ouvrir logtotal.com et déposez le fichier .jsonl.
  2. Nettoyer. 
  3. Examiner. 

Lorsque cela tourne mal

SymptômeCause probableFix
La requête scanne toute la tablePas de filtre sur la colonne de partition ou de tempsFiltrer sur timestamp (ou _PARTITIONTIME)
EXPORT DATA échoue sur l’URIPas de caractère générique dans l’URIUtiliser …/*.json
Permission refusée pour écrire dans le bucketDroits de création d’objet de stockage manquantsAccorder l’accès en écriture sur le bucket
Sortie bq coupée à 100 lignesValeur par défaut –max_rowsDéfinir –max_rows, ou utiliser EXPORT DATA
Les champs imbriqués semblent étrangesLes colonnes répétées et imbriquées conservent leur structureAttendu; c’est toujours un JSON valide

FAQ

Est-ce la même chose qu’exporter depuis Cloud Logging ?

Non. Cloud Logging a son propre export. Ce guide est pour les journaux qui résident déjà dans des tables BigQuery.

Puis-je exporter une table entière sans requête

Oui : bq extract –destination_format NEWLINE_DELIMITED_JSON copie une table ou une partition vers Cloud Storage. Pour les enquêtes, une requête filtrée est généralement meilleure.

Rejoignez la plateforme Detection as Code de SOC Prime pour améliorer la visibilité sur les menaces les plus pertinentes pour votre entreprise. Pour vous aider à démarrer et à générer une valeur immédiate, planifiez dès maintenant une réunion avec des experts de SOC Prime.