원시 로그를 자체 관리 Google Cloud 스토리지 버킷으로 내보내기
Data Export API를 사용하면 Google Security Operations에서 관리하는 Google Cloud Storage 버킷으로 보안 데이터를 일괄 내보낼 수 있습니다. 이 기능을 사용하면 중요한 장기 데이터 보존이 가능하며, 이전 포렌식 분석과 엄격한 규정 준수 요구사항 (예: SOX, HIPAA, GDPR)을 지원합니다.
중요: 새로운 향상된 API를 사용 설정한 후에는 API를 사용하여 기존 작업을 액세스할 수 없습니다.
Data Export API에 관한 자세한 내용은 Data Export API (향상됨)를 참고하세요.
데이터 내보내기 API는 특정 시점의 데이터 내보내기를 위한 확장 가능하고 안정적인 솔루션을 제공하며 최대 100TB의 요청을 처리합니다.
관리형 파이프라인으로서 다음과 같은 필수 엔터프라이즈급 기능을 제공합니다.
- 일시적인 오류에 대한 자동 재시도
- 종합적인 작업 상태 모니터링
- 각 내보내기 작업의 전체 감사 추적
API는 Google Cloud Storage 버킷 내에서 내보낸 데이터를 날짜와 시간별로 논리적으로 파티셔닝합니다.
이 기능을 사용하면 대규모 데이터 오프로딩 워크플로를 빌드할 수 있습니다. Google SecOps는 안정성과 성능을 제공하기 위해 내보내기 프로세스의 복잡성을 관리합니다.
주요 이점
데이터 내보내기 API는 보안 데이터의 수명 주기를 관리하기 위한 복원력 있고 감사 가능한 솔루션을 제공합니다.
- 안정성: 서비스에서 대규모 데이터 전송을 처리합니다. 시스템은 지수 백오프 전략을 사용하여 일시적인 문제 (예: 일시적인 네트워크 문제)가 발생하는 내보내기 작업을 자동으로 재시도하여 복원력을 높입니다. 일시적인 오류로 인해 내보내기 작업이 실패하면 자동으로 여러 번 다시 시도합니다. 모든 재시도 후 작업이 영구적으로 실패하면 시스템에서 상태를
FINISHED_FAILURE로 업데이트하고 해당 작업의 API 응답에는 원인을 설명하는 자세한 오류 메시지가 포함됩니다. 포괄적인 감사 가능성: 엄격한 규정 준수 및 보안 표준을 충족하기 위해 시스템은 내보내기 작업과 관련된 모든 작업을 변경 불가능한 감사 추적에 캡처합니다. 이 트레일에는 모든 작업의 생성, 시작, 성공 또는 실패와 함께 작업을 시작한 사용자, 타임스탬프, 작업 매개변수가 포함됩니다.
성능 및 확장성에 최적화: API는 강력한 작업 관리 시스템을 사용합니다. 이 시스템에는 플랫폼 안정성을 제공하고 단일 테넌트가 리소스를 독점하는 것을 방지하기 위한 대기열 및 우선순위 지정이 포함되어 있습니다.
데이터 무결성 및 접근성 향상: 시스템에서 Google Cloud Storage 버킷 내에 데이터를 논리적 디렉터리 구조로 자동 정리하므로 과거 분석을 위해 특정 기간을 찾고 쿼리하는 데 도움이 됩니다.
주요 용어 및 개념
- 내보내기 작업: 특정 시간 범위의 로그 데이터를 Google Cloud Storage 버킷으로 내보내는 단일 비동기 작업입니다. 시스템은 고유한
dataExportId로 각 작업을 추적합니다. - 작업 상태: 수명 주기에서 내보내기 작업의 현재 상태입니다 (예:
IN_QUEUE,PROCESSING,FINISHED_SUCCESS). - Google Cloud Storage 버킷: 내보낸 데이터의 대상 역할을 하는 사용자 소유의 Google Cloud Storage 버킷입니다.
- 로그 유형: 내보낼 수 있는 특정 로그 카테고리입니다 (예:
NIX_SYSTEM,WINDOWS_DNS,CB_EDR). 자세한 내용은 지원되는 모든 로그 유형 목록을 참고하세요.
내보낸 데이터 구조 이해하기
작업이 성공적으로 완료되면 시스템에서 Google Cloud Storage 버킷에 데이터를 씁니다. 데이터 액세스 및 쿼리를 간소화하기 위해 파티셔닝된 특정 디렉터리 구조를 사용합니다.
디렉터리 경로 구조: gs://<gcs-bucket-name>/<export-job-name>/<logtype>/<event-time-bucket>/<epoch_execution_time>/<file-shard-name>.csv
- gcs-bucket-name: Google Cloud Storage 버킷의 이름입니다.
- export-job-name: 내보내기 작업의 고유한 이름입니다.
- logtype: 내보낸 데이터의 로그 유형 이름입니다.
event-time-bucket: 내보낸 로그의 이벤트 타임스탬프 시간 범위입니다.
형식은 UTC 타임스탬프입니다 (
year/month/day/UTC-timestamp, 여기서UTC-timestamp은hour/minute/second임).
예를 들어2025/08/25/01/00/00은UTC 01:00:00 AM, August 25, 2025을 나타냅니다.epoch-execution-time: 내보내기 작업이 시작된 시간을 나타내는 Unix 시간 값입니다.
file-shard-name: 원시 로그가 포함된 샤드 파일의 이름입니다. 각 파일 샤드의 최대 파일 크기는 100MB입니다.
성능 및 제한사항
이 서비스에는 플랫폼 안정성과 공정한 리소스 할당을 보장하기 위한 특정 한도가 있습니다.
- 작업당 최대 데이터 볼륨: 각 개별 내보내기 작업은 최대 100TB의 데이터를 요청할 수 있습니다. 데이터 세트가 큰 경우 내보내기를 시간 범위가 더 작은 여러 작업으로 나누는 것이 좋습니다.
- 동시 작업: 각 고객 테넌트에서 최대 3개의 내보내기 작업을 동시에 실행하거나 대기열에 추가할 수 있습니다. 이 한도를 초과하는 새 작업 생성 요청은 거부됩니다.
- 작업 완료 시간: 내보낸 데이터의 양에 따라 작업 완료 시간이 결정됩니다. 단일 작업은 최대 18시간이 걸릴 수 있습니다.
- 내보내기 형식 및 데이터 범위: 이 API는 다음 제한사항과 기능을 사용하여 일괄 시점 내보내기를 지원합니다.
- 원시 로그만: 원시 로그만 내보낼 수 있습니다(UDM 로그, UDM 이벤트 또는 감지는 내보낼 수 없음). UDM 데이터를 내보내려면 자체 관리형 Google Cloud프로젝트에서 BigQuery로 데이터 내보내기 구성을 참고하세요.
- 데이터 압축: API는 데이터를 압축되지 않은 텍스트로 내보냅니다.
기본 요건 및 아키텍처
이 섹션에서는 데이터 내보내기 API 사용에 필요한 시스템 아키텍처와 요구사항을 간략하게 설명하고 시스템 아키텍처를 자세히 설명합니다. 이 정보를 사용하여 환경이 올바르게 구성되었는지 확인합니다.
시작하기 전에
데이터 내보내기 API를 사용하기 전에 다음 필수 단계를 완료하여 Google Cloud Storage 대상을 설정하고 필요한 권한을 부여하세요.
API 사용자에게 권한 부여: 데이터 내보내기 API를 사용하려면 다음 IAM 역할이 필요합니다.
Chronicle administrator (creating/managing jobs): API를 사용하여 내보내기 작업을 생성, 업데이트, 취소, 조회할 수 있는 모든 권한을 부여합니다.Chronicle Viewer: API를 사용하여 작업 구성 및 기록을 볼 수 있는 읽기 전용 액세스 권한을 부여합니다.
Google Cloud Storage 버킷 만들기: Google Cloud프로젝트에서 Google SecOps 테넌트와 동일한 리전에 내보낸 데이터의 대상인 새 Google Cloud Storage 버킷을 만듭니다. 무단 액세스를 방지하려면 비공개로 설정하세요. 자세한 내용은 버킷 만들기를 참고하세요.
서비스 계정에 권한 부여: Google SecOps 테넌트에 연결된 Google SecOps 서비스 계정에 버킷에 데이터를 쓸 수 있는 필수 IAM 역할을 부여합니다.
FetchServiceAccountForDataExportAPI 엔드포인트를 호출하여 Google SecOps 인스턴스의 고유 서비스 계정을 식별합니다. API는 서비스 계정 이메일을 반환합니다.요청 예시:
{ "parent": "projects/myproject/locations/us/instances/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" }응답 예시:
{ "service_account_email": "service-1234@gcp-sa-chronicle.iam.gserviceaccount.com" }대상 Google Cloud Storage 버킷에 Google SecOps 서비스 계정 주 구성원에게 다음 IAM 역할을 부여합니다. 이 역할을 통해 Google SecOps 서비스가 내보낸 데이터 파일을 Google Cloud Storage 버킷에 쓸 수 있습니다.
Storage object administrator (roles/storage.objectAdmin)Legacy bucket reader (roles/storage.legacyBucketReader)
자세한 내용은 Google SecOps 서비스 계정에 대한 액세스 권한 부여를 참고하세요.
인증 완료: Data Export API가 호출을 인증합니다. 이 인증을 설정하려면 다음 섹션의 안내를 따르세요.
주요 사용 사례
데이터 내보내기 API는 데이터 내보내기 작업을 만들고 대량 데이터 내보내기의 전체 수명 주기를 관리하는 엔드포인트 모음을 제공합니다. API 호출을 사용하여 모든 상호작용을 실행합니다.
다음 사용 사례에서는 데이터 내보내기 작업을 만들고 모니터링하고 관리하는 방법을 설명합니다.
핵심 워크플로
이 섹션에서는 내보내기 작업의 수명 주기를 관리하는 방법을 설명합니다.
새 데이터 내보내기 작업 만들기
시스템은 상위 리소스 Google SecOps 인스턴스에 데이터 내보내기 작업 사양을 저장합니다. 이 인스턴스는 내보내기 작업의 로그 데이터 소스입니다.
Google SecOps 인스턴스의 고유 서비스 계정을 확인합니다. 자세한 내용은 FetchServiceAccountForDataExports를 참고하세요.
새 내보내기를 시작하려면
POST요청을dataExports.create엔드포인트에 보냅니다.
자세한 내용은CreateDataExport엔드포인트를 참고하세요.
데이터 내보내기 작업 상태 모니터링
특정 내보내기 작업의 데이터 내보내기 작업 세부정보 및 상태를 보거나 필터를 설정하여 특정 유형의 작업을 볼 수 있습니다.
특정 내보내기 작업을 보려면 GetDataExport를 참고하세요.
필터를 사용하여 특정 유형의 데이터 내보내기 작업을 나열하려면 ListDataExport를 참고하세요.
큐에 추가된 작업 관리
작업이 IN_QUEUE 상태인 경우 작업을 수정하거나 취소할 수 있습니다.
파라미터 (예: 기간, 로그 유형 목록, 대상 버킷)를 변경하려면 UpdateDataExport를 참고하세요.
대기열에 추가된 작업을 취소하려면 CancelDataExport를 참고하세요.
일반적인 문제 해결
API는 문제를 진단하는 데 도움이 되는 자세한 오류 메시지를 제공합니다.
| 표준 코드 | 오류 메시지 |
|---|---|
| INVALID_ARGUMENT | INVALID_REQUEST: 잘못된 요청 매개변수 <Parameter1, Parameter2,..>. 요청 매개변수를 수정하고 다시 시도하세요. |
| NOT_FOUND | BUCKET_NOT_FOUND: 대상 Google Cloud Storage 버킷 <bucketName>이(가) 없습니다. 대상 Google Cloud Storage 버킷을 만든 후 다시 시도해 주세요. |
| NOT_FOUND | REQUEST_NOT_FOUND: dataExportId:<dataExportId>가 존재하지 않습니다. 유효한 dataExportId를 추가하고 다시 시도하세요. |
| FAILED_PRECONDITION | BUCKET_INVALID_REGION: Google Cloud Storage 버킷 <bucketId>의 리전 <region1>이 SecOps 테넌트 리전 <region2>과 동일하지 않습니다. SecOps 테넌트와 동일한 리전에 Google Cloud Storage 버킷을 만들고 다시 시도하세요. |
| FAILED_PRECONDITION | INSUFFICIENT_PERMISSIONS: 서비스 계정 <P4SA>에 대상 Google Cloud Storage 버킷 <bucketName>에 대한 storage.objects.create, storage.objects.get, storage.buckets.get 권한이 없습니다. 서비스 계정에 필요한 액세스 권한을 제공하고 다시 시도하세요. |
| FAILED_PRECONDITION | INVALID_UPDATE: 요청 상태가 <status> 단계에 있어 업데이트할 수 없습니다. 상태가 IN_QUEUE 단계인 경우에만 요청을 업데이트할 수 있습니다. |
| FAILED_PRECONDITION | INVALID_CANCELLATION: 요청 상태가 <status> 단계에 있으며 취소할 수 없습니다. 상태가 IN_QUEUE 단계인 경우에만 요청을 취소할 수 있습니다. |
| RESOURCE_EXHAUSTED | CONCURRENT_REQUEST_LIMIT_EXCEEDED: 요청 크기 <sizelimit>에 대해 최대 동시 요청 한도 <limit>에 도달했습니다. 기존 요청이 완료될 때까지 기다린 후 다시 시도하세요. |
| RESOURCE_EXHAUSTED | REQUEST_SIZE_LIMIT_EXCEEDED: 요청의 예상 내보내기 볼륨(<estimatedVolume>)이 요청당 허용되는 최대 내보내기 볼륨(<allowedVolume>)보다 큽니다. 허용된 내보내기 볼륨 한도 내에서 요청하여 다시 시도하세요. |
| 내부 | INTERNAL_ERROR: 내부 오류가 발생했습니다. 다시 시도해 주세요. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.