Gdy logi bezpieczeństwa znajdują się w BigQuery (z przesyłania do Cloud Logging, eksportu Google Workspace lub własnej linii danych), eksportuj je za pomocą EXPORT DATA. Zapisuje on dane w formacie JSON z końcami linii w koszu Cloud Storage, skąd można je pobrać. Dla małych wyników bq query –format=json bezpośrednio wypisuje wiersze. W każdym przypadku najpierw filtruj na kolumnie czasu lub partycji tabeli, ponieważ BigQuery rozlicza się na podstawie przeskanowanych danych.
BigQuery to miejsce, gdzie wiele zespołów Google Cloud przechowuje historię logów długo po upływie domyślnego okresu przechowywania w Cloud Logging. Prime Core ma ponad 24 000 unikalnych reguł wykrywania, powiązanych z 676 technikami MITRE ATT&CK. Poniżej opisano, jak uzyskać wycinek, zanonimizować go i bezpłatnie zbadać w LogTotal.
Zanim zaczniesz
Uprawnienia. Musisz uruchamiać zadania (BigQuery Job User), odczytywać zestaw danych (BigQuery Data Viewer) i zapisywać do kosza eksportowego.
Poznaj tabele. Użycie Cloud Logging sink do BigQuery tworzy tabele nazwane po logach, na przykład cloudaudit_googleapis_com_activity, często partycjonowane wg znaczników czasowych. Eksporty z Workspace mają własny schemat.
Najpierw sprawdź koszt. Dodaj –dry_run do zapytania bq, aby sprawdzić, ile bajtów zostanie zeskanowanych. Jeśli liczba przyprawia Cię o grymas, dodaj ściślejszy filtr czasowy.
Opcja 1: EXPORT DATA do 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');
URI potrzebuje symbolu wieloznacznego (*), ponieważ BigQuery może zapisać kilka plików. Pobierz i połącz je:
gcloud storage cp 'gs://my-bq-exports/audit-20261019/*' ./audit-20261019/
cat ./audit-20261019/*.json > bq_audit_20261019.jsonl
Opcja 2: zapytanie bq dla małych wyników
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 wypisuje tablicę JSON, którą jq flattenuje na jeden wiersz na linię.
Prześlij, zanonimizuj i przejrzyj w LogTotal
- Prześlij. Otwórz logtotal.com i upuść plik .jsonl.
- Anonimizuj.
- Przejrzyj.
Gdy coś pójdzie nie tak
| Objaw | Prawdopodobna przyczyna | Fix |
|---|---|---|
| Zapytanie skanuje całą tabelę | Brak filtra na kolumnie partycji lub czasu | Filtruj po znaczniku czasu (lub _PARTITIONTIME) |
| EXPORT DATA nie działa na URI | Brak znaku wieloznacznego w URI | Użyj …/*.json |
| Odmowa dostępu przy zapisie do kosza | Brak uprawnień do tworzenia obiektów Storage | Przyznaj dostęp do zapisu w koszu |
| Wynik bq obcięty przy 100 wierszach | Domyślne –max_rows | Ustaw –max_rows lub użyj EXPORT DATA |
| Pola zagnieżdżone wyglądają dziwnie | Powtarzane i zagnieżdżone kolumny zachowują swoją strukturę | Oczekiwane; nadal jest to poprawny JSON |
FAQ
Czy to to samo co eksport z Cloud Logging?
Nie. Cloud Logging ma własny eksport. Ten przewodnik dotyczy logów, które już istnieją w tabelach BigQuery.
Czy mogę wyeksportować całą tabelę bez zapytania
Tak: bq extract –destination_format NEWLINE_DELIMITED_JSON kopiuje tabelę lub partycję do Cloud Storage. Do celów śledczych zwykle lepsze jest filtrowane zapytanie.