Gerenciamento de encaminhadores
É possível usar os métodos da API Google Security Operations Forwarder Management para fazer o seguinte de maneira programática:
- Criar e gerenciar encaminhadores.
- Criar e gerenciar coletores.
- Receba o conteúdo dos arquivos 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 mecanismo de ingestão (por exemplo, arquivo, Kafka, PCAP, Splunk ou Syslog) e o tipo de registro.
Supondo que os requisitos de hardware sejam atendidos, você pode usar muitos coletores no mesmo encaminhador para ingerir dados de vários mecanismos e tipos de registros. Por exemplo, é possível instalar um encaminhador com dois coletores syslog que escutam dados PAN_FIREWALL e CISCO_ASA_FIREWALL em portas separadas, respectivamente.
Com a API, é possível criar encaminhadores e coletores na sua instância do Google SecOps. Depois que um encaminhador é criado, é possível usar o endpoint "Generate Forwarder Files" para receber o conteúdo do arquivo (como payload JSON) para os arquivos de configuração (.conf
) e autenticação (_auth.conf
) de um encaminhador. Esses conteúdos podem ser gravados nos respectivos arquivos .conf
para implantação com o serviço de encaminhador do Google SecOps
em um sistema Windows ou Linux.
Para exemplos em Python que usam a API Forwarder Management, consulte o repositório do GitHub.
Criar um encaminhador e os coletores dele
É preciso criar um encaminhador antes de qualquer um dos coletores.
Para criar um encaminhador e os coletores dele:
- Crie um encaminhador.
- Crie um coletor para o encaminhador.
- (Opcional) Repita a etapa 2 para adicionar mais coletores.
Receber credenciais de autenticação da API
Seu representante do Google Security Operations vai fornecer uma credencial de conta de serviço do Google Developer para permitir que o cliente da API se comunique com ela.
Você também precisa fornecer o escopo de autenticação ao inicializar o cliente da API. O OAuth 2.0 usa um escopo para limitar o acesso de um aplicativo a uma conta. Quando um aplicativo solicita um escopo, o token de acesso emitido para ele é limitado ao escopo concedido.
Use o escopo a seguir para inicializar o cliente da API Backstory:
https://www.googleapis.com/auth/chronicle-backstory
Exemplo do Python
O exemplo em Python a seguir demonstra como usar as credenciais do OAuth2
e o cliente HTTP usando 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 Backstory 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 Backstory
A API Backstory impõe limites ao volume de solicitações que podem ser feitas por qualquer cliente na plataforma Google SecOps. Se você atingir ou exceder o limite de consultas, o servidor da API Backstory vai retornar HTTP 429 (RESOURCE_EXHAUSTED) para o autor da chamada. Ao desenvolver aplicativos para a API Backstory, o Google recomenda que você aplique limites de taxa no seu sistema para evitar o esgotamento de recursos. Esses limites se aplicam a todas as APIs do Backstory, incluindo as APIs de pesquisa, gerenciamento de encaminhador e ferramentas.
Consulte a lista detalhada de cotas da API Backstory.
O seguinte limite para o gerenciamento de encaminhadores está sendo aplicado e é medido em consultas por segundo (QPS):
API Backstory | Endpoint da API | Limite |
Gerenciamento de encaminhadores | Criar encaminhador | 1 QPS |
Acessar encaminhador | 1 QPS | |
Listar encaminhadores | 1 QPS | |
Atualizar encaminhador | 1 QPS | |
Excluir encaminhador | 1 QPS | |
Gerenciamento de coletores | Criar coletor | 1 QPS |
Receber coletor | 1 QPS | |
Listar coletores | 1 QPS | |
Atualizar coletor | 1 QPS | |
Excluir coletor | 1 QPS |
Referência dos métodos da API Forwarder
Esta seção descreve os endpoints para criar e gerenciar encaminhadores. Para endpoints de criação e gerenciamento de coletores, consulte a referência da API Collector.
Criar encaminhador
Cria um novo encaminhador na instância do Google SecOps. O novo encaminhador vai incluir todos os valores de configuração de encaminhador fornecidos no corpo da solicitação. Os valores de configuração para coletores precisam ser especificados usando "Criar coletor" depois de usar "Criar encaminhador".
Para determinadas configurações, os valores de configuração ausentes ou iguais a zero no corpo da solicitação são definidos como valores padrão. Para detalhes sobre campos e valores de encaminhador, consulte Campos de configuração do encaminhador.
Solicitação
POST https://backstory.googleapis.com/v2/forwarders
Corpo da solicitação
{
"display_name": string,
"config": {
object (ForwarderConfig)
}
}
Parâmetros do corpo
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
display_name | string | Obrigatório | O nome do encaminhador. Esse nome é exibido na interface do Google SecOps. |
config | object | Opcional | As configurações de configuração para este encaminhador. Consulte Campos de configuração do encaminhador. |
Exemplo de solicitação
Este exemplo mostra os pares de chave-valor necessários em uma solicitação "Create Forwarder". Se um campo não for especificado na solicitação e tiver um valor padrão, esse valor será aplicado durante a criação do encaminhador. Para detalhes sobre os valores padrão, consulte Campos de configuração do encaminhador.
POST https://backstory.googleapis.com/v2/forwarders
{
"display_name": "chronicle_forwarder"
}
Resposta
Se a solicitação for bem-sucedida, a resposta vai retornar um código de status HTTP 200 (OK).
A resposta mostra os valores de configuração aplicados durante a criação do encaminhador. Os valores de configuração padrão são aplicados a determinadas configurações durante a criação de recursos se esses campos estiverem ausentes ou com valor zero no corpo da solicitação. Para mais detalhes, consulte Campos de configuração do encaminhador.
Campos de resposta
Além dos campos especificados na solicitação e dos campos em que os valores padrão são aplicados, a resposta inclui os seguintes campos gerados e somente de saída.
Campo | Tipo | Descrição |
---|---|---|
name | 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:
O valor padrão é ACTIVE. |
Exemplo de resposta
Este é um exemplo da resposta retornada para o exemplo de solicitação 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"
}
Acessar encaminhador
Retorna um encaminhador.
Solicitação
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Corpo da solicitação
Não inclua um corpo de solicitação.
Exemplo de solicitação
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"
}
Listar encaminhadores
Lista todos os encaminhadores de uma instância do Google SecOps.
Solicitação
GET https://backstory.googleapis.com/v2/forwarders
Exemplo de solicitação
GET https://backstory.googleapis.com/v2/forwarders
Resposta
Retorna 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"
}
]
}
Atualizar encaminhador
Para atualizar um encaminhador, use o parâmetro de consulta de URL updateMask
para especificar os campos a serem atualizados.
Por exemplo, para atualizar o nome de exibição, use o parâmetro de consulta updateMask
da seguinte maneira na solicitação de patch:
?updateMask=displayName
O corpo da solicitação só deve conter os campos que você quer atualizar (nos locais exatos).
Solicitação
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}?updateMask=<field_1,field_2>
Corpo da solicitação
{
"display_name": string,
"config": {
object (ForwarderConfig)
},
}
Parâmetros do corpo
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
display_name | string | Obrigatório | O nome do encaminhador. Esse nome é exibido na interface do Google SecOps. |
config | object | Opcional | As configurações de configuração para este encaminhador. Consulte Campos de configuração do encaminhador. |
Exemplo de solicitação
Este é um exemplo de uma solicitação "Update Forwarder" em que a solicitação especifica
novos valores para displayName
e adiciona um rótulo 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 retornada para o exemplo de solicitação acima.
{
"name": "forwarders/{forwarderUUID}",
"displayName": "UpdatedForwarder",
"config": {
"uploadCompression": "false",
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate"
}
]
}
},
"state": "ACTIVE"
}
Excluir encaminhador
Exclui um encaminhador.
Solicitação
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Corpo da solicitação
Não inclua um corpo de solicitação.
Exemplo de solicitação
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Exemplo de resposta
Se a operação for bem-sucedida, "Delete Forwarder" vai retornar uma resposta vazia com um código de status HTTP 200 (OK).
{}
Gerar arquivos de encaminhador
Gera e retorna o conteúdo dos arquivos de configuração (.conf
) e autenticação (_auth.conf
) do encaminhador.
Solicitação
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}:generateForwarderFiles
Corpo da solicitação
Não inclua um corpo de solicitação.
Exemplo de solicitação
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56:generateForwarderFiles
Exemplo de resposta
Se a operação for bem-sucedida, ela vai retornar um código de status HTTP 200 (OK). Ele
também retorna o conteúdo de um arquivo de configuração de encaminhador, incluindo os
dados de configuração dos coletores do encaminhador, bem como o conteúdo do
arquivo 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 a seguir lista as configurações de configuração do encaminhador que podem ser especificadas usando "Criar encaminhador" e "Atualizar encaminhador". Se você não especificar um valor para uma configuração ao usar "Criar encaminhador", o valor padrão da configuração (mostrado abaixo) será aplicado.
Os campos a seguir podem ser fornecidos no objeto config
do corpo da solicitação.
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
upload_compression | bool | Opcional | Se for true , os lotes de dados serão compactados antes do upload.O padrão é false . |
metadata.asset_namespace | string | Opcional | O namespace para identificar registros desse encaminhador. Observação:essa é uma configuração global que se aplica ao encaminhador e aos coletores dele, a menos que seja substituída no nível do coletor. Para mais informações, consulte Configurar namespaces. |
metadata.labels | list | Opcional | Uma lista de pares de chave-valor arbitrários que podem ser especificados na
configuração do encaminhador. Observação:essa é uma configuração global que se aplica ao encaminhador e aos coletores dele, a menos que seja substituída no nível do coletor. |
metadata.labels.key | string | Opcional | A chave de um campo na lista de rótulos de metadados. |
metadata.labels.value | string | Opcional | O valor de um campo na lista de rótulos de metadados. |
regex_filters.description | string | Opcional | Descreve o que está sendo filtrado e por quê. |
regex_filters.regexp | string | Opcional | A expressão regular usada para corresponder a cada linha recebida. |
regex_filters.behavior | enum | Opcional | Especifica o estado da funcionalidade do servidor. Os valores válidos são:
|
server_settings | object | Opcional | Configurações que configuram o servidor HTTP integrado do encaminhador, que pode ser usado para configurar opções de balanceamento de carga e alta disponibilidade para coleta de syslog no Linux. |
server_settings.state | enum | Opcional | Especifica o estado da funcionalidade do servidor. Os valores válidos são:
|
server_settings.graceful_timeout | número inteiro | Opcional | O número de segundos após os quais o encaminhador retorna uma verificação de prontidão/integridade ruim e ainda aceita novas conexões. Esse também é o tempo de espera entre o recebimento de um sinal de parada e o início do desligamento do próprio servidor. Isso permite que o balanceador de carga tenha tempo para remover o encaminhador do pool. O valor padrão é 15 . |
server_settings.drain_timeout | número inteiro | Opcional | O número de segundos após os quais o encaminhador aguarda que as conexões ativas sejam fechadas por conta própria antes de serem fechadas pelo servidor. O valor padrão é 10 . |
server_settings.http_settings.port | número inteiro | Opcional | O número da porta em que o servidor HTTP detecta as verificações de integridade
do balanceador de carga. Precisa ser entre 1024 e 65535. O padrão é 8080 . |
server_settings.http_settings.host | string | Opcional | O endereço IP ou o nome do host que pode ser resolvido em endereços IP
que o servidor precisa escutar. O valor padrão é 0.0.0.0 (o sistema local). |
server_settings.http_settings.read_timeout | número inteiro | Opcional | O número máximo de segundos permitido para ler solicitações inteiras, incluindo o cabeçalho e o corpo. O valor padrão é 3 . |
server_settings.http_settings.read_header_timeout | número inteiro | Opcional | O número máximo de segundos permitido para ler cabeçalhos de solicitação. O valor padrão é 3 . |
server_settings.http_settings.write_timeout | número inteiro | Opcional | O número máximo de segundos permitidos para enviar uma resposta. O valor padrão é 3 . |
server_settings.http_settings.idle_timeout | número inteiro | Opcional | O número máximo de segundos para aguardar a próxima solicitação quando as
conexões ociosas estão ativadas. O padrão é 3 . |
server_settings.http_settings.route_settings.available_status_code | número inteiro | Opcional | O código de status retornado quando uma verificação de atividade é recebida e o encaminhador está disponível. O padrão é 204 . |
server_settings.http_settings.route_settings.ready_status_code | número inteiro | Opcional | O código de status retornado quando o encaminhador está pronto para aceitar
tráfego. O padrão é 204 . |
server_settings.http_settings.route_settings.unready_status_code | número inteiro | Opcional | O código de status retornado quando o encaminhador não está pronto para aceitar
tráfego. O padrão é 503 . |
Referência dos métodos da API Collector
Esta seção descreve os endpoints para trabalhar com coletores.
Ao criar e atualizar coletores, observe que cada configuração pode especificar configurações de ingestão para um, mas não mais de um, dos seguintes itens:
- Dados de arquivos de registros
- Tópicos do Kafka
- Dados de pacote (pcap)
- Dados do Splunk
- Dados do Syslog
Para endpoints de trabalho com encaminhadores, consulte a Referência da API Forwarder.
Criar coletor
Cria um novo coletor na conta do Google SecOps. Os valores de configuração dos coletores precisam ser especificados usando "Criar coletor" depois de usar "Criar encaminhador".
Para determinadas configurações, os valores de configuração ausentes ou iguais a zero no corpo da solicitação são definidos como valores padrão. Para detalhes sobre os campos e valores de configuração do coletor, consulte Campos de configuração do coletor.
Solicitação
POST https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Corpo da solicitação
{
"display_name": string,
"config": {
object (CollectorConfig)
}
"state": enum
}
Parâmetros do corpo
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
display_name | string | Obrigatório | O nome do coletor. Esse nome é exibido na interface do Google SecOps. |
config | object | Obrigatório | As configurações de configuração para este coletor. Consulte Campos de configuração do coletor. |
estado | enum | Opcional | Especifica o estado atual do coletor. Os valores válidos são:
|
Exemplo de solicitação
Este exemplo mostra os pares de chave:valor obrigatórios em uma solicitação de criação de coletor. Para campos não fornecidos, os valores padrão são aplicados durante a criação do coletor.
Neste exemplo, o tipo de coletor é file
. Portanto, a configuração do coletor inclui file_settings
para indicar o tipo de coletor e as configurações dele. Se o tipo de coletor for syslog
, a configuração dele vai incluir syslog_settings
. Para mais informações, consulte
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 a solicitação for bem-sucedida, a resposta vai retornar um código de status HTTP 200 (OK).
A resposta mostra os valores de configuração aplicados durante a criação do coletor. Os valores de configuração padrão são aplicados a determinadas configurações durante a criação de recursos se esses campos estiverem ausentes ou com valor zero no corpo da solicitação. Para mais detalhes, consulte Campos de configuração do coletor.
Campos de resposta
Além dos campos especificados na solicitação e dos campos em que os valores padrão são aplicados, a resposta inclui os seguintes campos:
Campo | Tipo | Descrição |
---|---|---|
name | 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 retornada para o exemplo de solicitação acima.
{
"name": "forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56/collectors/
98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
Receber coletor
Retorna um coletor.
Solicitação
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Corpo da solicitação
Não inclua um corpo de solicitação.
Exemplo de solicitação
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 atuais do encaminhador especificado.
Solicitação
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Exemplo de solicitação
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
Resposta
Retorna 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"
}
}
]
}
Atualizar coletor
Ao atualizar um coletor com a API, você pode substituir toda a configuração ou apenas campos específicos. Em geral, é melhor substituir campos específicos, para evitar substituir acidentalmente todos os seus dados. Para substituir campos específicos, forneça um FieldMask à sua solicitação de atualização.
Para fornecer uma FieldMask e atualizar o nome de exibição de um coletor, forneça o parâmetro de consulta de URL updateMask na solicitação de patch. Exemplo:
?updateMask=displayName
O corpo da solicitação só deve conter os campos que você quer atualizar (nos locais exatos).
Solicitação
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}?updateMask=<field_1,field_2>
Corpo da solicitação
{
"display_name": string,
"config": {
object (CollectorConfig)
},
}
Parâmetros do corpo
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
displayName | string | Obrigatório | O nome do coletor. Esse nome é exibido na interface do Google SecOps. |
config | object | Opcional | As configurações de configuração para este encaminhador. Consulte Campos de configuração do coletor. |
Exemplo de solicitação
Este é um exemplo de solicitação "Update Collector" em que a solicitação 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 retornada para o exemplo de solicitação 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"
}
Excluir coletor
Exclui um coletor.
Solicitação
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Corpo da solicitação
Não inclua um corpo de solicitação.
Exemplo de solicitação
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, "Delete Collector" vai retornar uma resposta vazia com um código de status HTTP 200 (OK).
{}
Campos de configuração do coletor
Os campos a seguir podem ser fornecidos no objeto config
do corpo da solicitação.
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
log_type | string | Obrigatório | Um tipo de registro compatível (que pode ser ingerido pelo Google SecOps). Para conferir uma lista de
tipos de registros compatíveis com um analisador do Google SecOps, consulte a coluna
"Ingestion Label" na página Analisadores padrão
compatíveis. Para conferir uma
lista completa de tipos de registros compatíveis, use o endpoint logtypes .
|
metadata.asset_namespace | object | Opcional | O namespace para identificar registros desse coletor. Observação:essa é uma configuração global que se aplica ao encaminhador e aos coletores dele, a menos que seja substituída no nível do coletor. Para mais informações, consulte Configurar namespaces. |
metadata.labels | list | Opcional | Uma lista de pares de chave:valor arbitrários que podem ser especificados na
configuração do coletor. Observação:essa é uma configuração global que se aplica ao encaminhador e aos coletores dele, a menos que seja substituída no nível do coletor. |
metadata.labels.key | string | Opcional | A chave de um campo na lista de rótulos de metadados. |
metadata.labels.value | string | Opcional | O valor de um campo na lista de rótulos de metadados. |
regex_filters.description | string | Opcional | Descreve o que está sendo filtrado e por quê. |
regex_filters.regexp | string | Opcional | A expressão regular usada para corresponder a cada linha recebida. |
regex_filters.behavior | enum | Opcional | Especifica o estado da funcionalidade do servidor. Os valores válidos são:
|
disk_buffer.state | enum | Opcional | Especifica o estado de buffer do disco para o coletor. Os valores válidos são:
|
disk_buffer.directory_path | string | Opcional | O caminho do diretório para arquivos gravados. |
disk_buffer.max_file_buffer_bytes | número inteiro | Opcional | O tamanho máximo do arquivo em buffer. |
max_seconds_per_batch | número inteiro | Opcional | O número de segundos entre os lotes. O padrão é 10 . |
max_bytes_per_batch | número inteiro | Opcional | O número de bytes em fila antes do upload em lote do encaminhador. O padrão é 1048576 . |
<collector_type>_settings.<fields> | Obrigatório | Especifica um tipo de coletor e as configurações dele. Cada coletor precisa especificar um tipo e os campos dele. Por exemplo, para usar o tipo de coletor file , o campo file_settings.file_path precisa ser adicionado à configuração e receber um valor. Por exemplo:"file_settings": { Os tipos de coletor e os campos deles estão listados nas linhas subsequentes desta tabela. Os tipos de coletor disponíveis são:
|
|
file_settings.file_path | string | Opcional | O caminho do arquivo a ser monitorado. |
kafka_settings.authentication.username | string | Opcional | O nome de usuário de uma identidade usada para autenticação. |
kafka_settings.authentication.password | string | Opcional | A senha da conta identificada pelo nome de usuário. |
kafka_settings.topic | string | Opcional | O tópico do Kafka de onde ingerir dados. Para mais detalhes, consulte Coletar dados de tópicos do Kafka. |
kafka_settings.group_id | string | Opcional | Um ID de grupo. |
kafka_settings.timeout | número inteiro | Opcional | O número máximo de segundos que uma discagem vai aguardar para que uma conexão seja
concluída. O padrão é 60 . |
kafka_settings.brokers | string | Opcional | Uma string repetida que lista agentes do Kafka. Por exemplo: "broker-1:9092", "broker-2:9093" Observação:todos os valores são substituídos durante uma operação de atualização. Portanto, para atualizar uma lista de corretores e adicionar um novo, especifique todos os corretores atuais e o novo. |
kafka_settings.tls_settings.certificate | string | Opcional | O caminho e o nome do arquivo do certificado. Por exemplo:/path/to/cert.pem |
kafka_settings.tls_settings.certificate_key | string | Opcional | O caminho e o nome do arquivo da chave do certificado. Por exemplo:/path/to/cert.key |
kafka_settings.tls_settings.minimum_tls_version | string | Opcional | A versão mínima de TLS. |
kafka_settings.tls_settings.insecure_skip_verify | bool | Opcional | Se true , ativa a verificação da certificação SSL.O padrão é false . |
pcap_settings.network_interface | string | Opcional | A interface para detectar dados PCAP. |
pcap_settings.bpf | string | Opcional | O filtro de pacote Berkeley (BPF, na sigla em inglês) para pcap. |
splunk_settings.authentication.username | string | Opcional | O nome de usuário de uma identidade usada para autenticação. |
splunk_settings.authentication.password | string | Opcional | A senha da conta identificada pelo nome de usuário. |
splunk_settings.host | string | Opcional | O host ou endereço IP da API REST do Splunk. |
splunk_settings.port | número inteiro | Opcional | A porta da API REST do Splunk. |
splunk_settings.minimum_window_size | número inteiro | Opcional | O período mínimo em segundos para uma determinada pesquisa do Splunk. Para mais detalhes, consulte Coletar dados do Splunk. O padrão é 10 . |
splunk_settings.maximum_window_size | número inteiro | Opcional | O período máximo em segundos para uma determinada pesquisa do Splunk. Para mais detalhes, consulte Coletar dados do Splunk. O padrão é 30 . |
splunk_settings.query_string | string | Opcional | A consulta usada para filtrar registros no Splunk. Por exemplo: search index=* sourcetype=dns |
splunk_settings.query_mode | string | Opcional | O modo de consulta do Splunk. Por exemplo: realtime |
splunk_settings.cert_ignored | bool | Opcional | Se true , o certificado será ignorado. |
syslog_settings.protocol | enum | Opcional | Especifica o protocolo que o coletor vai usar para detectar dados do syslog. Os valores válidos são:
|
syslog_settings.address | string | Opcional | O endereço IP ou nome do host de destino em que o coletor reside e aguarda dados de syslog. |
syslog_settings.port | número inteiro | Opcional | A porta de destino em que o coletor reside e detecta dados de syslog. |
syslog_settings.buffer_size | número inteiro | Opcional | O tamanho em bytes do buffer do soquete TCP. O padrão para TCP é 65536 .O padrão para UDP é 8192 . |
syslog_settings.connecton_timeout | número inteiro | Opcional | O número de segundos de inatividade após os quais a conexão TCP é descartada. O padrão é 60 . |
syslog_settings.tls_settings.certificate | string | Opcional | O caminho e o nome do arquivo do certificado. Por exemplo:/path/to/cert.pem |
syslog_settings.tls_settings.certificate_key | string | Opcional | O caminho e o nome do arquivo da chave do certificado. Por exemplo:/path/to/cert.key |
syslog_settings.tls_settings.minimum_tls_version | string | Opcional | A versão mínima de TLS. |
syslog_settings.tls_settings.insecure_skip_verify | bool | Opcional | Se true , ativa a verificação da certificação SSL.O padrão é false . |