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 저장소를 참조하세요.

전달자 및 수집기를 만들기

수집기를 만들려면 먼저 전달자를 만들어야 합니다.

전달자 및 수집기를 만들려면 다음 안내를 따르세요.

  1. 전달자를 만듭니다.
  2. 전달자의 수집기를 만듭니다.
  3. (선택사항) 2단계를 반복하여 수집기를 더 추가합니다.

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.oauth2googleapiclient를 사용하여 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_path": "/opt/chronicle/edr/output/sample.txt",
}


수집기 유형과 필드는 이 표의 후속 행에 나와 있습니다. 사용 가능한 수집기 유형은 다음과 같습니다.
  • file
  • kafka
  • pcap
  • splunk
  • syslog
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 데이터를 리슨하는 데 사용할 프로토콜을 지정합니다. 유효한 값은 다음과 같습니다.

  • TCP
  • UDP
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입니다.