セキュリティログがBigQueryに保存されている場合(Cloud Loggingシンク、Google Workspaceエクスポート、または独自のパイプライン経由)、EXPORT DATAでエクスポートします。改行区切りのJSONをCloud Storageバケットに書き込み、それをダウンロードします。小さな結果の場合、bq query –format=jsonは行を直接出力します。どちらの場合も、最初にテーブルの時間またはパーティション列でフィルタリングしてください。BigQueryはスキャンされたデータ量に基づいて課金されます。
BigQueryは、Google Cloudの多くのチームがCloud Loggingのデフォルトの保持期間が過ぎた後もログ履歴を保持している場所です。Prime Coreには、676のMITRE ATT&CKテクニックにマッピングされた24,000以上のユニークな検出ルールがあります。以下は、その一部を取り出し、消毒し、LogTotalで無料で調査する方法です。
始める前に
権限。 ジョブを実行するために(BigQueryジョブユーザー)、データセットを読み取るために(BigQueryデータビューアー)、エクスポートバケットに書き込むために権限が必要です。
テーブルを知る。 Cloud LoggingからBigQueryへのシンクは、例えばcloudaudit_googleapis_com_activityなどのログにちなんで名前が付けられたテーブルを作成し、多くの場合タイムスタンプでパーティション分けされています。Workspaceエクスポートには独自のスキーマがあります。
まずコストを確認してください。 bq queryに–dry_runを追加して、どれだけのバイトをスキャンするかを確認します。その数値が大きすぎる場合、時間フィルターを絞ります。
オプション1:Cloud StorageへのEXPORT DATA
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はそれを1行ごとにフラット化します。
LogTotalでアップロード、消毒、およびレビュー
- アップロード。 開く logtotal.com そして、.jsonlファイルをドロップします。
- 消毒。
- レビュー。
問題が発生した場合
| 症状 | 考えられる原因 | Fix |
|---|---|---|
| クエリがテーブル全体をスキャン | パーティションまたは時間列にフィルターなし | タイムスタンプ(または_PARTITIONTIME)でフィルター |
| URIへのEXPORT DATAが失敗 | URIにワイルドカードが含まれていない | …/*.jsonを使用 |
| バケットへの書き込み権限が拒否される | ストレージオブジェクト作成権限が不足 | バケットへの書き込みアクセスを付与 |
| bq outputが100行で切断 | デフォルトの–max_rows | –max_rowsを設定するか、EXPORT DATAを使用 |
| ネストされたフィールドが不自然に見える | 繰り返しおよびネストされた列はその構造を保持 | 予想通り;それはまだ有効なJSONです |
FAQ
これはCloud Loggingからのエクスポートと同じですか?
いいえ。Cloud Loggingには独自のエクスポートがあります。このガイドは、すでにBigQueryテーブルに存在するログのためのものです。
クエリなしでテーブル全体をエクスポートできますか
はい:bq extract –destination_format NEWLINE_DELIMITED_JSONを使用して、テーブルまたはパーティションをCloud Storageにコピーします。調査のためには、フィルタリングされたクエリが通常は良いです。