API Forwarder Management

Pode usar a API Google Security Operations Forwarder Management para fazer o seguinte de forma programática:

  • Crie e faça a gestão de encaminhadores.
  • Crie e faça a gestão de coletores.
  • Obtenha o conteúdo dos ficheiros de configuração (.conf) e autenticação (_auth.conf) de um encaminhador do Google SecOps.

Os encaminhadores são compostos por um ou mais coletores. A configuração de cada coletor especifica o respetivo mecanismo de carregamento (por exemplo, ficheiro, Kafka, PCAP, Splunk ou Syslog) e tipo de registo.

Partindo do princípio de que os requisitos de hardware são cumpridos, pode usar muitos coletores no mesmo encaminhador para carregar dados de vários mecanismos e tipos de registos. Por exemplo, pode instalar um encaminhador com dois coletores syslog a ouvir dados de PAN_FIREWALL e CISCO_ASA_FIREWALL em portas separadas, respetivamente.

A API permite-lhe criar encaminhadores e os respetivos coletores na sua instância do Google SecOps. Depois de criar um encaminhador, pode usar o ponto final Generate Forwarder Files para obter o conteúdo dos ficheiros (como payload JSON) para os ficheiros de configuração (.conf) e autenticação (_auth.conf) de um encaminhador. Em seguida, estes conteúdos podem ser escritos nos respetivos ficheiros .conf para implementação com o serviço Google SecOps Forwarder num sistema Windows ou Linux.

Para ver exemplos de Python que usam a API Forwarder Management, consulte o repositório do GitHub.

Crie um encaminhador e os respetivos coletores

Tem de criar um encaminhador antes de poder criar qualquer um dos respetivos coletores.

Para criar um encaminhador e os respetivos coletores:

  1. Crie um encaminhador.
  2. Crie um coletor para o encaminhador.
  3. (Opcional) Repita o passo 2 para adicionar mais coletores.

Autentique com a API Chronicle

Este documento descreve como a API Chronicle usa o protocolo OAuth 2.0 para autenticação e autorização. A sua aplicação pode processar esta situação através de um dos seguintes métodos:

  • Use a biblioteca cliente da API Chronicle para a sua linguagem de programação.

  • Interagir diretamente com o sistema OAuth 2.0 através de HTTP.

Consulte a documentação de referência da biblioteca de autenticação Google em Python.

As bibliotecas de autenticação Google são um subconjunto das bibliotecas cliente da API Chronicle. Consulte outras implementações de idiomas.

Obtenha credenciais de autenticação da API

O representante do Google Security Operations vai fornecer-lhe uma credencial de conta de serviço do Google Developer para permitir que o cliente da API comunique com a API.

Também tem de fornecer o âmbito de autorização quando inicializa o cliente da API. O OAuth 2.0 usa um âmbito para limitar o acesso de uma aplicação a uma conta. Quando uma aplicação pede um âmbito, o token de acesso emitido para a aplicação está limitado ao âmbito concedido.

Use o seguinte âmbito para inicializar o cliente da API Chronicle:

https://www.googleapis.com/auth/chronicle-backstory

Exemplo de Python

O exemplo de Python seguinte demonstra como usar as credenciais do OAuth2 e o cliente HTTP com google.oauth2 e googleapiclient.

# 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 the Google Developer Service Account Credential and Chronicle 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/

Limites de consultas da API Chronicle

A API Chronicle aplica limites ao volume de pedidos que podem ser feitos por qualquer cliente à plataforma Google SecOps. Se atingir ou exceder o limite de consultas, o servidor da API Chronicle devolve HTTP 429 (RESOURCE_EXHAUSTED) ao autor da chamada. Ao desenvolver aplicações para a API Chronicle, a Google recomenda que aplique limites de taxa no seu sistema para evitar o esgotamento de recursos. Estes limites aplicam-se a todas as APIs Chronicle, incluindo as APIs de pesquisa, gestão de encaminhadores e ferramentas.

Consulte a lista detalhada das quotas da API Chronicle.

O seguinte limite para a API Chronicle Forwarder Management está a ser aplicado e é medido em consultas por segundo (CPS):

API Chronicle Ponto final da API Limite
Gestão de encaminhadores Crie um encaminhador 1 CPS
Obtenha o encaminhador 1 CPS
Liste encaminhadores 1 CPS
Atualize o encaminhador 1 CPS
Elimine o encaminhador 1 CPS
Gestão de coletores Crie um coletor 1 CPS
Obtenha o coletor 1 CPS
Listar coletores 1 CPS
Atualize o coletor 1 CPS
Elimine o coletor 1 CPS

Referência da API Forwarder

Esta secção descreve os pontos finais para criar e gerir encaminhadores. Para ver pontos finais para criar e gerir coletores, consulte a referência da API Collector.

Crie um encaminhador

Cria um novo encaminhador na instância do Google SecOps. O novo encaminhador vai incluir todos os valores de configuração do encaminhador fornecidos no corpo do pedido. Os valores de configuração dos coletores têm de ser especificados através da opção Criar coletor depois de usar a opção Criar encaminhador.

Para determinadas definições, os valores de configuração em falta ou com valor zero no corpo do pedido são definidos como valores predefinidos. Para ver detalhes sobre os campos e os valores do encaminhador, consulte o artigo Campos de configuração do encaminhador.

Pedido

POST https://backstory.googleapis.com/v2/forwarders

Corpo do pedido
{
  "display_name": string,
  "config": {
    object (ForwarderConfig)
  }
}
Parâmetros corporais
Campo Tipo Obrigatório Descrição
display_name string Obrigatória O nome do encaminhador. Este nome é apresentado na interface do Google SecOps.
config objeto Opcional As definições de configuração deste encaminhador. Consulte os campos de configuração do encaminhador.
Exemplo de pedido

Este exemplo mostra os pares de chave:valor necessários num pedido Create Forwarder. Se um campo não for especificado no pedido e tiver um valor predefinido, o valor predefinido é aplicado durante a criação do encaminhador. Para ver detalhes sobre os valores predefinidos, consulte os campos de configuração do encaminhador.

POST https://backstory.googleapis.com/v2/forwarders
{
  "display_name": "chronicle_forwarder"
}

Resposta

Se o pedido for bem-sucedido, a resposta devolve um código de estado HTTP de 200 (OK).

A resposta mostra os valores de configuração aplicados durante a criação do encaminhador. Os valores de configuração predefinidos são aplicados a determinadas definições durante a criação de recursos se esses campos estiverem em falta ou tiverem o valor zero no corpo do pedido. Para ver detalhes, consulte os campos de configuração do encaminhador.

Campos de resposta

Além dos campos especificados no pedido e dos campos aos quais são aplicados valores predefinidos, a resposta inclui os seguintes campos gerados e apenas de saída.

Campo Tipo Descrição
nome string O ID do recurso do encaminhador. O formato é "forwarders/forwarderID". Por exemplo:

forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56
estado enum

Especifica o estado atual do encaminhador. Os valores válidos são:

  • ATIVO: o encaminhador tem autorização para carregar dados.
  • SUSPENSO: o encaminhador não tem autorização para carregar dados.

O valor predefinido é ACTIVE.

Exemplo de resposta

Este é um exemplo da resposta devolvida para o exemplo de pedido acima.

{
  "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"
}

Obtenha o encaminhador

Devolve um encaminhador.

Pedido

GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}

Corpo do pedido

Não inclua um corpo do pedido.

Exemplo de pedido
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Exemplo de resposta
{
  "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"
}

Liste encaminhadores

Lista todos os encaminhadores de uma instância do Google SecOps.

Pedido

GET https://backstory.googleapis.com/v2/forwarders

Exemplo de pedido

GET https://backstory.googleapis.com/v2/forwarders

Resposta

Devolve uma lista de encaminhadores.

Exemplo de resposta
{
  "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"
    }
  ]
}

Atualize o encaminhador

Pode atualizar um encaminhador através do parâmetro de consulta de URL updateMask para especificar os campos a atualizar.

Por exemplo, para atualizar o nome a apresentar, usaria o parâmetro de consulta updateMask da seguinte forma no pedido de patch:

?updateMask=displayName

O corpo do pedido só deve conter os campos que quer atualizar (nas respetivas localizações exatas).

Pedido

PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}?updateMask=<field_1,field_2>
Corpo do pedido
{
  "display_name": string,
  "config": {
    object (ForwarderConfig)
  },
}
Parâmetros corporais
Campo Tipo Obrigatório Descrição
display_name string Obrigatória O nome do encaminhador. Este nome é apresentado na interface do Google SecOps.
config objeto Opcional As definições de configuração deste encaminhador. Consulte os campos de configuração do encaminhador.
Exemplo de pedido

Este é um exemplo de um pedido de encaminhamento de atualização em que o pedido especifica novos valores para displayName e adiciona uma etiqueta de metadados.

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",
        }
      ]
    }
  }
}
Exemplo de resposta

Este é um exemplo da resposta devolvida para o exemplo de pedido acima.

{
  "name": "forwarders/{forwarderUUID}",
  "displayName": "UpdatedForwarder",
  "config": {
    "uploadCompression": "false",
    "metadata": {
      "labels": [
        {
          "key": "office",
          "value": "corporate"
        }
      ]
    }
  },
  "state": "ACTIVE"
}

Elimine o encaminhador

Elimina um encaminhador.

Pedido

DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Corpo do pedido

Não inclua um corpo do pedido.

Exemplo de pedido
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Exemplo de resposta

Se a operação for bem-sucedida, Delete Forwarder devolve uma resposta vazia com um código de estado HTTP 200 (OK).

{}

Gere ficheiros de encaminhamento

Gera e devolve o conteúdo dos ficheiros de configuração (.conf) e autenticação (_auth.conf) do encaminhador.

Pedido

GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}:generateForwarderFiles
Corpo do pedido

Não inclua um corpo do pedido.

Exemplo de pedido
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56:generateForwarderFiles
Exemplo de resposta

Se a operação for bem-sucedida, devolve um código de estado HTTP 200 (OK). Também devolve o conteúdo de um ficheiro de configuração do encaminhador, incluindo os dados de configuração dos coletores do encaminhador, bem como o conteúdo do ficheiro de autenticação (_auth.conf) usado pelo encaminhador para autenticar com a instância do Google SecOps.

Campos de configuração do encaminhador

A tabela seguinte apresenta as definições de configuração do encaminhador que pode especificar através das funções Create Forwarder e Update Forwarder. Se não especificar um valor para uma definição quando usa o criador de encaminhadores, é aplicado o valor predefinido da definição (mostrado abaixo).

Os seguintes campos podem ser fornecidos no objeto config do corpo do pedido.

Campo Tipo Obrigatório Descrição
upload_compression bool Opcional Se true, os lotes de dados são comprimidos antes do carregamento.

A predefinição é false.
metadata.asset_namespace string Opcional O espaço de nomes para identificar registos deste encaminhador.

Nota: esta é uma definição global que se aplica ao encaminhador e aos coletores do encaminhador, a menos que seja substituída ao nível do coletor. Para mais informações, consulte o artigo Configure espaços de nomes.
metadata.labels list Opcional Uma lista de pares chave:valor arbitrários que podem ser especificados na configuração do encaminhador.

Nota: esta é uma definição global que se aplica ao encaminhador e aos coletores do encaminhador, a menos que seja substituída ao nível do coletor.
metadata.labels.key string Opcional A chave de um campo na lista de etiquetas de metadados.
metadata.labels.value string Opcional O valor de um campo na lista de etiquetas de metadados.
regex_filters.description string Opcional Descreve o que está a ser filtrado e porquê.
regex_filters.regexp string Opcional A expressão regular usada para estabelecer correspondência com cada linha recebida.
regex_filters.behavior enum Opcional

Especifica o estado da funcionalidade do servidor. Os valores válidos são:

  • ALLOW: este estado permite o carregamento da linha filtrada.
  • BLOQUEAR: este estado impede o carregamento da linha filtrada.
server_settings objeto Opcional Definições que configuram o servidor HTTP incorporado do encaminhador, que pode ser usado para configurar opções de balanceamento de carga e alta disponibilidade para a recolha de syslog no Linux.
server_settings.state enum Opcional

Especifica o estado da funcionalidade do servidor. Os valores válidos são:

  • ATIVO: neste estado, as definições do servidor são aplicadas conforme especificado.
  • SUSPENSO Neste estado, as definições do servidor não são aplicadas.
server_settings.graceful_timeout integer Opcional O número de segundos após o qual o encaminhador devolve uma verificação de disponibilidade/estado de funcionamento incorreta e continua a aceitar novas ligações. Este é também o tempo de espera entre a receção de um sinal para parar e o início real do encerramento do próprio servidor. Isto permite que o equilibrador de carga tenha tempo para remover o encaminhador do conjunto.

O valor predefinido é 15.
server_settings.drain_timeout integer Opcional O número de segundos após os quais o encaminhador aguarda que as ligações ativas sejam fechadas com êxito por si próprias antes de serem fechadas pelo servidor.

O valor predefinido é 10.
server_settings.http_settings.port integer Opcional O número da porta que o servidor HTTP escuta para verificações de estado do balanceador de carga. Tem de ser um número entre 1024 e 65535.

A predefinição é 8080.
server_settings.http_settings.host string Opcional O endereço IP ou o nome de anfitrião que pode ser resolvido para endereços IP, que o servidor deve ouvir.

O valor predefinido é 0.0.0.0 (o sistema local).
server_settings.http_settings.read_timeout integer Opcional O número máximo de segundos permitido para ler pedidos completos, que inclui o cabeçalho e o corpo.

O valor predefinido é 3.
server_settings.http_settings.read_header_timeout integer Opcional O número máximo de segundos permitido para ler os cabeçalhos de pedidos.

O valor predefinido é 3.
server_settings.http_settings.write_timeout integer Opcional O número máximo de segundos permitidos para enviar uma resposta.

O valor predefinido é 3.
server_settings.http_settings.idle_timeout integer Opcional O número máximo de segundos a aguardar o pedido seguinte quando as ligações inativas estão ativadas.

A predefinição é 3.
server_settings.http_settings.route_settings.available_status_code integer Opcional O código de estado devolvido quando é recebida uma verificação de vitalidade e o encaminhador está disponível.

A predefinição é 204.
server_settings.http_settings.route_settings.ready_status_code integer Opcional O código de estado devolvido quando o encaminhador está pronto para aceitar tráfego.

A predefinição é 204.
server_settings.http_settings.route_settings.unready_status_code integer Opcional O código de estado devolvido quando o encaminhador não está pronto para aceitar tráfego.

A predefinição é 503.

Referência da API Collector

Esta secção descreve os pontos finais para trabalhar com coletores.

Quando criar e atualizar coletores, tenha em atenção que cada configuração de coletor pode especificar definições de carregamento para um, mas não mais do que um, dos seguintes:

  • Dados do ficheiro de registo
  • Tópicos do Kafka
  • Dados de pacotes (pcap)
  • Dados do Splunk
  • Dados Syslog

Para ver os pontos finais para trabalhar com encaminhadores, consulte a referência da API Forwarder.

Crie um coletor

Cria um novo coletor na conta do Google SecOps. Os valores de configuração dos coletores têm de ser especificados através de Create Collector após usar Create Forwarder.

Para determinadas definições, os valores de configuração que estão em falta ou têm o valor zero no corpo do pedido são definidos como valores predefinidos. Para ver detalhes sobre os campos e os valores de configuração do coletor, consulte o artigo Campos de configuração do coletor.

Pedido

POST https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Corpo do pedido
{
  "display_name": string,
  "config": {
    object (CollectorConfig)
  }
  "state": enum
}
Parâmetros corporais
Campo Tipo Obrigatório Descrição
display_name string Obrigatória O nome do coletor. Este nome é apresentado na interface do Google SecOps.
config objeto Obrigatória As definições de configuração deste coletor. Consulte os campos de configuração do coletor.
estado enum Opcional

Especifica o estado atual do coletor. Os valores válidos são:

  • ATIVO: o coletor tem autorização para aceitar dados.
  • SUSPENSO: o coletor não tem autorização para aceitar dados.
Exemplo de pedido

Este exemplo mostra os pares de chave:valor necessários num pedido Create Collector. Para todos os campos que não forem fornecidos, os valores predefinidos são aplicados durante a criação do coletor.

Neste exemplo, o tipo de coletor é file, pelo que a configuração do coletor inclui file_settings para indicar o tipo de coletor e as respetivas definições. Se o tipo de coletor for syslog, a configuração do coletor inclui syslog_settings. Para mais informações, consulte os campos de configuração do coletor.

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",
    }
  }
}

Resposta

Se o pedido for bem-sucedido, a resposta devolve um código de estado HTTP de 200 (OK).

A resposta mostra os valores de configuração aplicados durante a criação do coletor. Os valores de configuração predefinidos são aplicados a determinadas definições durante a criação de recursos se esses campos estiverem em falta ou tiverem o valor zero no corpo do pedido. Para ver detalhes, consulte os Campos de configuração do coletor.

Campos de resposta

Além dos campos especificados no pedido e dos campos aos quais são aplicados valores predefinidos, a resposta inclui os seguintes campos:

Campo Tipo Descrição
nome string O ID do recurso do coletor. O formato é "forwarders/{forwarderID}/collectors/{collectorID}". Por exemplo:

forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Exemplo de resposta

Este é um exemplo da resposta devolvida para o exemplo de pedido acima.

{
  "name": "forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56/collectors/
     98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
  "displayName": "abc_collector",
  "config": {
    "logType": "tomcat",
    "maxSecondsPerBatch": "10",
    "maxBytesPerBatch": "1048576"
  }
}

Obtenha o coletor

Devolve um coletor.

Pedido

GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Corpo do pedido

Não inclua um corpo do pedido.

Exemplo de pedido
GET
https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Exemplo de resposta
{
  "name": "?",
  "displayName": "abc_collector",
  "config": {
    "logType": "tomcat",
    "maxSecondsPerBatch": "10",
    "maxBytesPerBatch": "1048576"
  }
}

Listar coletores

Lista os coletores existentes para o encaminhador especificado.

Pedido

GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Exemplo de pedido
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors

Resposta

Devolve vários coletores.

Exemplo de resposta
{
  "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"
      }
    }
  ]
}

Atualize o coletor

Quando atualiza um coletor com a API, pode optar por substituir toda a configuração do coletor ou substituir apenas campos específicos da configuração do coletor. Normalmente, é melhor substituir campos específicos para evitar substituir acidentalmente todos os seus dados. Para substituir campos específicos, forneça um FieldMask ao seu pedido de atualização.

Para fornecer um FieldMask para atualizar o nome a apresentar de um coletor, forneça o parâmetro de consulta do URL updateMask no pedido de patch. Por exemplo:

?updateMask=displayName

O corpo do pedido só deve conter os campos que quer atualizar (nas respetivas localizações exatas).

Pedido

PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}?updateMask=<field_1,field_2>
Corpo do pedido
{
  "display_name": string,
  "config": {
    object (CollectorConfig)
  },
}
Parâmetros corporais
Campo Tipo Obrigatório Descrição
displayName string Obrigatória O nome do coletor. Este nome é apresentado na interface do Google SecOps.
config objeto Opcional As definições de configuração deste encaminhador. Consulte os campos de configuração do coletor.
Exemplo de pedido

Este é um exemplo de um pedido de atualização do coletor em que o pedido especifica novos valores para displayName, logType, assetNamespace e protocol.

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",
      }
    }
  }
Exemplo de resposta

Este é um exemplo da resposta devolvida para o exemplo de pedido acima.

{
  "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"
}

Elimine o coletor

Elimina um coletor.

Pedido

DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Corpo do pedido

Não inclua um corpo do pedido.

Exemplo de pedido
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Exemplo de resposta

Se a operação for bem-sucedida, o eliminador devolve uma resposta vazia com um código de estado HTTP 200 (OK).

{}

Campos de configuração do coletor

Os seguintes campos podem ser fornecidos no objeto config do corpo do pedido.

Campo Tipo Obrigatório Descrição
log_type string Obrigatória Um tipo de registo suportado (um que pode ser carregado pelo Google SecOps). Para ver uma lista dos tipos de registos suportados para os quais o Google SecOps tem um analisador, consulte a coluna Ingestion Label na página Analisadores predefinidos suportados. Para obter uma lista completa de tipos de registos suportados, use o ponto final logtypes.
metadata.asset_namespace objeto Opcional O espaço de nomes para identificar registos deste coletor.

Nota: esta é uma definição global que se aplica ao encaminhador e aos coletores do encaminhador, a menos que seja substituída ao nível do coletor. Para mais informações, consulte o artigo Configure espaços de nomes.
metadata.labels list Opcional Uma lista de pares chave:valor arbitrários que podem ser especificados na configuração do coletor.

Nota: esta é uma definição global que se aplica ao encaminhador e aos coletores do encaminhador, a menos que seja substituída ao nível do coletor.
metadata.labels.key string Opcional A chave de um campo na lista de etiquetas de metadados.
metadata.labels.value string Opcional O valor de um campo na lista de etiquetas de metadados.
regex_filters.description string Opcional Descreve o que está a ser filtrado e porquê.
regex_filters.regexp string Opcional A expressão regular usada para estabelecer correspondência com cada linha recebida.
regex_filters.behavior enum Opcional

Especifica o estado da funcionalidade do servidor. Os valores válidos são:

  • ALLOW: este estado permite o carregamento da linha filtrada.
  • BLOQUEAR: este estado impede o carregamento da linha filtrada.
disk_buffer.state enum Opcional

Especifica o estado de armazenamento em buffer do disco para o coletor. Os valores válidos são:

  • ATIVA: o armazenamento em buffer está ativado.
  • SUSPENSO: o armazenamento em buffer está desativado.
disk_buffer.directory_path string Opcional O caminho do diretório para os ficheiros escritos.
disk_buffer.max_file_buffer_bytes integer Opcional O tamanho máximo do ficheiro em buffer.
max_seconds_per_batch integer Opcional O número de segundos entre lotes.

A predefinição é 10.
max_bytes_per_batch integer Opcional O número de bytes colocados em fila antes do carregamento em lote do encaminhador.

A predefinição é 1048576.
<collector_type>_settings.<fields> Obrigatória Especifica um tipo de coletor e as respetivas definições. Cada coletor tem de especificar um tipo de coletor e os respetivos campos. Por exemplo, para usar o tipo de coletor file, o campo file_settings.file_path tem de ser adicionado à configuração e receber um valor. Por exemplo:

"file_settings": {
  "file_path": "/opt/chronicle/edr/output/sample.txt",
}


Os tipos de coletores e os respetivos campos estão listados nas linhas subsequentes desta tabela. Os tipos de coletores disponíveis são:
  • file
  • kafka
  • pcap
  • splunk
  • syslog
file_settings.file_path string Opcional O caminho do ficheiro a monitorizar.
kafka_settings.authentication.username string Opcional O nome de utilizador de uma identidade usada para autenticação.
kafka_settings.authentication.password string Opcional A palavra-passe da conta identificada pelo nome de utilizador.
kafka_settings.topic string Opcional O tópico do Kafka a partir do qual carregar dados. Para ver detalhes, consulte o artigo Recolha dados de tópicos do Kafka.
kafka_settings.group_id string Opcional Um ID do grupo.
kafka_settings.timeout integer Opcional O número máximo de segundos que uma chamada aguarda pela conclusão da ligação.

A predefinição é 60.
kafka_settings.brokers string Opcional Uma string repetida que lista os agentes Kafka. Por exemplo:

"broker-1:9092", "broker-2:9093"

Nota: todos os valores são substituídos durante uma operação de atualização. Por isso, para atualizar uma lista de corretores de modo a adicionar um novo corretor, especifique todos os corretores existentes e o novo corretor.
kafka_settings.tls_settings.certificate string Opcional O caminho e o nome do ficheiro do certificado. Por exemplo:

/path/to/cert.pem
kafka_settings.tls_settings.certificate_key string Opcional O caminho e o nome do ficheiro da chave do certificado. Por exemplo:

/path/to/cert.key
kafka_settings.tls_settings.minimum_tls_version string Opcional A versão mínima do TLS.
kafka_settings.tls_settings.insecure_skip_verify bool Opcional Se true, ativa a validação da certificação SSL.

A predefinição é false.
pcap_settings.network_interface string Opcional A interface a ouvir para dados PCAP.
pcap_settings.bpf string Opcional O Berkeley Packet Filter (BPF) para pcap.
splunk_settings.authentication.username string Opcional O nome de utilizador de uma identidade usada para autenticação.
splunk_settings.authentication.password string Opcional A palavra-passe da conta identificada pelo nome de utilizador.
splunk_settings.host string Opcional O anfitrião ou o endereço IP da API REST do Splunk.
splunk_settings.port integer Opcional A porta para a API REST do Splunk.
splunk_settings.minimum_window_size integer Opcional O intervalo de tempo mínimo em segundos para uma determinada pesquisa do Splunk. Para ver detalhes, consulte o artigo Recolha dados do Splunk.

A predefinição é 10.
splunk_settings.maximum_window_size integer Opcional O intervalo de tempo máximo em segundos para uma determinada pesquisa do Splunk. Para ver detalhes, consulte o artigo Recolha dados do Splunk.

A predefinição é 30.
splunk_settings.query_string string Opcional A consulta usada para filtrar registos no Splunk.

Por exemplo: search index=* sourcetype=dns
splunk_settings.query_mode string Opcional O modo de consulta para o Splunk.

Por exemplo: realtime
splunk_settings.cert_ignored bool Opcional Se for true, o certificado é ignorado.
syslog_settings.protocol enum Opcional

Especifica o protocolo que o coletor vai usar para ouvir os dados do syslog. Os valores válidos são:

  • TCP
  • UDP
syslog_settings.address string Opcional O endereço IP ou o nome do anfitrião de destino onde o coletor reside e ouve os dados do syslog.
syslog_settings.port integer Opcional A porta de destino onde o coletor reside e ouve os dados do syslog.
syslog_settings.buffer_size integer Opcional O tamanho em bytes da memória intermédia da entrada TCP.

A predefinição para TCP é 65536.
A predefinição para UDP é 8192.
syslog_settings.connecton_timeout integer Opcional O número de segundos de inatividade após os quais a ligação TCP é interrompida.

A predefinição é 60.
syslog_settings.tls_settings.certificate string Opcional O caminho e o nome do ficheiro do certificado. Por exemplo:

/path/to/cert.pem
syslog_settings.tls_settings.certificate_key string Opcional O caminho e o nome do ficheiro da chave do certificado. Por exemplo:

/path/to/cert.key
syslog_settings.tls_settings.minimum_tls_version string Opcional A versão mínima do TLS.
syslog_settings.tls_settings.insecure_skip_verify bool Opcional Se true, ativa a validação da certificação SSL.

A predefinição é false.