보안 로그가 BigQuery에 있을 때(Cloud Logging 싱크, Google Workspace 내보내기 또는 자체 파이프라인에서), EXPORT DATA로 내보냅니다. 이는 Cloud Storage 버킷에 줄바꿈된 JSON을 작성하고, 이를 다운로드합니다. 작은 결과의 경우, bq query –format=json은 행을 직접 출력합니다. 어느 쪽이든, BigQuery는 스캔하는 데이터에 따라 요금을 청구하므로, 먼저 테이블의 시간 또는 파티션 열에서 필터링하십시오.
BigQuery는 많은 Google Cloud 팀이 Cloud Logging의 기본 보존 기간이 지나고 난 후 로그 기록을 보관하는 장소입니다. Prime Core는 676개의 MITRE ATT&CK 기술에 매핑된 24,000개 이상의 고유 탐지 규칙을 가지고 있습니다. 아래는 로그를 분리하고, 이를 청소하고, LogTotal에서 무료로 조사하는 방법입니다.
시작하기 전에
권한. 작업을 실행하려면(BigQuery Job User), 데이터 세트를 읽으려면(BigQuery Data Viewer), 내보내기 버킷에 쓰려면 권한이 필요합니다.
테이블을 알아두세요. BigQuery로의 Cloud Logging 싱크는 로그 이름을 따서 명명된 테이블을 생성합니다. 예를 들어 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');
BigQuery는 여러 파일을 작성할 수 있어 URI에 와일드카드(*)가 필요합니다. 파일을 다운로드하고 결합하세요:
gcloud storage cp 'gs://my-bq-exports/audit-20261019/*' ./audit-20261019/
cat ./audit-20261019/*.json > bq_audit_20261019.jsonl
옵션 2: 작은 결과를 위한 bq 쿼리
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)로 필터링 |
| URI에서 EXPORT DATA 실패 | URI에 와일드카드가 없음 | …/*.json 사용 |
| 버킷에 쓰기 권한 거부됨 | Storage 객체 생성 권한 누락 | 버킷에 쓰기 권한 부여 |
| bq 출력이 100 행에서 잘림 | 기본 –max_rows | –max_rows 설정, 또는 EXPORT DATA 사용 |
| 중첩된 필드가 이상해 보임 | 반복되고 중첩된 열은 구조를 유지함 | 예상한 것; 여전히 유효한 JSON |
FAQ
이것이 Cloud Logging에서 내보내는 것과 같습니까?
아니요. Cloud Logging에는 자체 내보내기가 있습니다. 이 가이드는 BigQuery 테이블에 이미 있는 로그에 대한 것입니다.
쿼리 없이 전체 테이블을 내보낼 수 있습니까?
예: bq extract –destination_format NEWLINE_DELIMITED_JSON은 테이블이나 파티션을 Cloud Storage로 복사합니다. 조사 목적으로는 필터링된 쿼리가 일반적으로 더 좋습니다.