API de Forwarder Management
Puedes usar la API de Google Security Operations Forwarder Management para hacer lo siguiente de manera programática:
- Crear y administrar reenvío
- Crear y administrar agentes de recopilación
- Obtén el contenido de los archivos de configuración (
.conf
) y de autenticación (_auth.conf
) de un reenviador de Google Security Operations.
Los reenviadores se componen de uno o más agentes de recopilación. La configuración de cada recopilador especifica su mecanismo de transferencia (por ejemplo, archivo, Kafka, PCAP, Splunk o Syslog) y el tipo de registro.
Si se cumplen los requisitos de hardware, puedes usar muchos recopiladores en el mismo reenviador para transferir datos de una variedad de mecanismos y tipos de registros. Por ejemplo, puedes instalar un reenviador con dos recopiladores de syslog que escuchen los datos de PAN_FIREWALL y CISCO_ASA_FIREWALL en puertos separados, respectivamente.
La API te permite crear reenviadores y sus recopiladores en tu instancia de Google Security Operations. Una vez que se crea un reenviador, puedes usar el extremo Generate Forwarder Files para obtener el contenido del archivo (como carga útil JSON) para los archivos de configuración (.conf
) y autenticación (_auth.conf
) de un reenviador. Luego, este contenido se puede escribir en sus respectivos archivos .conf
para la implementación con el servicio de reenvío de operaciones de seguridad de Google en un sistema Windows o Linux.
Para ver ejemplos de Python que usan la API de Forwarder Management, consulta el repositorio de GitHub.
Crea un reenviador y sus recopiladores
Se debe crear un reenviador antes de crear cualquiera de sus recopiladores.
Para crear un reenviador y sus recopiladores, haz lo siguiente:
- Crea un reenviador.
- Crea un recopilador para el reenviador.
- (Opcional) Repite el paso 2 para agregar más recopiladores.
Cómo autenticarse con la API de Google Security Operations
Esta API de Google Security Operations usa el protocolo OAuth 2.0 para la autenticación y la autorización. Tu aplicación puede completar estas tareas con cualquiera de las siguientes implementaciones:
Usa la biblioteca cliente de la API de Google para tu lenguaje de programación.
Interfaz directa con el sistema de OAuth 2.0 a través de HTTP
Consulta la documentación de referencia de la biblioteca de autenticación de Google en Python.
Las bibliotecas de Google Authentication son un subconjunto de las bibliotecas cliente de la API de Google. Consulta otras implementaciones de lenguaje.
Cómo obtener credenciales de autenticación de la API
Tu representante de Operaciones de seguridad de Google te proporcionará una credencial de cuenta de servicio de desarrollador de Google para que el cliente de la API pueda comunicarse con ella.
También debes proporcionar el alcance de autenticación cuando inicialices tu cliente de API. OAuth 2.0 usa un permiso para limitar el acceso de una aplicación a una cuenta. Cuando una aplicación solicita un permiso, el token de acceso que se le emite se limita al permiso otorgado.
Usa el siguiente permiso para inicializar tu cliente de la API de Google:
https://www.googleapis.com/auth/chronicle-backstory
Ejemplo de Python
En el siguiente ejemplo de Python, se muestra cómo usar las credenciales de OAuth2 y el cliente HTTP con google.oauth2
y 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 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/
Límites de consulta de la API de Chronicle
La API de Chronicle aplica límites en el volumen de solicitudes que puede realizar cualquier cliente a la plataforma de Security Operations de Google. Si alcanzas o superas el límite de consultas, el servidor de la API de Chronicle muestra HTTP 429 (RESOURCE_EXHAUSTED) al llamador. Cuando desarrolles aplicaciones para la API de Chronicle, Google recomienda que apliques límites de frecuencia en tu sistema para evitar el agotamiento de los recursos. Estos límites se aplican a todas las APIs de Chronicle, incluidas las de Search, Forwarder Management y Tooling.
Consulta la lista detallada de los límites de consulta de la API de Chronicle.
Se aplica el siguiente límite para la API de Chronicle Forwarder Management, que se mide en consultas por segundo (QPS):
API de Chronicle | Extremo de la API | Límite |
Administración de transportistas | Cómo crear un reenviador | 1 QPS |
Obtener servidor de reenvío | 1 QPS | |
Enumera los servidores de reenvío | 1 QPS | |
Actualiza el remitente | 1 QPS | |
Borrar remitente | 1 QPS | |
Administración de coleccionistas | Crear colector | 1 QPS |
Cómo obtener el recopilador | 1 QPS | |
Enumerar recopiladores | 1 QPS | |
Actualiza el recopilador | 1 QPS | |
Borrar recopilador | 1 QPS |
Referencia de la API de reenvío
En esta sección, se describen los extremos para crear y administrar reenvío. Para obtener información sobre los extremos para crear y administrar recopiladores, consulta la referencia de la API de Collector.
Cómo crear un reenviador
Crea un reenviador nuevo en la instancia de Google SecOps. El nuevo reenviador incluirá los valores de configuración de reenviador que se proporcionen en el cuerpo de la solicitud. Los valores de configuración de los recopiladores se deben especificar con Create Collector después de usar Create Forwarder.
Para ciertos parámetros de configuración, los valores de configuración que faltan o que tienen un valor de cero en el cuerpo de la solicitud se establecen en valores predeterminados. Para obtener detalles sobre los campos y valores de reenvío, consulta Campos de configuración del reenviador.
Solicitud
POST https://backstory.googleapis.com/v2/forwarders
Cuerpo de la solicitud
{
"display_name": string,
"config": {
object (ForwarderConfig)
}
}
Parámetros del cuerpo
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
display_name | string | Obligatorio | Es el nombre del remitente. Este nombre se muestra en la interfaz de Google SecOps. |
config | objeto | Opcional | La configuración de este reenvío Consulta Campos de configuración del reenviador. |
Ejemplo de solicitud
En este ejemplo, se muestran los pares clave-valor obligatorios en una solicitud Create Forwarder. Si no se especifica un campo en la solicitud y tiene un valor predeterminado, se aplica el valor predeterminado durante la creación del reenviador. Para obtener detalles sobre los valores predeterminados, consulta Campos de configuración del reenviador.
POST https://backstory.googleapis.com/v2/forwarders
{
"display_name": "chronicle_forwarder"
}
Respuesta
Si la solicitud se realiza correctamente, la respuesta muestra un código de estado HTTP de 200 (OK).
La respuesta muestra los valores de configuración aplicados durante la creación del redireccionamiento. Los valores de configuración predeterminados se aplican a ciertos parámetros de configuración durante la creación de recursos si faltan esos campos o tienen un valor de cero en el cuerpo de la solicitud. Para obtener más información, consulta Campos de configuración del reenviador.
Campos de respuesta
Además de los campos especificados en la solicitud y los campos para los que se aplican valores predeterminados, la respuesta incluye los siguientes campos generados y solo de salida.
Campo | Tipo | Descripción |
---|---|---|
name | string | Es el ID de recurso del remitente. El formato es “forwarders/forwarderID”. Por ejemplo: forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56 |
state | enum | Especifica el estado actual del reenviador. Estos son los valores válidos:
El valor predeterminado es ACTIVE. |
Ejemplo de respuesta
Este es un ejemplo de la respuesta que se muestra para el ejemplo de solicitud anterior.
{
"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"
}
Obtener servidor de reenvío
Muestra un reenviador.
Solicitud
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Cuerpo de la solicitud
No incluyas un cuerpo de solicitud.
Ejemplo de solicitud
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Ejemplo de respuesta
{
"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"
}
Enumera los servidores de reenvío
Muestra una lista de todos los reenvíos de una instancia de SecOps de Google.
Solicitud
GET https://backstory.googleapis.com/v2/forwarders
Ejemplo de solicitud
GET https://backstory.googleapis.com/v2/forwarders
Respuesta
Muestra una lista de reenviadores.
Ejemplo de respuesta
{
"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"
}
]
}
Actualiza el remitente
Para actualizar un reenviador, usa el parámetro de consulta de URL updateMask
para especificar los campos que se actualizarán.
Por ejemplo, para actualizar el nombre visible, usarías el parámetro de consulta updateMask
de la siguiente manera en la solicitud de parche:
?updateMask=displayName
El cuerpo de la solicitud solo debe contener los campos que deseas actualizar (en sus ubicaciones exactas).
Solicitud
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}?updateMask=<field_1,field_2>
Cuerpo de la solicitud
{
"display_name": string,
"config": {
object (ForwarderConfig)
},
}
Parámetros del cuerpo
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
display_name | string | Obligatorio | Es el nombre del remitente. Este nombre se muestra en la interfaz de Google SecOps. |
config | objeto | Opcional | La configuración de este reenvío Consulta Campos de configuración del reenviador. |
Ejemplo de solicitud
Este es un ejemplo de una solicitud de reenvío de actualizaciones en la que se especifican valores nuevos para displayName
y se agrega una etiqueta de metadatos.
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",
}
]
}
}
}
Ejemplo de respuesta
Este es un ejemplo de la respuesta que se muestra para el ejemplo de solicitud anterior.
{
"name": "forwarders/{forwarderUUID}",
"displayName": "UpdatedForwarder",
"config": {
"uploadCompression": "false",
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate"
}
]
}
},
"state": "ACTIVE"
}
Borrar remitente
Borra un remitente.
Solicitud
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Cuerpo de la solicitud
No incluyas un cuerpo de solicitud.
Ejemplo de solicitud
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Ejemplo de respuesta
Si la operación se realiza correctamente, Delete Forwarder muestra una respuesta vacía con un código de estado HTTP 200 (OK).
{}
Genera archivos de reenvío
Genera y muestra el contenido de los archivos de configuración (.conf
) y autenticación (_auth.conf
) del reenviador.
Solicitud
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}:generateForwarderFiles
Cuerpo de la solicitud
No incluyas un cuerpo de solicitud.
Ejemplo de solicitud
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56:generateForwarderFiles
Ejemplo de respuesta
Si la operación se realiza correctamente, muestra un código de estado HTTP 200 (OK). También muestra el contenido de un archivo de configuración de reenvío, incluidos los datos de configuración de los recopiladores del reenvío, así como el contenido del archivo de autenticación (_auth.conf
) que usa el reenvío para autenticarse con la instancia de SecOps de Google.
Campos de configuración del reenviador
En la siguiente tabla, se enumeran los parámetros de configuración del reenvío que puedes especificar con las opciones Crear reenvío y Actualizar reenvío. Si no especificas un valor para un parámetro de configuración cuando usas Create Forwarder, se aplica el valor predeterminado del parámetro (que se muestra a continuación).
Los siguientes campos se pueden proporcionar en el objeto config
del cuerpo de la solicitud.
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
upload_compression | bool | Opcional | Si es true , los lotes de datos se comprimen antes de la carga.El valor predeterminado es false . |
metadata.asset_namespace | string | Opcional | Es el espacio de nombres para identificar los registros de este reenviador. Nota: Este es un parámetro de configuración global que se aplica al reenviador y a los recolectores del reenviador, a menos que se anule a nivel del recolector. Para obtener más información, consulta Configura espacios de nombres. |
metadata.labels | lista | Opcional | Es una lista de pares clave-valor arbitrarios que se pueden especificar en la configuración del reenviador. Nota: Este es un parámetro de configuración global que se aplica al reenviador y a los recolectores del reenviador, a menos que se anule a nivel del recolector. |
metadata.labels.key | string | Opcional | Es la clave de un campo en la lista de etiquetas de metadatos. |
metadata.labels.value | string | Opcional | Es el valor de un campo en la lista de etiquetas de metadatos. |
regex_filters.description | string | Opcional | Describe qué se filtra y por qué. |
regex_filters.regexp | string | Opcional | Es la expresión regular que se usa para hacer coincidir cada línea entrante. |
regex_filters.behavior | enum | Opcional | Especifica el estado de la funcionalidad del servidor. Los valores válidos son los siguientes:
|
server_settings | objeto | Opcional | Configuración que configura el servidor HTTP integrado del reenviador, que se puede usar para configurar opciones de balanceo de cargas y alta disponibilidad para la recopilación de syslog en Linux. |
server_settings.state | enum | Opcional | Especifica el estado de la funcionalidad del servidor. Los valores válidos son los siguientes:
|
server_settings.graceful_timeout | número entero | Opcional | Es la cantidad de segundos después de los cuales el reenviador muestra una verificación de estado o preparación incorrecta y aún acepta conexiones nuevas. Este también es el tiempo de espera entre recibir una señal de detención y comenzar el apagado del servidor. Esto le da tiempo al balanceador de cargas para quitar el reenviador del grupo. El valor predeterminado es 15 . |
server_settings.drain_timeout | número entero | Opcional | Es la cantidad de segundos después de los cuales el reenviador espera a que las conexiones activas se cierren correctamente por sí solas antes de que el servidor las cierre. El valor predeterminado es 10 . |
server_settings.http_settings.port | número entero | Opcional | Es el número de puerto en el que el servidor HTTP escucha las verificaciones de estado del balanceador de cargas. Debe estar entre 1024 y 65535. El valor predeterminado es 8080 . |
server_settings.http_settings.host | string | Opcional | Es la dirección IP o el nombre de host que se puede resolver en direcciones IP que el servidor debe escuchar. El valor predeterminado es 0.0.0.0 (el sistema local). |
server_settings.http_settings.read_timeout | número entero | Opcional | Es la cantidad máxima de segundos permitidos para leer solicitudes completas, lo que incluye el encabezado y el cuerpo. El valor predeterminado es 3 . |
server_settings.http_settings.read_header_timeout | número entero | Opcional | Es la cantidad máxima de segundos permitidos para leer los encabezados de solicitud. El valor predeterminado es 3 . |
server_settings.http_settings.write_timeout | número entero | Opcional | Es la cantidad máxima de segundos que se permite para enviar una respuesta. El valor predeterminado es 3 . |
server_settings.http_settings.idle_timeout | número entero | Opcional | Es la cantidad máxima de segundos que se espera para la siguiente solicitud cuando las conexiones inactivas están habilitadas. El valor predeterminado es 3 . |
server_settings.http_settings.route_settings.available_status_code | número entero | Opcional | Es el código de estado que se muestra cuando se recibe una verificación de estado y el reenviador está disponible. El valor predeterminado es 204 . |
server_settings.http_settings.route_settings.ready_status_code | número entero | Opcional | Es el código de estado que se muestra cuando el reenviador está listo para aceptar tráfico. El valor predeterminado es 204 . |
server_settings.http_settings.route_settings.unready_status_code | número entero | Opcional | Es el código de estado que se muestra cuando el reenviador no está listo para aceptar tráfico. El valor predeterminado es 503 . |
Referencia de la API de Collector
En esta sección, se describen los extremos para trabajar con los recopiladores.
Cuando crees y actualices los recopiladores, ten en cuenta que cada configuración de recopilador puede especificar la configuración de transferencia para uno, pero no más de uno, de los siguientes elementos:
- Datos de archivos de registro
- Temas de Kafka
- Datos de paquetes (pcap)
- Datos de Splunk
- Datos de Syslog
Para obtener información sobre los extremos para trabajar con reenviadores, consulta la referencia de la API de Forwarder.
Crear colector
Crea un nuevo recopilador en la cuenta de SecOps de Google. Los valores de configuración para los colectores se deben especificar con Create Collector después de usar Create Forwarder.
Para ciertos parámetros de configuración, los valores de configuración que faltan o que tienen un valor de cero en el cuerpo de la solicitud se establecen en valores predeterminados. Para obtener detalles sobre los campos y valores de configuración del recopilador, consulta Campos de configuración del recopilador.
Solicitud
POST https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Cuerpo de la solicitud
{
"display_name": string,
"config": {
object (CollectorConfig)
}
"state": enum
}
Parámetros del cuerpo
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
display_name | string | Obligatorio | Es el nombre del colector. Este nombre se muestra en la interfaz de Google SecOps. |
config | objeto | Obligatorio | La configuración de este recopilador Consulta Campos de configuración del colector. |
state | enum | Opcional | Especifica el estado actual del recopilador. Estos son los valores válidos:
|
Ejemplo de solicitud
En este ejemplo, se muestran los pares clave-valor obligatorios en una solicitud de Create Collector. Para los campos que no se proporcionan, se aplican valores predeterminados durante la creación del recopilador.
En este ejemplo, el tipo de recopilador es file
, por lo que la configuración del recopilador incluye file_settings
para indicar el tipo de recopilador y su configuración. Si el tipo de recopilador es syslog
, la configuración del recopilador incluye syslog_settings
. Para obtener más información, consulta Campos de configuración del recopilador.
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",
}
}
}
Respuesta
Si la solicitud se realiza correctamente, la respuesta muestra un código de estado HTTP de 200 (OK).
La respuesta muestra los valores de configuración aplicados durante la creación del recopilador. Los valores de configuración predeterminados se aplican a ciertos parámetros de configuración durante la creación de recursos si faltan esos campos o tienen un valor de cero en el cuerpo de la solicitud. Para obtener más información, consulta Campos de configuración del recopilador.
Campos de respuesta
Además de los campos especificados en la solicitud y los campos para los que se aplican valores predeterminados, la respuesta incluye los siguientes campos:
Campo | Tipo | Descripción |
---|---|---|
name | string | Es el ID de recurso del recopilador. El formato es “forwarders/{forwarderID}/collectors/{collectorID}”. Por ejemplo:forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56 |
Ejemplo de respuesta
Este es un ejemplo de la respuesta que se muestra para el ejemplo de solicitud anterior.
{
"name": "forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56/collectors/
98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
Cómo obtener el recopilador
Muestra un recopilador.
Solicitud
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Cuerpo de la solicitud
No incluyas un cuerpo de solicitud.
Ejemplo de solicitud
GET
https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Ejemplo de respuesta
{
"name": "?",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
Enumerar recopiladores
Muestra una lista de los recopiladores existentes para el reenviador especificado.
Solicitud
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Ejemplo de solicitud
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
Respuesta
Muestra varios recopiladores.
Ejemplo de respuesta
{
"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"
}
}
]
}
Actualiza el recopilador
Cuando actualizas un recopilador con la API, puedes elegir reemplazar toda la configuración del recopilador o reemplazar solo campos específicos de la configuración del recopilador. Por lo general, es mejor reemplazar campos específicos, por lo que evitas reemplazar de forma accidental todos tus datos. Para reemplazar campos específicos, proporciona una FieldMask a tu solicitud de actualización.
Para proporcionar un FieldMask que actualice el nombre visible de un recopilador, proporciona el parámetro de consulta de URL updateMask en la solicitud de parche. Por ejemplo:
?updateMask=displayName
El cuerpo de la solicitud solo debe contener los campos que deseas actualizar (en sus ubicaciones exactas).
Solicitud
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}?updateMask=<field_1,field_2>
Cuerpo de la solicitud
{
"display_name": string,
"config": {
object (CollectorConfig)
},
}
Parámetros del cuerpo
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
displayName | string | Obligatorio | Es el nombre del colector. Este nombre se muestra en la interfaz de Google SecOps. |
config | objeto | Opcional | La configuración de este reenvío Consulta Campos de configuración del colector. |
Ejemplo de solicitud
Este es un ejemplo de una solicitud de Update Collector en la que se especifican valores nuevos para displayName, logType, assetNamespace y 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",
}
}
}
Ejemplo de respuesta
Este es un ejemplo de la respuesta que se muestra para el ejemplo de solicitud anterior.
{
"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"
}
Borrar recopilador
Borra un recopilador.
Solicitud
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Cuerpo de la solicitud
No incluyas un cuerpo de solicitud.
Ejemplo de solicitud
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Ejemplo de respuesta
Si la operación se realiza correctamente, Delete Collector muestra una respuesta vacía con un código de estado HTTP 200 (OK).
{}
Campos de configuración del colector
Los siguientes campos se pueden proporcionar en el objeto config
del cuerpo de la solicitud.
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
log_type | string | Obligatorio | Un tipo de registro compatible (uno que Google SecOps pueda transferir). Para obtener una lista de los tipos de registros compatibles para los que Google SecOps tiene un analizador, consulta la columna Etiqueta de transferencia en la página Análisis predeterminados compatibles. Para obtener una lista completa de los tipos de registros admitidos, usa el extremo logtypes .
|
metadata.asset_namespace | objeto | Opcional | Es el espacio de nombres para identificar los registros de este recopilador. Nota: Este es un parámetro de configuración global que se aplica al reenviador y a los recolectores del reenviador, a menos que se anule a nivel del recolector. Para obtener más información, consulta Configura espacios de nombres. |
metadata.labels | lista | Opcional | Es una lista de pares clave-valor arbitrarios que se pueden especificar en la configuración del recopilador. Nota: Este es un parámetro de configuración global que se aplica al reenviador y a los recolectores del reenviador, a menos que se anule a nivel del recolector. |
metadata.labels.key | string | Opcional | Es la clave de un campo en la lista de etiquetas de metadatos. |
metadata.labels.value | string | Opcional | Es el valor de un campo en la lista de etiquetas de metadatos. |
regex_filters.description | string | Opcional | Describe qué se filtra y por qué. |
regex_filters.regexp | string | Opcional | Es la expresión regular que se usa para hacer coincidir cada línea entrante. |
regex_filters.behavior | enum | Opcional | Especifica el estado de la funcionalidad del servidor. Los valores válidos son los siguientes:
|
disk_buffer.state | enum | Opcional | Especifica el estado de almacenamiento en búfer en el disco para el recopilador. Estos son los valores válidos:
|
disk_buffer.directory_path | string | Opcional | Es la ruta de acceso del directorio para los archivos escritos. |
disk_buffer.max_file_buffer_bytes | número entero | Opcional | Es el tamaño máximo del archivo almacenado en búfer. |
max_seconds_per_batch | número entero | Opcional | Es la cantidad de segundos entre lotes. El valor predeterminado es 10 . |
max_bytes_per_batch | número entero | Opcional | Es la cantidad de bytes en fila antes de la carga por lotes del reenviador. El valor predeterminado es 1048576 . |
<collector_type>_settings.<fields> | Obligatorio | Especifica un tipo de recopilador y su configuración. Cada recopilador debe especificar un tipo de recopilador y sus campos. Por ejemplo, para usar el tipo de recopilador file , se debe agregar el campo file_settings.file_path a la configuración y asignarle un valor. Por ejemplo:"file_settings": { Los tipos de recopilador y sus campos se enumeran en las filas posteriores de esta tabla. Los tipos de recopilador disponibles son los siguientes:
|
|
file_settings.file_path | string | Opcional | Es la ruta del archivo que se supervisará. |
kafka_settings.authentication.username | string | Opcional | Es el nombre de usuario de una identidad que se usa para la autenticación. |
kafka_settings.authentication.password | string | Opcional | Es la contraseña de la cuenta identificada por el nombre de usuario. |
kafka_settings.topic | string | Opcional | El tema de Kafka desde el que se transferirán los datos. Para obtener más información, consulta Cómo recopilar datos de temas de Kafka. |
kafka_settings.group_id | string | Opcional | Un ID de grupo. |
kafka_settings.timeout | número entero | Opcional | Es la cantidad máxima de segundos que esperará un marcado para que se complete una conexión. El valor predeterminado es 60 . |
kafka_settings.brokers | string | Opcional | Es una cadena repetida que enumera los agentes de Kafka. Por ejemplo: "broker-1:9092", "broker-2:9093" Nota: Todos los valores se reemplazan durante una operación de actualización. Por lo tanto, para actualizar una lista de agentes y agregar uno nuevo, especifica todos los agentes existentes y el nuevo. |
kafka_settings.tls_settings.certificate | string | Opcional | La ruta de acceso y el nombre del archivo del certificado. Por ejemplo:/path/to/cert.pem |
kafka_settings.tls_settings.certificate_key | string | Opcional | La ruta de acceso y el nombre de archivo de la clave del certificado Por ejemplo:/path/to/cert.key |
kafka_settings.tls_settings.minimum_tls_version | string | Opcional | La versión mínima de TLS. |
kafka_settings.tls_settings.insecure_skip_verify | bool | Opcional | Si es true , habilita la verificación de certificación SSL.El valor predeterminado es false . |
pcap_settings.network_interface | string | Opcional | Es la interfaz para escuchar los datos de PCAP. |
pcap_settings.bpf | string | Opcional | El filtro de paquetes de Berkeley (BPF) para pcap. |
splunk_settings.authentication.username | string | Opcional | Es el nombre de usuario de una identidad que se usa para la autenticación. |
splunk_settings.authentication.password | string | Opcional | Es la contraseña de la cuenta identificada por el nombre de usuario. |
splunk_settings.host | string | Opcional | El host o la dirección IP de la API de REST de Splunk. |
splunk_settings.port | número entero | Opcional | Es el puerto de la API de REST de Splunk. |
splunk_settings.minimum_window_size | número entero | Opcional | Es el período mínimo en segundos para una búsqueda determinada de Splunk. Para obtener más información, consulta Cómo recopilar datos de Splunk. El valor predeterminado es 10 . |
splunk_settings.maximum_window_size | número entero | Opcional | Es el intervalo de tiempo máximo en segundos para una búsqueda determinada de Splunk. Para obtener más información, consulta Cómo recopilar datos de Splunk. El valor predeterminado es 30 . |
splunk_settings.query_string | string | Opcional | Es la consulta que se usa para filtrar registros en Splunk. Por ejemplo: search index=* sourcetype=dns |
splunk_settings.query_mode | string | Opcional | Es el modo de consulta de Splunk. Por ejemplo: realtime |
splunk_settings.cert_ignored | bool | Opcional | Si es true , se ignora el certificado. |
syslog_settings.protocol | enum | Opcional | Especifica el protocolo que usará el recopilador para escuchar los datos de syslog. Estos son los valores válidos:
|
syslog_settings.address | string | Opcional | La dirección IP o el nombre de host de destino donde reside el recopilador y escucha los datos de syslog. |
syslog_settings.port | número entero | Opcional | Es el puerto de destino en el que reside el recopilador y escucha los datos de syslog. |
syslog_settings.buffer_size | número entero | Opcional | Es el tamaño en bytes del búfer del socket TCP. El valor predeterminado para TCP es 65536 .El valor predeterminado para UDP es 8192 . |
syslog_settings.connecton_timeout | número entero | Opcional | Es la cantidad de segundos de inactividad después de los cuales se cae la conexión TCP. El valor predeterminado es 60 . |
syslog_settings.tls_settings.certificate | string | Opcional | La ruta de acceso y el nombre del archivo del certificado. Por ejemplo:/path/to/cert.pem |
syslog_settings.tls_settings.certificate_key | string | Opcional | La ruta de acceso y el nombre de archivo de la clave del certificado Por ejemplo:/path/to/cert.key |
syslog_settings.tls_settings.minimum_tls_version | string | Opcional | La versión mínima de TLS. |
syslog_settings.tls_settings.insecure_skip_verify | bool | Opcional | Si es true , habilita la verificación de certificación SSL.El valor predeterminado es false . |