이 문서에서는 Security Command Center 발견 항목을 BigQuery로 주문형 일괄 내보내기를 시작하는 방법을 설명합니다.
BigQuery는 Google Cloud의 페타바이트급 규모의 경제적인 완전 관리형 분석 데이터 웨어하우스로, 거의 실시간으로 방대한 양의 데이터를 분석할 수 있습니다. BigQuery에 대해 자세히 알아보려면 BigQuery 문서를 참고하세요.
개요
이 기능은 특정 시점까지의 발견 항목 스냅샷을 제공합니다. 이 기능은 연속 BigQuery 내보내기를 보완하여 포괄적인 분석 및 보고를 제공합니다.
일괄 내보내기를 사용하면 다음 작업을 할 수 있습니다.
데이터 세트 구조
결과는 findings
테이블의 행으로 BigQuery에 내보내지며, source_id
, finding_id
, event_time
로 클러스터링됩니다.
각 데이터 세트에는 다음 필드가 있는 findings
테이블이 있습니다.
필드 | 설명 |
---|---|
source_id |
Security Command Center가 발견 항목의 소스에 할당하는 고유 식별자입니다.
예를 들어 Cloud Anomaly Detection 소스의 모든 발견 항목은 동일한 예: |
finding_id |
발견 항목을 나타내는 고유 식별자입니다. 조직의 소스 내에서 고유합니다. 영숫자이며 32자(영문 기준) 이하여야 합니다. |
event_time |
이벤트가 발생한 시간 또는 발견 항목에 대한 업데이트가 발생한 시간입니다. 예를 들어 열린 방화벽을 나타내는 발견 항목의 경우 예: |
bulk_export_id |
일괄 내보내기 (미리보기)의 경우 UUID입니다. 지속적 내보내기의 경우 이 필드는 비어 있습니다. |
finding |
프레젠테이션, 알림, 분석, 정책 테스트, 시행을 위해 Security Command Center에 수집되는 평가 데이터 레코드(예: 보안, 위험, 상태, 개인 정보 보호)입니다. 예를 들어 App Engine 애플리케이션의 교차 사이트 스크립팅(XSS) 취약점이 발견 항목입니다. 중첩 필드에 대한 자세한 내용은 |
resource |
이 발견 항목과 연결된 Google Cloud 리소스와 관련된 정보입니다. 중첩 필드에 대한 자세한 내용은 |
비용
BigQuery에 데이터를 저장하는 경우 이 기능과 관련하여 BigQuery 요금이 발생합니다. 자세한 내용은 BigQuery 스토리지 가격 책정을 참고하세요.
시작하기 전에
이 특성을 사용 설정하려면 먼저 다음 단계를 완료해야 합니다.
권한 설정
이 가이드를 완료하려면 다음 Identity and Access Management(IAM) 역할이 있어야 합니다.
발견 항목을 내보낼 조직에 다음 역할 중 하나가 있는지 확인하세요.
- 보안 센터 BigQuery Export 편집자(
roles/securitycenter.bigQueryExportsEditor
) - 보안 센터 관리자(
roles/securitycenter.admin
)
Security Command Center 역할에 대해 자세히 알아보려면 액세스 제어를 참조하세요.
- 보안 센터 BigQuery Export 편집자(
BigQuery 데이터 세트에서 BigQuery 데이터 소유자(
roles/bigquery.dataOwner
)BigQuery 역할에 대한 자세한 내용은 BigQuery IAM 역할 및 권한을 참고하세요.
대상 BigQuery 데이터 세트가 속한 프로젝트에서 ProjectIAMAdmin (
roles/resourcemanager.projectIamAdmin
)
BigQuery 데이터 세트 만들기
데이터 세트 만들기의 단계를 사용하여 BigQuery 데이터 세트를 만듭니다.
Security Command Center API 사용 설정
발견 항목을 내보내려면 다음 단계에 따라 Security Command Center API를 사용 설정해야 합니다.
Google Cloud Console의 API 라이브러리 페이지로 이동합니다.
Security Command Center API를 사용 설정할 프로젝트를 선택합니다.
검색 필드에
Security Command Center
를 입력한 다음 검색 결과에서 Security Command Center를 클릭합니다.표시되는 API 페이지에서 사용 설정을 클릭합니다.
프로젝트에 Security Command Center API가 사용 설정됩니다.
VPC 서비스 제어에서 경계 액세스 권한 부여
VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어에서 경계 액세스 권한 부여를 검토하고 필요한 경우 해당 단계를 따르세요.
이 단계는 특정 서비스 경계에 대해 일괄 내보내기를 만드는 각 사용자에 대해 반복해야 합니다.
새 BigQuery 대량 내보내기를 위한 인그레스 규칙 만들기
VPC 서비스 제어를 사용하는 경우 새로운 BigQuery로 내보내기에 대한 인그레스 규칙 만들기를 검토하고 필요한 경우 해당 단계를 따르세요.
BigQuery 일괄 내보내기 제한사항
BigQuery 일괄 내보내기를 만들 때는 다음 제약 조건을 고려하세요.
- 단일 조직의 경우 언제든지 동시 대량 내보내기 3개만 허용됩니다.
- 동시에 실행되지 않는 대량 내보내기를 동일한 BigQuery 데이터 세트에 여러 번 요청하면 내보내기 내의 최신 발견 항목이 BigQuery
findings
테이블에 추가됩니다. 발견 사항이 덮어쓰여지지 않습니다.
BigQuery 일괄 내보내기 만들기
조직 수준에서만 발견 사항을 일괄 내보낼 수 있습니다.
발견 항목을 BigQuery 인스턴스로 일괄 내보내려면 gcloud CLI를 사용하고 다음 단계를 따르세요.
Google Cloud 콘솔로 이동합니다.
Security Command Center API를 사용 설정한 프로젝트를 선택합니다.
Cloud Shell 활성화를 클릭합니다.
새 내보내기 구성을 만들려면 다음 명령어를 실행하세요.
gcloud scc findings export-to-bigquery PARENT \ --dataset=DATASET_NAME \ [--location=LOCATION; default="global"] \
다음을 바꿉니다.
PARENT
: 내보내기 범위의 상대 이름입니다. 예시 형식:organizations/ORGANIZATION_ID
DATASET_NAME
: BigQuery 데이터 세트의 이름입니다. 예시 형식:projects/PROJECT_ID/datasets/DATASET_ID
LOCATION
: 내보내기 구성을 만들려는 Security Command Center 위치입니다. 데이터 상주가 사용 설정된 경우eu
,sa
,us
를 사용하고, 그렇지 않으면global
값을 사용합니다. 이 변수는 선택사항입니다.예를 들어 모든 결과를 일괄 내보내려면 다음 명령어를 실행합니다.
gcloud scc findings export-to-bigquery organizations/123 --dataset=projects/123/datasets/DATASET
데이터 상주 위치 측면에서 앞의 예시에서는 전역 엔드포인트를 호출합니다.
eu
엔드포인트에 동일한 일괄 내보내기를 만들려면 다음 명령어를 실행합니다.gcloud scc findings export-to-bigquery organizations/123 --dataset=projects/123/datasets/DATASET --location=locations/eu
이 명령어는 내보내기 상태를 추적할 때 필요한 name
문자열이 포함된 장기 실행 작업 객체를 반환합니다. 이 BigQuery 일괄 내보내기의 상태를 추적하려면 일괄 내보내기 상태 보기를 참고하세요.
발견 항목을 검토하려면 발견 항목 검토를 참조하세요.
쿼리
감지 결과 데이터를 분석하는 데 사용할 수 있는 다양한 쿼리는 유용한 쿼리를 참고하세요.
일괄 내보내기 상태 보기
일괄 내보내기 상태를 확인하려면 일괄 내보내기를 생성할 때 반환된 long running operation name
문자열이 필요합니다.
Google Cloud 콘솔로 이동합니다.
Security Command Center API를 사용 설정한 프로젝트를 선택합니다.
Cloud Shell 활성화를 클릭합니다.
일괄 내보내기 구성의 세부정보를 확인하려면 다음 명령어를 실행합니다.
gcloud scc operations describe LONG_RUNNING_OPERATION_NAME \ --organization=ORGANIZATION_ID
다음을 바꿉니다.
LONG_RUNNING_OPERATION_NAME
: 일괄 내보내기를 만들 때 반환된name
문자열입니다.ORGANIZATION_ID
예를 들어 조직 ID가
123
으로 설정된 조직에서 반환된name: "long-running-operation-name"
의 일괄 내보내기 요청 상태를 확인하려면 다음 명령어를 실행합니다.gcloud scc operations describe long-running-operation-name \ --organization=123
- 내보내기가 성공하면 응답에
done: true
가 포함됩니다. - 내보내기가 실패한 경우 응답에 오류 코드가 포함됩니다.
- 내보내기가 아직 진행 중이면 응답에
done: true
도 오류 코드도 포함되지 않습니다.
BigQuery 일괄 내보내기 및 연속 내보내기
동일한 BigQuery 데이터 세트에서 일괄 및 연속 BigQuery 내보내기를 함께 사용하려면 다음 두 가지 방법을 사용할 수 있습니다.
먼저 지속적 내보내기를 만든 다음 일괄 내보내기로 채우세요.
BigQuery 데이터 세트로의 연속 내보내기를 설정합니다. 내보내기가 성공적으로 생성되면 Security Command Center 발견 항목을 실시간으로 수신하기 시작합니다.
동일한 대상 BigQuery 데이터 세트를 사용하여 일괄 내보내기를 만듭니다. 내보내기 시점의 모든 Security Command Center 발견 항목의 스냅샷이 선택한 데이터 세트로 내보내집니다.
일괄 내보내기를 실행하는 데 시간이 걸립니다. 따라서 지속적 내보내기가 T1에 생성되고, 대량 내보내기가 T2에 트리거되고, 대량 내보내기의 발견 항목 스냅샷이 T3에 완료되면 T1과 T3 사이에 중복 레코드가 표시될 수 있습니다. 하지만 발견 항목 간의 격차는 없습니다.
먼저 일괄 내보내기를 만든 다음 지속적 내보내기를 만드세요.
일괄 내보내기를 만듭니다. 내보내기가 실행되는 시점의 모든 Security Command Center 발견 항목의 스냅샷이 선택한 BigQuery 데이터 세트로 내보내집니다.
동일한 대상 BigQuery 데이터 세트로의 연속 내보내기를 설정합니다. 내보내기가 성공적으로 생성되면 Security Command Center 발견 항목을 실시간으로 수신하기 시작합니다.
T1에서 일괄 내보내기가 생성되고, T2에서 일괄 내보내기를 위한 발견 항목 스냅샷이 완료되고, T3에서 지속적 내보내기가 트리거되면 T2와 T3 사이의 발견 항목이 BigQuery 데이터 세트에서 누락될 수 있습니다.
다음 단계
- Security Command Center에서 일회성 내보내기를 실행하는 방법 알아보기
- 분석을 위해 BigQuery로 발견 항목을 지속적으로 스트리밍하는 방법을 알아보세요.