Коли журнали безпеки знаходяться в BigQuery (через приймач Cloud Logging, експорт Google Workspace або ваш власний конвеєр), експортуйте їх за допомогою EXPORT DATA. Він записує JSON, розділений новими рядками, у кошик Cloud Storage, і ви завантажуєте це. Для невеликих результатів bq query –format=json виводить рядки безпосередньо. У будь-якому випадку, спочатку фільтруйте за часом або стовпцем розділення таблиці, тому що BigQuery нараховує плату за дані, які скануються.
BigQuery – це місце, де багато команд Google Cloud зберігають історію логів довго після закінчення стандартного зберігання Cloud Logging. Prime Core має понад 24,000 унікальних правил виявлення, які відповідають 676 технікам MITRE ATT&CK. Нижче показано, як отримати частину, санітизувати її та безкоштовно дослідити у LogTotal.
Перед початком
Дозволи. Вам потрібно запускати завдання (BigQuery Job User), читати набір даних (BigQuery Data Viewer) та записувати в експортний кошик.
Знайте таблиці. Приймач Cloud Logging у BigQuery створює таблиці, названі за логи, наприклад cloudaudit_googleapis_com_activity, часто розділені за часовими мітками. Workspace експорти мають свою власну схему.
Перевірте вартість спочатку. Додайте –dry_run до bq query, щоб побачити, скільки байтів було б відскановано. Якщо число вас налякало, додайте більш жорсткий часовий фільтр.
Опція 1: EXPORT DATA у 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 потребує підстановочного знака (*), тому що BigQuery може записувати кілька файлів. Завантажте та поєднайте їх:
gcloud storage cp 'gs://my-bq-exports/audit-20261019/*' ./audit-20261019/
cat ./audit-20261019/*.json > bq_audit_20261019.jsonl
Опція 2: bq query для малих результатів
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 виводить масив JSON, який jq пласкає в один рядок на рядок.
Завантажте, санітизуйте і перегляньте у LogTotal
- Завантажити. Відкрити logtotal.com і завантажте .jsonl файл.
- Санітизувати.
- Переглянути.
Коли щось йде не так
| Симптом | Ймовірна причина | Fix |
|---|---|---|
| Запит сканує всю таблицю | Немає фільтру за колонкою розділення або часу | Фільтр за часовою міткою (або _PARTITIONTIME) |
| EXPORT DATA не вдалося на URI | Немає підстановочного знака у URI | Використовуйте …/*.json |
| Відмовлено в доступі до запису на кошик | Відсутні права створення об’єкта зберігання | Надайте право на запис у кошик |
| вихід bq обрізаний на 100 рядків | За замовчуванням –max_rows | Встановіть –max_rows або використовуйте EXPORT DATA |
| Вкладені поля виглядають дивно | Повторювані та вкладені стовпці зберігають свою структуру | Очікувано; це все ще допустимий JSON |
FAQ
Це те ж саме, що й експорт з Cloud Logging?
Ні. Cloud Logging має свій власний експорт. Це керівництво для журналів, які вже знаходяться в таблицях BigQuery.
Чи можу я експортувати всю таблицю без запиту
Так: bq extract –destination_format NEWLINE_DELIMITED_JSON копіює таблицю або розділ у Cloud Storage. Для досліджень зазвичай кращий відфільтрований запит.