Forwarder Management API
Google Security Operations 전달자 관리 API를 사용하여 프로그래매틱 방식으로 다음을 수행할 수 있습니다.
- 전달자를 만들고 관리합니다.
- 수집기를 만들고 관리합니다.
- Google Security Operations 전달자 구성(
.conf
) 및 인증(_auth.conf
) 파일의 파일 콘텐츠를 가져옵니다.
전달자는 하나 이상의 수집기로 구성됩니다. 각 수집기의 구성은 수집 메커니즘(예: 파일, Kafka, PCAP, Splunk 또는 Syslog)과 로그 유형을 지정합니다.
하드웨어 요구사항이 충족된다고 가정하면 동일한 전달자에 여러 수집기를 사용하여 다양한 메커니즘과 로그 유형의 데이터를 수집할 수 있습니다. 예를 들어 각각 PAN_FIREWALL 및 CISCO_ASA_FIREWALL 데이터를 리슨하는 두 개의 syslog 수집기로 전달자를 설치할 수 있습니다.
API를 사용하면 Google Security Operations 인스턴스에서 전달자와 수집기를 만들 수 있습니다. 전달자가 생성된 후 전달자 파일 생성 엔드포인트를 사용하여 전달자의 구성(.conf
) 및 인증(_auth.conf
) 파일에 대한 파일 콘텐츠(JSON 페이로드)를 가져올 수 있습니다. 그런 다음 이러한 콘텐츠를 해당 .conf
파일에 작성하여 Windows 또는 Linux 시스템에서 Google Security Operations 전달자 서비스로 배포할 수 있습니다.
전달자 관리 API를 사용하는 Python 샘플은 GitHub 저장소를 참조하세요.
전달자 및 수집기를 만들기
수집기를 만들려면 먼저 전달자를 만들어야 합니다.
전달자 및 수집기를 만들려면 다음 안내를 따르세요.
Google Security Operations API로 인증하는 방법
이 Google Security Operations API는 인증과 승인에 OAuth 2.0 프로토콜을 사용합니다. 애플리케이션은 다음 구현 중 하나를 사용하여 이러한 태스크를 완료할 수 있습니다.
컴퓨터 언어의 Google API 클라이언트 라이브러리 사용
HTTP를 사용하여 OAuth 2.0 시스템과 직접 상호 작용
Python의 Google 인증 라이브러리에 관한 참고 문서를 확인하세요.
Google 인증 라이브러리는 Google API 클라이언트 라이브러리의 하위 집합입니다. 다른 언어 구현을 참고하세요.
API 인증 사용자 인증 정보 가져오기
Google Security Operations 담당자는 API 클라이언트가 API와 통신할 수 있도록 Google Developer 서비스 계정 사용자 인증 정보를 제공합니다.
또한 API 클라이언트를 초기화할 때 인증 범위를 제공해야 합니다. OAuth 2.0은 범위를 사용하여 계정에 대한 애플리케이션 액세스를 제한합니다. 애플리케이션이 범위를 요청하면 애플리케이션에 발급된 액세스 토큰은 부여된 범위로 제한됩니다.
다음 범위를 사용하여 Google API 클라이언트를 초기화합니다.
https://www.googleapis.com/auth/chronicle-backstory
Python 예시
다음 Python 예는 google.oauth2
및 googleapiclient
를 사용하여 OAuth2 사용자 인증 정보와 HTTP 클라이언트를 사용하는 방법을 보여줍니다.
# Imports required for the sample - Google Auth and API Client Library Imports.
# Get these packages from https://pypi.org/project/google-api-python-client/ or run $ pip
# install google-api-python-client from your terminal
from google.auth.transport import requests
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/chronicle-backstory']
# The apikeys-demo.json file contains the customer's OAuth 2 credentials.
# SERVICE_ACCOUNT_FILE is the full path to the apikeys-demo.json file
# ToDo: Replace this with the full path to your OAuth2 credentials
SERVICE_ACCOUNT_FILE = '/customer-keys/apikeys-demo.json'
# Create a credential using Google Developer Service Account Credential and Google Security Operations API
# Scope.
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
# Build a requests Session Object to make authorized OAuth requests.
http_session = requests.AuthorizedSession(credentials)
# Your endpoint GET|POST|PATCH|etc. code will vary below
# Reference List example (for US region)
url = 'https://backstory.googleapis.com/v2/lists/COLDRIVER_SHA256'
# You might need another regional endpoint for your API call; see
# https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints
# requests GET example
response = http_session.request("GET", url)
# POST example uses json
body = {
"foo": "bar"
}
response = http_session.request("POST", url, json=body)
# PATCH example uses params and json
params = {
"foo": "bar"
}
response = http_session.request("PATCH", url, params=params, json=body)
# For more complete examples, see:
# https://github.com/chronicle/api-samples-python/
Chronicle API 쿼리 한도
Chronicle API는 한 고객이 Google Security Operations 플랫폼에서 수행할 수 있는 요청량을 제한합니다. 쿼리 한도에 도달하거나 초과하면 Chronicle API 서버가 호출자에게 HTTP 429(RESOURCE_EXHAUSTED)를 반환합니다. Chronicle API용 애플리케이션을 개발할 때는 리소스가 소진되지 않도록 시스템 내에 비율 제한을 적용하는 것이 좋습니다. 이러한 한도는 검색, 전달자 관리, 도구 API를 포함한 모든 Chronicle API에 적용됩니다.
Chronicle API 쿼리 한도의 자세한 목록을 확인하세요.
Chronicle Forwarder Management API에 대한 다음 한도가 적용되며 초당 쿼리 수(QPS)로 측정됩니다.
Chronicle API | API 엔드포인트 | 한도 |
전달자 관리 | 전달자 만들기 | 1 QPS |
전달자 가져오기 | 1 QPS | |
전달자 나열 | 1 QPS | |
전달자 업데이트 | 1 QPS | |
전달자 삭제 | 1 QPS | |
수집기 관리 | 수집기 만들기 | 1 QPS |
수집기 가져오기 | 1 QPS | |
List Collectors | 1 QPS | |
Update Collector | 1 QPS | |
수집기 삭제 | 1 QPS |
Forwarder API 참조
이 섹션에서는 전달자를 만들고 관리하기 위한 엔드포인트를 설명합니다. 수집기 만들기 및 관리를 위한 엔드포인트는 Collector API 참조를 참고하세요.
전달자 만들기
Google SecOps 인스턴스에 새 전달자를 만듭니다. 새 전달자에는 요청 본문에 제공된 모든 전달자 구성 값이 포함됩니다. 전달자 만들기를 사용한 후 수집기 만들기를 사용하여 수집기 구성 값을 지정해야 합니다.
특정 설정의 경우 요청 본문에서 누락되었거나 값이 0인 구성 값이 기본값으로 설정됩니다. 전달자 필드 및 값에 관한 자세한 내용은 전달자 구성 필드를 참고하세요.
요청
POST https://backstory.googleapis.com/v2/forwarders
요청 본문
{
"display_name": string,
"config": {
object (ForwarderConfig)
}
}
본문 파라미터
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
display_name | 문자열 | 필수 | 전달자 이름입니다. 이 이름은 Google SecOps 인터페이스에 표시됩니다. |
config | 객체 | 선택사항 | 이 전달자의 구성 설정입니다. 전달자 구성 필드를 참조하세요. |
요청 예시
이 예시는 전달자 만들기 요청에 필요한 키-값 쌍을 보여줍니다. 요청에 필드가 지정되지 않았고 기본값이 있는 경우 전달자 생성 중에 기본값이 적용됩니다. 기본값에 관한 자세한 내용은 전달자 구성 필드를 참고하세요.
POST https://backstory.googleapis.com/v2/forwarders
{
"display_name": "chronicle_forwarder"
}
응답
요청이 성공하면 응답은 HTTP 상태 코드 200(OK)을 반환합니다.
응답에는 전달자 생성 중에 적용된 구성 값이 표시됩니다. 해당 필드가 요청 본문에서 누락되거나 값이 0이면 리소스 생성 중에 특정 설정에 기본 구성 값이 적용됩니다. 자세한 내용은 전달자 구성 필드를 참고하세요.
응답 필드
요청에 지정된 필드와 기본값이 적용되는 필드 외에도 응답에는 다음과 같이 생성된 필드와 출력 전용 필드가 포함됩니다.
필드 | 유형 | 설명 |
---|---|---|
name | 문자열 | 전달자의 리소스 ID입니다. 형식은 'forwarders/forwarderID'입니다. 예를 들면 다음과 같습니다. forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56 |
주 | 열거형 | 전달자의 현재 상태를 지정합니다. 유효한 값은 다음과 같습니다.
기본값은 활성입니다. |
응답 예시
다음은 위의 요청 예에 대해 반환된 응답의 예입니다.
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
"drainTimeout": 10,
"httpSettings": {
"port": "8080",
"host": "0.0.0.0",
"readTimeout": "3",
"readHeaderTimeout": "3",
"writeTimeout": "3",
"idleTimeout": "3"
"routeSettings": {
"availableStatusCode": "204",
"readyStatusCode": "204",
"unreadyStatusCode": "503"
},
},
},
},
"state": "ACTIVE"
}
전달자 가져오기
전달자를 반환합니다.
요청
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}
요청 본문
요청 본문을 포함하지 마세요.
요청 예시
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
응답 예시
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
"drainTimeout": 10,
"httpSettings": {
"port": "8080",
"host": "0.0.0.0",
"readTimeout": "3",
"readHeaderTimeout": "3",
"writeTimeout": "3",
"idleTimeout": "3"
"routeSettings": {
"availableStatusCode": "204",
"readyStatusCode": "204",
"unreadyStatusCode": "503"
},
},
},
},
"state": "ACTIVE"
}
전달자 나열
Google SecOps 인스턴스의 모든 전달자를 나열합니다.
요청
GET https://backstory.googleapis.com/v2/forwarders
요청 예시
GET https://backstory.googleapis.com/v2/forwarders
응답
전달자 목록을 반환합니다.
응답 예시
{
"forwarders": [
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder_1",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
...
},
},
"state": "ACTIVE"
},
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde57",
"displayName": "chronicle_forwarder_2",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
...
},
},
"state": "ACTIVE"
}
]
}
전달자 업데이트
updateMask
URL 쿼리 파라미터를 사용하여 업데이트할 필드를 지정하여 전달자를 업데이트할 수 있습니다.
예를 들어 표시 이름을 업데이트하려면 패치 요청에서 다음과 같이 updateMask
쿼리 파라미터를 사용합니다.
?updateMask=displayName
요청 본문에는 업데이트할 필드(정확한 위치)만 포함되어야 합니다.
요청
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}?updateMask=<field_1,field_2>
요청 본문
{
"display_name": string,
"config": {
object (ForwarderConfig)
},
}
본문 파라미터
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
display_name | 문자열 | 필수 | 전달자 이름입니다. 이 이름은 Google SecOps 인터페이스에 표시됩니다. |
config | 객체 | 선택사항 | 이 전달자의 구성 설정입니다. 전달자 구성 필드를 참조하세요. |
요청 예시
이는 displayName
의 새 값을 지정하고 메타데이터 라벨을 추가하는 전달자 업데이트 요청의 예시입니다.
PATCH https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56?updateMask=displayName,config.metadata.labels
{
"display_name": "UpdatedForwarder",
"config": {
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate",
}
]
}
}
}
응답 예시
다음은 위의 요청 예에 대해 반환된 응답의 예입니다.
{
"name": "forwarders/{forwarderUUID}",
"displayName": "UpdatedForwarder",
"config": {
"uploadCompression": "false",
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate"
}
]
}
},
"state": "ACTIVE"
}
전달자 삭제
전달자를 삭제합니다.
요청
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}
요청 본문
요청 본문을 포함하지 마세요.
요청 예시
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
응답 예시
작업이 성공하면 전달자 삭제가 HTTP 상태 코드 200(OK)이 포함된 빈 응답을 반환합니다.
{}
전달자 파일 생성
전달자의 구성(.conf
) 및 인증(_auth.conf
) 파일의 콘텐츠를 생성하고 반환합니다.
요청
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}:generateForwarderFiles
요청 본문
요청 본문을 포함하지 마세요.
요청 예시
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56:generateForwarderFiles
응답 예시
작업이 성공하면 HTTP 상태 코드 200(OK)이 반환됩니다. 또한 전달자 수집기의 구성 데이터와 전달자에서 Google SecOps 인스턴스로 인증하는 데 사용하는 인증(_auth.conf
) 파일의 콘텐츠를 포함한 전달자 구성 파일 콘텐츠를 반환합니다.
전달자 구성 필드
다음 표에는 전달자 만들기 및 전달자 업데이트를 사용하여 지정할 수 있는 전달자 구성 설정이 나와 있습니다. 전달자 만들기를 사용할 때 설정 값을 지정하지 않으면 설정의 기본값(아래 참조)이 적용됩니다.
다음 필드는 요청 본문의 config
객체에서 제공할 수 있습니다.
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
upload_compression | 부울 | 선택사항 | true 이면 데이터 배치가 업로드 전에 압축됩니다.기본값은 false 입니다. |
metadata.asset_namespace | 문자열 | 선택사항 | 이 전달자에서 로그를 식별하기 위한 네임스페이스입니다. 참고: 수집기 수준에서 재정의되지 않는 한 전달자 및 전달자의 수집기에 적용되는 전역 설정입니다. 자세한 내용은 네임스페이스 구성을 참고하세요. |
metadata.labels | list | 선택사항 | 전달자 구성에서 지정할 수 있는 임의의 키-값 쌍 목록입니다. 참고: 수집기 수준에서 재정의되지 않는 한 전달자 및 전달자의 수집기에 적용되는 전역 설정입니다. |
metadata.labels.key | 문자열 | 선택사항 | 메타데이터 라벨 목록에 있는 필드의 키입니다. |
metadata.labels.value | 문자열 | 선택사항 | 메타데이터 라벨 목록에 있는 필드의 값입니다. |
regex_filters.description | 문자열 | 선택사항 | 필터링되는 항목과 이유를 설명합니다. |
regex_filters.regexp | 문자열 | 선택사항 | 각 수신 줄과 일치시키는 데 사용되는 정규 표현식입니다. |
regex_filters.behavior | 열거형 | 선택사항 | 서버 기능의 상태를 지정합니다. 유효한 값은 다음과 같습니다.
|
server_settings | 객체 | 선택사항 | Linux에서 syslog 수집용 부하 분산 및 고가용성 옵션을 구성하는 데 사용할 수 있는 전달자의 기본 제공 HTTP 서버를 구성하는 설정입니다. |
server_settings.state | 열거형 | 선택사항 | 서버 기능의 상태를 지정합니다. 유효한 값은 다음과 같습니다.
|
server_settings.graceful_timeout | 정수 | 선택사항 | 전달자가 잘못된 준비/상태 점검을 반환하고 새 연결을 계속 수락하는 시간(초)입니다. 또한 중지 신호를 수신하고 실제로 서버 자체의 종료를 시작하기까지 기다리는 시간입니다. 이렇게 하면 부하 분산기 시간이 풀에서 전달자를 삭제할 수 있습니다. 기본값은 15 입니다. |
server_settings.drain_timeout | 정수 | 선택사항 | 전달자가 활성 연결이 서버에 의해 닫히기 전에 스스로 종료되기를 기다리는 시간(초)입니다. 기본값은 10 입니다. |
server_settings.http_settings.port | 정수 | 선택사항 | HTTP 서버가 부하 분산기에서 상태 점검을 리슨하는 포트 번호입니다. 1,024에서 65,535 사이여야 합니다. 기본값은 8080 입니다. |
server_settings.http_settings.host | 문자열 | 선택사항 | 서버가 리슨할 IP 주소 또는 IP 주소로 변환할 수 있는 호스트 이름입니다. 기본값은 0.0.0.0 (로컬 시스템)입니다. |
server_settings.http_settings.read_timeout | 정수 | 선택사항 | 헤더와 본문을 포함한 전체 요청을 읽을 수 있는 최대 시간(초)입니다. 기본값은 3 입니다. |
server_settings.http_settings.read_header_timeout | 정수 | 선택사항 | 요청 헤더를 읽을 수 있는 최대 시간(초)입니다. 기본값은 3 입니다. |
server_settings.http_settings.write_timeout | 정수 | 선택사항 | 응답을 보낼 수 있는 최대 시간(초)입니다. 기본값은 3 입니다. |
server_settings.http_settings.idle_timeout | 정수 | 선택사항 | 유휴 연결이 사용 설정된 경우 다음 요청을 기다리는 최대 시간(초)입니다. 기본값은 3 입니다. |
server_settings.http_settings.route_settings.available_status_code | 정수 | 선택사항 | 활성 확인이 수신되고 전달자를 사용할 수 있는 경우에 반환되는 상태 코드입니다. 기본값은 204 입니다. |
server_settings.http_settings.route_settings.ready_status_code | 정수 | 선택사항 | 전달자가 트래픽을 수락할 준비가 된 경우 반환되는 상태 코드입니다. 기본값은 204 입니다. |
server_settings.http_settings.route_settings.unready_status_code | 정수 | 선택사항 | 전달자가 트래픽을 수락할 준비가 되지 않은 경우 반환되는 상태 코드입니다. 기본값은 503 입니다. |
Collector API 참조
이 섹션에서는 수집기와 함께 작동하는 엔드포인트를 설명합니다.
수집기를 만들고 업데이트할 때 각 수집기 구성은 다음 중 하나에 대해 수집 설정을 지정할 수 있지만 둘 이상은 지정할 수 없습니다.
- 로그 파일 데이터
- Kafka 주제
- 패킷 데이터(pcap)
- Splunk 데이터
- Syslog 데이터
포워더를 사용하는 엔드포인트는 Forwarder API 참조를 참고하세요.
수집기 만들기
Google SecOps 계정에 새 수집기를 만듭니다. 전달자 만들기를 사용한 후 수집기 만들기를 사용하여 수집기 구성 값을 지정해야 합니다.
특정 설정의 경우 요청 본문에서 누락되었거나 값이 0인 구성 값이 기본값으로 설정됩니다. 수집기 구성 필드 및 값에 관한 자세한 내용은 수집기 구성 필드를 참고하세요.
요청
POST https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
요청 본문
{
"display_name": string,
"config": {
object (CollectorConfig)
}
"state": enum
}
본문 파라미터
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
display_name | 문자열 | 필수 | 수집기 이름입니다. 이 이름은 Google SecOps 인터페이스에 표시됩니다. |
config | 객체 | 필수 | 이 수집기의 구성 설정입니다. 수집기 구성 필드를 참고하세요. |
주 | 열거형 | 선택사항 | 수집기의 현재 상태를 지정합니다. 유효한 값은 다음과 같습니다.
|
요청 예시
이 예시는 수집기 만들기 요청에 필요한 키-값 쌍을 보여줍니다. 제공되지 않은 필드의 경우 수집기 생성 중에 기본값이 적용됩니다.
이 예에서 수집기 유형은 file
이므로 수집기 구성에는 수집기 유형과 설정을 나타내는 file_settings
가 포함됩니다. 수집기 유형이 syslog
인 경우 수집기 구성에 syslog_settings
가 포함됩니다. 자세한 내용은 수집기 구성 필드를 참고하세요.
POST https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
{
"display_name": "abc_collector",
"config" {
"log_type": "CS_EDR"
"file_settings": {
"file_path": "/opt/chronicle/edr/output/sample.txt",
}
}
}
응답
요청이 성공하면 응답은 HTTP 상태 코드 200(OK)을 반환합니다.
응답에는 수집기 생성 중에 적용된 구성 값이 표시됩니다. 해당 필드가 요청 본문에서 누락되거나 값이 0이면 리소스 생성 중에 특정 설정에 기본 구성 값이 적용됩니다. 자세한 내용은 수집기 구성 필드를 참고하세요.
응답 필드
요청에 지정된 필드와 기본값이 적용되는 필드 외에도 응답에는 다음 필드가 포함됩니다.
필드 | 유형 | 설명 |
---|---|---|
name | 문자열 | 수집기의 리소스 ID입니다. 형식은 'forwarders/{forwarderID}/collectors/{collectorID}'입니다. 예를 들면 다음과 같습니다.forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56 |
응답 예시
다음은 위의 요청 예에 대해 반환된 응답의 예입니다.
{
"name": "forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56/collectors/
98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
수집기 가져오기
수집기를 반환합니다.
요청
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
요청 본문
요청 본문을 포함하지 마세요.
요청 예시
GET
https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
응답 예시
{
"name": "?",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
List Collectors
지정된 전달자의 기존 수집기를 나열합니다.
요청
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
요청 예시
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
응답
여러 수집기를 반환합니다.
응답 예시
{
"collectors": [
{
"name": "?",
"displayName": "abc_collector_1",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
},
{
"name": "?",
"displayName": "abc_collector_2",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
]
}
Update Collector
API로 수집기를 업데이트할 때 전체 수집기 구성을 덮어쓰거나 수집기 구성의 특정 필드만 덮어쓸 수 있습니다. 모든 데이터를 실수로 덮어쓰지 않도록 일반적으로 특정 필드를 덮어쓰는 것이 가장 좋습니다. 특정 필드를 덮어쓰려면 업데이트 요청에 FieldMask를 제공합니다.
수집기의 표시 이름을 업데이트하기 위해 FieldMask를 제공하려면 패치 요청에 updateMask URL 쿼리 매개변수를 제공합니다. 예를 들면 다음과 같습니다.
?updateMask=displayName
요청 본문에는 업데이트할 필드(정확한 위치)만 포함되어야 합니다.
요청
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}?updateMask=<field_1,field_2>
요청 본문
{
"display_name": string,
"config": {
object (CollectorConfig)
},
}
본문 파라미터
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
displayName | 문자열 | 필수 | 수집기 이름입니다. 이 이름은 Google SecOps 인터페이스에 표시됩니다. |
config | 객체 | 선택사항 | 이 전달자의 구성 설정입니다. 수집기 구성 필드를 참고하세요. |
요청 예시
이는 displayName, logType, assetNamespace, 프로토콜의 새 값을 지정하는 수집기 업데이트 요청의 예시입니다.
PATCH https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56?updateMask=displayName,config.logType,config.metadata.assetNamespace,config.syslogSettings.protocol
{
"display_name": "UpdatedCollector"
"config": {
"metadata": {
"asset_namespace": "COLLECTOR",
},
"log_type": "CISCO_ASA_FIREWALL",
"syslog_settings": {
"protocol": "TCP",
}
}
}
응답 예시
다음은 위의 요청 예에 대해 반환된 응답의 예입니다.
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
"displayName": "UpdatedCollector",
"config": {
"logType": "CISCO_ASA_FIREWALL",
"metadata": {
"assetNamespace": "COLLECTOR"
},
"maxSecondsPerBatch": 10,
"maxBytesPerBatch": "1048576",
"syslogSettings": {
"protocol": "TCP",
"address": "0.0.0.0",
"port": 10514,
}
},
"state": "ACTIVE"
}
수집기 삭제
수집기를 삭제합니다.
요청
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
요청 본문
요청 본문을 포함하지 마세요.
요청 예시
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
응답 예시
작업이 성공하면 수집기 삭제가 HTTP 상태 코드 200(OK)이 포함된 빈 응답을 반환합니다.
{}
수집기 구성 필드
다음 필드는 요청 본문의 config
객체에서 제공할 수 있습니다.
필드 | 유형 | 필수 | 설명 |
---|---|---|---|
log_type | 문자열 | 필수 | 지원되는 로그 유형(Google SecOps에서 수집할 수 있는 유형)입니다. Google SecOps에 파서가 있는 지원되는 로그 유형 목록은 지원되는 기본 파서 페이지의 수집 라벨 열을 참조하세요. 지원되는 로그 유형의 전체 목록을 가져오려면 logtypes 엔드포인트를 사용합니다.
|
metadata.asset_namespace | 객체 | 선택사항 | 이 수집기에서 로그를 식별하기 위한 네임스페이스입니다. 참고: 수집기 수준에서 재정의되지 않는 한 전달자 및 전달자의 수집기에 적용되는 전역 설정입니다. 자세한 내용은 네임스페이스 구성을 참고하세요. |
metadata.labels | list | 선택사항 | 수집기 구성에서 지정할 수 있는 임의의 키-값 쌍 목록입니다. 참고: 수집기 수준에서 재정의되지 않는 한 전달자 및 전달자의 수집기에 적용되는 전역 설정입니다. |
metadata.labels.key | 문자열 | 선택사항 | 메타데이터 라벨 목록에 있는 필드의 키입니다. |
metadata.labels.value | 문자열 | 선택사항 | 메타데이터 라벨 목록에 있는 필드의 값입니다. |
regex_filters.description | 문자열 | 선택사항 | 필터링되는 항목과 이유를 설명합니다. |
regex_filters.regexp | 문자열 | 선택사항 | 각 수신 줄과 일치시키는 데 사용되는 정규 표현식입니다. |
regex_filters.behavior | 열거형 | 선택사항 | 서버 기능의 상태를 지정합니다. 유효한 값은 다음과 같습니다.
|
disk_buffer.state | 열거형 | 선택사항 | 수집기의 디스크 버퍼링 상태를 지정합니다. 유효한 값은 다음과 같습니다.
|
disk_buffer.directory_path | 문자열 | 선택사항 | 작성된 파일의 디렉터리 경로입니다. |
disk_buffer.max_file_buffer_bytes | 정수 | 선택사항 | 버퍼링된 최대 파일 크기입니다. |
max_seconds_per_batch | 정수 | 선택사항 | 배치 간격(초)입니다. 기본값은 10 입니다. |
max_bytes_per_batch | 정수 | 선택사항 | 전달자 일괄 업로드 전에 대기열에 추가된 바이트 수입니다. 기본값은 1048576 입니다. |
<collector_type>_settings.<fields> | 필수 | 수집기 유형과 설정을 지정합니다. 모든 수집기는 하나의 수집기 유형과 해당 필드를 지정해야 합니다. 예를 들어 file 수집기 유형을 사용하려면 file_settings.file_path 필드를 구성에 추가하고 값을 지정해야 합니다. 예:"file_settings": { 수집기 유형과 필드는 이 표의 후속 행에 나와 있습니다. 사용 가능한 수집기 유형은 다음과 같습니다.
|
|
file_settings.file_path | 문자열 | 선택사항 | 모니터링할 파일의 경로입니다. |
kafka_settings.authentication.username | 문자열 | 선택사항 | 인증에 사용되는 ID의 사용자 이름입니다. |
kafka_settings.authentication.password | 문자열 | 선택사항 | 사용자 이름으로 식별되는 계정의 비밀번호입니다. |
kafka_settings.topic | 문자열 | 선택사항 | 데이터를 수집할 Kafka 주제입니다. 자세한 내용은 Kafka 주제에서 데이터 수집을 참고하세요. |
kafka_settings.group_id | 문자열 | 선택사항 | 그룹 ID입니다. |
kafka_settings.timeout | 정수 | 선택사항 | 연결이 완료되기를 기다리는 최대 시간(초)입니다. 기본값은 60 입니다. |
kafka_settings.brokers | 문자열 | 선택사항 | Kafka 브로커를 나열하는 반복되는 문자열입니다. 예를 들면 다음과 같습니다. 'broker-1:9092', 'broker-2:9093' 참고: 업데이트 작업 중에는 모든 값이 바뀝니다. 따라서 브로커 목록을 업데이트해 새 브로커를 추가하려면 기존 브로커와 새 브로커를 모두 지정합니다. |
kafka_settings.tls_settings.certificate | 문자열 | 선택사항 | 경로 및 인증서 파일 이름입니다. 예를 들면 다음과 같습니다./path/to/cert.pem |
kafka_settings.tls_settings.certificate_key | 문자열 | 선택사항 | 경로 및 인증서 키 파일 이름입니다. 예를 들면 다음과 같습니다./path/to/cert.key |
kafka_settings.tls_settings.minimum_tls_version | 문자열 | 선택사항 | 최소 TLS 버전입니다. |
kafka_settings.tls_settings.insecure_skip_verify | 부울 | 선택사항 | true 인 경우 SSL 인증 확인을 사용 설정합니다.기본값은 false 입니다. |
pcap_settings.network_interface | 문자열 | 선택사항 | PCAP 데이터를 리슨하기 위한 인터페이스입니다. |
pcap_settings.bpf | 문자열 | 선택사항 | pcap용 Berkeley Packet Filter(BPF) |
splunk_settings.authentication.username | 문자열 | 선택사항 | 인증에 사용되는 ID의 사용자 이름입니다. |
splunk_settings.authentication.password | 문자열 | 선택사항 | 사용자 이름으로 식별되는 계정의 비밀번호입니다. |
splunk_settings.host | 문자열 | 선택사항 | Splunk REST API의 호스트 또는 IP 주소입니다. |
splunk_settings.port | 정수 | 선택사항 | Splunk REST API의 포트입니다. |
splunk_settings.minimum_window_size | 정수 | 선택사항 | 지정된 Splunk 검색의 최소 기간(초)입니다. 자세한 내용은 Splunk 데이터 수집을 참고하세요. 기본값은 10 입니다. |
splunk_settings.maximum_window_size | 정수 | 선택사항 | 지정된 Splunk 검색의 최대 기간(초)입니다. 자세한 내용은 Splunk 데이터 수집을 참고하세요. 기본값은 30 입니다. |
splunk_settings.query_string | 문자열 | 선택사항 | Splunk 내에서 레코드를 필터링하는 데 사용되는 쿼리입니다. 예를 들면 다음과 같습니다. search index=* sourcetype=dns |
splunk_settings.query_mode | 문자열 | 선택사항 | Splunk의 쿼리 모드입니다. 예를 들면 다음과 같습니다. realtime |
splunk_settings.cert_ignored | 부울 | 선택사항 | true 이면 인증서가 무시됩니다. |
syslog_settings.protocol | 열거형 | 선택사항 | 수집기가 syslog 데이터를 리슨하는 데 사용할 프로토콜을 지정합니다. 유효한 값은 다음과 같습니다.
|
syslog_settings.address | 문자열 | 선택사항 | 수집기가 상주하고 syslog 데이터를 리슨하는 대상 IP 주소 또는 호스트 이름입니다. |
syslog_settings.port | 정수 | 선택사항 | 수집기가 상주하고 syslog 데이터를 리슨하는 대상 포트입니다. |
syslog_settings.buffer_size | 정수 | 선택사항 | TCP 소켓 버퍼의 크기(바이트)입니다. TCP의 기본값은 65536 입니다.UDP의 기본값은 8192 입니다. |
syslog_settings.connecton_timeout | 정수 | 선택사항 | TCP 연결이 중단된 후 비활성 시간(초)입니다. 기본값은 60 입니다. |
syslog_settings.tls_settings.certificate | 문자열 | 선택사항 | 경로 및 인증서 파일 이름입니다. 예를 들면 다음과 같습니다./path/to/cert.pem |
syslog_settings.tls_settings.certificate_key | 문자열 | 선택사항 | 경로 및 인증서 키 파일 이름입니다. 예를 들면 다음과 같습니다./path/to/cert.key |
syslog_settings.tls_settings.minimum_tls_version | 문자열 | 선택사항 | 최소 TLS 버전입니다. |
syslog_settings.tls_settings.insecure_skip_verify | 부울 | 선택사항 | true 인 경우 SSL 인증 확인을 사용 설정합니다.기본값은 false 입니다. |