Wenn Sicherheitsprotokolle in BigQuery liegen (von einem Cloud Logging-Sink, einem Google Workspace-Export oder Ihrer eigenen Pipeline), exportieren Sie sie mit EXPORT DATA. Es schreibt newline-delimited JSON in einen Cloud Storage-Bucket, und Sie laden es herunter. Für kleine Ergebnisse druckt bq query –format=json die Zeilen direkt. In jedem Fall filtern Sie zuerst die Zeit- oder Partitionsspalte der Tabelle, da BigQuery nach gescannten Daten abrechnet.
BigQuery ist der Ort, an dem viele Google Cloud-Teams Protokollhistorien lange nach Ablauf des Standardaufbewahrungszeitraums von Cloud Logging aufbewahren. Prime Core hat mehr als 24.000 einzigartige Erkennungsregeln, die 676 MITRE ATT&CK-Techniken zugeordnet sind. Im Folgenden wird beschrieben, wie Sie ein Stück herausnehmen, es bereinigen und kostenlos in LogTotal untersuchen können.
Bevor Sie anfangen
Berechtigungen. Sie müssen Jobs ausführen (BigQuery Jobbenutzer), das Dataset lesen (BigQuery Datenseher) und in den Export-Bucket schreiben können.
Kennen Sie die Tabellen. Ein Cloud Logging-Sink zu BigQuery erstellt Tabellen, die nach den Protokollen benannt sind, zum Beispiel cloudaudit_googleapis_com_activity, oft nach Zeitstempel partitioniert. Workspace-Exporte haben ihr eigenes Schema.
Prüfen Sie zuerst die Kosten. Fügen Sie –dry_run zu einer bq-Abfrage hinzu, um zu sehen, wie viele Bytes gescannt würden. Wenn die Zahl Sie erschreckt, fügen Sie einen engeren Zeitfilter hinzu.
Option 1: EXPORT DATA zu 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');
Die URI benötigt ein Platzhalterzeichen (*), da BigQuery möglicherweise mehrere Dateien schreibt. Laden Sie sie herunter und kombinieren Sie sie:
gcloud storage cp 'gs://my-bq-exports/audit-20261019/*' ./audit-20261019/
cat ./audit-20261019/*.json > bq_audit_20261019.jsonl
Option 2: bq query für kleine Ergebnisse
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 druckt ein JSON-Array, das jq zu einer Zeile pro Zeile flacht.
Hochladen, bereinigen und in LogTotal überprüfen
- Hochladen. Öffnen logtotal.com und die .jsonl-Datei ablegen.
- Bereinigen.
- Überprüfen.
Wenn es schief geht
| Symptom | Wahrscheinliche Ursache | Fix |
|---|---|---|
| Abfrage scannt die gesamte Tabelle | Kein Filter auf der Partitions- oder Zeitspalte | Filter auf Zeitstempel (oder _PARTITIONTIME) |
| EXPORT DATA schlägt bei der URI fehl | Kein Platzhalter in der URI | Verwenden Sie …/*.json |
| Erlaubnis verweigert beim Schreiben in den Bucket | Fehlende Rechte zum Erstellen von Storage-Objekten | Schreibzugriff auf den Bucket gewähren |
| bq-Ausgabe auf 100 Zeilen geschnitten | Standard –max_rows | Setzen Sie –max_rows, oder verwenden Sie EXPORT DATA |
| Verschachtelte Felder sehen seltsam aus | Wiederholte und verschachtelte Spalten behalten ihre Struktur | Erwartet; es ist immer noch gültiges JSON |
FAQ
Ist dies dasselbe wie der Export aus Cloud Logging?
Nein. Cloud Logging hat seinen eigenen Export. Diese Anleitung ist für Protokolle, die bereits in BigQuery-Tabellen leben.
Kann ich eine ganze Tabelle ohne Abfrage exportieren
Ja: bq extract –destination_format NEWLINE_DELIMITED_JSON kopiert eine Tabelle oder eine Partition zu Cloud Storage. Für Untersuchungen ist in der Regel eine gefilterte Abfrage besser.