BigQuery를 Google SecOps와 통합
이 문서에서는 BigQuery를 Google Security Operations (Google SecOps)와 통합하는 방법을 설명합니다.
통합 버전: 15.0
이 통합은 오픈소스 구성요소를 하나 이상 사용합니다. Cloud Storage 버킷에서 이 통합의 소스 코드 압축 파일을 다운로드할 수 있습니다.
사용 사례
Google SecOps 플랫폼에서 BigQuery 통합은 다음 사용 사례를 해결하는 데 도움이 됩니다.
위협 인텔리전스 보강: BigQuery에 저장된 위협 인텔리전스 데이터로 보안 알림을 자동으로 보강하여 잠재적 위협의 심각도와 신뢰성을 평가합니다.
예를 들어 의심스러운 IP 주소로 인해 알림이 트리거될 때마다 알려진 악성 IP 주소가 포함된 BigQuery 테이블을 쿼리하도록 Google SecOps를 구성할 수 있습니다. Google SecOps는 BigQuery 테이블에서 일치하는 항목을 확인하고 연결된 멀웨어 패밀리와 같은 추가 컨텍스트를 가져옵니다.
사용자 행동 분석: BigQuery에 저장된 이전 사용자 활동 로그를 분석하여 비정상적인 사용자 활동을 식별하여 내부자 위협과 도용된 계정을 감지합니다.
예를 들어 사용자의 일반적인 지리적 위치 외부에서 로그인 시도를 BigQuery에 쿼리하고 감지된 의심스러운 활동에 대해 자동화된 인시던트 대응을 트리거하도록 Google SecOps를 구성할 수 있습니다.
보안 데이터 레이크 분석: BigQuery 쿼리 기능을 사용하여 데이터 레이크에 집계된 다양한 소스의 대량 보안 데이터를 분석하여 위협 헌팅 및 인시던트 조사를 개선합니다.
예를 들어 데이터 레이크에 저장된 여러 보안 도구 로그에서 특정 파일 해시와 관련된 모든 이벤트를 BigQuery에 쿼리하도록 Google SecOps를 구성할 수 있습니다.
장기 보안 데이터 보관: BigQuery 스토리지를 사용하여 보안 로그를 장기간 대량으로 보관하여 기록 분석, 규정 준수 보고, 포렌식 조사를 지원합니다.
예를 들어 해결된 인시던트 데이터를 장기 저장용으로 BigQuery에 자동으로 보관하도록 Google SecOps를 구성하여 향후 감사 또는 조사를 위한 데이터 가용성을 보장할 수 있습니다.
시작하기 전에
통합을 사용하려면 Google Cloud 서비스 계정이 필요합니다.
서비스 계정 만들기 및 구성
BigQuery를 Google SecOps와 통합하려면 기존 서비스 계정을 사용하거나 새 서비스 계정을 만들면 됩니다. 서비스 계정을 만드는 방법에 대한 안내는 서비스 계정 만들기를 참고하세요.
워크로드 아이덴티티 이메일을 사용하여 통합을 구성하지 않는 경우 서비스 계정을 만든 후 JSON으로 서비스 계정 키를 만드세요. 통합 매개변수를 구성할 때 다운로드한 JSON 키 파일의 전체 콘텐츠를 제공해야 합니다.
보안상의 이유로 서비스 계정 JSON 키 대신 워크로드 아이덴티티 이메일 주소를 사용하는 것이 좋습니다. 워크로드 아이덴티티에 대한 자세한 내용은 워크로드의 아이덴티티를 참고하세요.
통합 매개변수
BigQuery 통합에는 다음 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
Account Type |
(선택사항) BigQuery 계정의 유형입니다. 서비스 계정 키 JSON 파일의 기본값은 |
Project ID |
(선택사항) BigQuery 계정의 프로젝트 ID입니다. 인증 JSON 파일의 |
Private Key ID |
(선택사항) BigQuery 계정의 비공개 키 ID입니다. 인증 JSON 파일의 |
Private Key |
(선택사항) BigQuery 계정의 비공개 키입니다. 인증 JSON 파일의 |
Client Email |
(선택사항) BigQuery 계정의 클라이언트 이메일 주소입니다. 인증 JSON 파일의 |
Client ID |
(선택사항) BigQuery 계정의 클라이언트 ID입니다. 인증 JSON 파일의 |
Auth URI |
(선택사항) BigQuery 계정의 인증 URI입니다. 인증 JSON 파일의 기본값은 |
Token URI |
(선택사항) BigQuery 계정의 토큰 URI입니다. 인증 JSON 파일의 기본값은 |
Auth Provider X509 URL |
(선택사항) BigQuery 계정의 인증 제공업체 X.509 URL입니다. 인증 JSON 파일의 기본값은 |
Client X509 URL |
(선택사항) BigQuery 계정의 클라이언트 X.509 URL입니다. 인증 JSON 파일의 기본값은 |
Service Account Json File Content |
(선택사항) 서비스 계정 키 JSON 파일의 콘텐츠입니다. 이 매개변수 또는 이 매개변수를 구성하려면 서비스 계정을 만들 때 다운로드한 서비스 계정 키 JSON 파일의 전체 콘텐츠를 제공하세요. 이 매개변수를 구성하면 통합에서 다른 연결 매개변수를 무시합니다. |
Workload Identity Email |
(선택사항) 서비스 계정의 클라이언트 이메일 주소입니다. 이 매개변수 또는 이 매개변수를 설정하는 경우 워크로드 아이덴티티 제휴를 사용하여 서비스 계정을 가장하려면 서비스 계정에 |
Quota Project ID |
(선택사항) Google Cloud API 및 결제에 사용하는 Google Cloud 프로젝트 ID입니다. 이 매개변수를 사용하려면 서비스 계정에 이 매개변수의 값을 설정하지 않으면 통합에서 Google Cloud 서비스 계정에서 프로젝트 ID를 가져옵니다. |
Verify SSL |
(선택사항) 선택하면 통합에서 Google Cloud에 연결할 때 SSL 인증서를 검증합니다. 기본적으로 선택되어 있습니다. |
Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.
필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.
작업
작업에 관한 자세한 내용은 Workdesk에서 대기 중인 작업에 응답 및 수동 작업 실행을 참고하세요.
핑
Ping 작업을 사용하여 BigQuery와의 연결을 테스트합니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
없음
작업 출력
Ping 작업은 다음 출력을 제공합니다.
작업 출력 유형 | 가용성 |
---|---|
케이스 월 연결 | 사용할 수 없음 |
케이스 월 링크 | 사용할 수 없음 |
케이스 월 테이블 | 사용할 수 없음 |
보강 테이블 | 사용할 수 없음 |
JSON 결과 | 사용할 수 없음 |
출력 메시지 | 사용 가능 |
스크립트 결과 | 사용 가능 |
출력 메시지
Ping 작업은 다음 출력 메시지를 반환할 수 있습니다.
출력 메시지 | 메시지 설명 |
---|---|
Successfully connected to the Google BigQuery server with
the provided connection parameters! |
작업이 완료되었습니다. |
Failed to connect to the Google BigQuery server! Error is
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에는 Ping 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
스크립트 결과 이름 | 값 |
---|---|
is_success |
True 또는 False |
맞춤 쿼리 실행
맞춤 쿼리 실행 작업을 사용하여 BigQuery에서 맞춤 쿼리를 실행합니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
맞춤 쿼리 실행 작업에는 다음 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
Query |
필수 항목입니다. 실행할 SQL 쿼리입니다. |
Max Results To Return |
(선택사항) 각 응답에 대해 반환할 결과 수입니다. 기본값은 |
작업 출력
맞춤 쿼리 실행 작업은 다음 출력을 제공합니다.
작업 출력 유형 | 가용성 |
---|---|
케이스 월 연결 | 사용할 수 없음 |
케이스 월 링크 | 사용할 수 없음 |
케이스 월 테이블 | 사용할 수 없음 |
보강 테이블 | 사용할 수 없음 |
JSON 결과 | 사용 가능 |
출력 메시지 | 사용 가능 |
스크립트 결과 | 사용 가능 |
JSON 결과
다음 예는 맞춤 쿼리 실행 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
{
"Airport_Code": "CODE",
"Airport_Name": "NAME",
"Time_Label": "2015/05",
"Time_Month": 5,
"Time_Month_Name": "May",
"Time_Year": 2015,
"Statistics___of_Delays_Carrier": 351,
"Statistics___of_Delays_Late_Aircraft": 546,
"Statistics___of_Delays_National_Aviation_System": 292,
"Statistics___of_Delays_Security": 2,
"Statistics___of_Delays_Weather": 100,
"Statistics_Carriers_Names": "Example Air Lines Inc., Example Airlines Co.",
"Statistics_Carriers_Total": 3,
"Statistics_Flights_Cancelled": 88,
"Statistics_Flights_Delayed": 1289,
"Statistics_Flights_Diverted": 32,
"Statistics_Flights_On_Time": 6182,
"Statistics_Flights_Total": 7591,
"Statistics_Minutes_Delayed_Carrier": 19332,
"Statistics_Minutes_Delayed_Late_Aircraft": 34376,
"Statistics_Minutes_Delayed_National_Aviation_System": 12346,
"Statistics_Minutes_Delayed_Security": 48,
"Statistics_Minutes_Delayed_Total": 76163,
"Statistics_Minutes_Delayed_Weather": 100061
}
출력 메시지
맞춤 쿼리 실행 작업은 다음 출력 메시지를 반환할 수 있습니다.
출력 메시지 | 메시지 설명 |
---|---|
Successfully executed query in Google BigQuery! |
작업이 완료되었습니다. |
Error executing action "Run Custom Query". Reason:
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에는 맞춤 쿼리 실행 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
스크립트 결과 이름 | 값 |
---|---|
is_success |
True 또는 False |
SQL 쿼리 실행
SQL 쿼리 실행 작업을 사용하여 BigQuery에서 쿼리를 실행합니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
SQL 쿼리 실행 작업에는 다음 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
Dataset Name |
필수 항목입니다. 쿼리를 실행할 때 사용할 데이터 세트의 이름입니다. |
Query |
필수 항목입니다. 실행할 SQL 쿼리입니다. |
Max Results To Return |
(선택사항) 각 응답에 대해 반환할 결과 수입니다. 기본값은 |
작업 출력
SQL 쿼리 실행 작업은 다음 출력을 제공합니다.
작업 출력 유형 | 가용성 |
---|---|
케이스 월 연결 | 사용할 수 없음 |
케이스 월 링크 | 사용할 수 없음 |
케이스 월 테이블 | 사용할 수 없음 |
보강 테이블 | 사용할 수 없음 |
JSON 결과 | 사용할 수 없음 |
출력 메시지 | 사용 가능 |
스크립트 결과 | 사용 가능 |
JSON 결과
다음 예에서는 SQL 쿼리 실행 작업을 사용할 때 수신되는 JSON 결과 출력을 설명합니다.
{
"Airport_Code": "CODE",
"Airport_Name": "NAME",
"Time_Label": "2015/05",
"Time_Month": 5,
"Time_Month_Name": "May",
"Time_Year": 2015,
"Statistics___of_Delays_Carrier": 351,
"Statistics___of_Delays_Late_Aircraft": 546,
"Statistics___of_Delays_National_Aviation_System": 292,
"Statistics___of_Delays_Security": 2,
"Statistics___of_Delays_Weather": 100,
"Statistics_Carriers_Names": "Example Airlines Inc.,Example Airlines Co.",
"Statistics_Carriers_Total": 3,
"Statistics_Flights_Cancelled": 88,
"Statistics_Flights_Delayed": 1289,
"Statistics_Flights_Diverted": 32,
"Statistics_Flights_On_Time": 6182,
"Statistics_Flights_Total": 7591,
"Statistics_Minutes_Delayed_Carrier": 19332,
"Statistics_Minutes_Delayed_Late_Aircraft": 34376,
"Statistics_Minutes_Delayed_National_Aviation_System": 12346,
"Statistics_Minutes_Delayed_Security": 48,
"Statistics_Minutes_Delayed_Total": 76163,
"Statistics_Minutes_Delayed_Weather": 100061
}
출력 메시지
SQL 쿼리 실행 작업은 다음 출력 메시지를 반환할 수 있습니다.
출력 메시지 | 메시지 설명 |
---|---|
Successfully executed query in the BigQuery dataset
DATASET_NAME. |
작업이 완료되었습니다. |
Error executing action "Run SQL Query". Reason:
ERROR_REASON |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에는 SQL 쿼리 실행 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
스크립트 결과 이름 | 값 |
---|---|
is_success |
True 또는 False |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.