BigQueryログのエクスポート方法

BigQueryログのエクスポート方法

SOC Prime Team
SOC Prime Team linkedin icon フォローする

セキュリティログが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でアップロード、消毒、およびレビュー

  1. アップロード。 開く logtotal.com そして、.jsonlファイルをドロップします。
  2. 消毒。 
  3. レビュー。 

問題が発生した場合

症状考えられる原因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にコピーします。調査のためには、フィルタリングされたクエリが通常は良いです。

SOC PrimeのDetection as Codeプラットフォームに参加し ビジネスに最も関連性のある脅威に対する可視性を向上させましょう。開始して即座に価値をもたらすためには、今すぐSOC Primeの専門家とのミーティングを予約してください。