API de Forwarder Management
Puedes usar la API de Google Security Operations Forwarder Management para hacer lo siguiente de manera programática:
- Crea y administra reenviadores.
- Crea y administra recopiladores.
- Obtén el contenido de los archivos de configuración (
.conf
) y de autenticación (_auth.conf
) de un servidor de reenvío de operaciones de seguridad de Google.
Los reenviadores se componen de uno o más recopiladores. La configuración de cada recopilador especifica su mecanismo de transferencia (por ejemplo, File, Kafka, PCAP, Splunk o Syslog) y el tipo de registro.
Si suponemos que se cumplen los requisitos de hardware, puedes usar muchos recopiladores en el mismo servidor de reenvío para transferir datos desde una variedad de mecanismos y tipos de registros. Por ejemplo, puedes instalar un servidor de reenvío con dos colectores syslog que escuchan 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 operaciones de seguridad de Google. Una vez que se crea un reenviador, puedes usar el extremo de generación de archivos de reenvío para obtener el contenido del archivo (como carga útil JSON) de los archivos de configuración (.conf
) y autenticación (_auth.conf
) de un servidor de reenvío. Estos contenidos se pueden escribir en sus respectivos archivos .conf
para su implementación con el servicio de reenvío de operaciones de seguridad de Google en un sistema Windows o Linux.
Para ver muestras de Python que usan la API de Forwarder Management, consulta el repositorio de GitHub.
Crea un servidor de reenvío y sus recopiladores
Se debe crear un servidor de reenvío antes de que se pueda crear cualquiera de sus recopiladores.
Para crear un servidor de reenvío y sus recopiladores, haz lo siguiente:
- Crea un servidor de reenvío.
- Crea un recopilador para el servidor de reenvío.
- (Opcional) Repite el paso 2 para agregar más recopiladores.
Cómo autenticar con la API de Google Security Operations [:#authenticated]
Esta API de Google Security Operations usa el protocolo OAuth 2.0 para la autenticación y autorización. Tu aplicación puede completar estas tareas con cualquiera de las siguientes implementaciones:
Cómo usar la biblioteca cliente de las API de Google para el idioma de tu computadora
Interactuar directamente con el sistema OAuth 2.0 a través de HTTP
Consulta la documentación de referencia de la biblioteca de Google Authentication en Python.
Las bibliotecas de Google Authentication son un subconjunto de las bibliotecas cliente de la API de Google. Consulta otras implementaciones de lenguajes.
Obtén credenciales de autenticación de API
Tu representante de Operaciones de seguridad de Google te proporcionará una credencial de cuenta de servicio de Google Developers para permitir que el cliente de la API se comunique con la API.
También debes proporcionar el permiso de autorización cuando inicialices tu cliente de API. OAuth 2.0 usa un alcance para limitar el acceso de una aplicación a una cuenta. Cuando una aplicación solicita un alcance, el token de acceso emitido para la aplicación se limita al alcance otorgado.
Usa el siguiente alcance 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.oauth2 import service_account
from googleapiclient import _auth
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 an HTTP client to make authorized OAuth requests.
http_client = _auth.authorized_http(credentials)
# <your code continues here>
Límites de consultas de la API de Chronicle
La API de Chronicle aplica límites en el volumen de solicitudes que cualquier cliente puede realizar en la plataforma de operaciones de seguridad 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 aplicar 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.
Se aplica el siguiente límite a la API de Chronicle Forwarder Management y se mide en consultas por segundo (QPS):
API de Chronicle | Extremo de API | Límite |
Administración de reenvíos | Crear reenvíos | 1 QPS |
Obtener Forwarder | 1 QPS | |
Lista de reenvíos | 1 QPS | |
Actualizar reenvíos | 1 QPS | |
Borrar reenvíos | 1 QPS | |
Administración de colectores | Crear recopilador | 1 QPS |
Obtener recopilador | 1 QPS | |
Enumerar recopiladores | 1 QPS | |
Actualizar recopilador | 1 QPS | |
Borrar recopilador | 1 QPS |
Referencia de la API de Forwarder
En esta sección, se describen los extremos para crear y administrar los servidores de reenvío. Si quieres conocer los extremos para crear y administrar recopiladores, consulta la referencia de la API de Collector.
Crear reenvíos
Crea un servidor de reenvío nuevo en la instancia de Google SecOps. El nuevo servidor de reenvío incluirá cualquier valor de configuración de forwarder que se proporcione en el cuerpo de la solicitud. Los valores de configuración de los colectores se deben especificar mediante Crear recopilador después de utilizar Crear reenvío.
Para ciertos parámetros de configuración, los valores de configuración faltantes o con valores cero en el cuerpo de la solicitud se establecen como valores predeterminados. Para obtener detalles sobre los campos y los valores de los servidores de reenvío, consulta Campos de configuración de los servidores de reenvío.
Solicitud
POST https://backstory.googleapis.com/v2/forwarders
Cuerpo de la solicitud
{
"display_name": string,
"config": {
object (ForwarderConfig)
}
}
Parámetros corporales
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
display_name | string | Requeridos | El nombre de la herramienta de reenvío. Este nombre se muestra en la interfaz de Google SecOps. |
config | objeto | Opcional | Los parámetros de configuración de este servidor de reenvío. Consulta Campos de configuración de Forwarder. |
Ejemplo de solicitud
En este ejemplo, se muestran los pares clave-valor necesarios en una solicitud Create Forwarder. Si no se especifica un campo en la solicitud y tiene un valor predeterminado, este se aplica durante la creación del servidor de reenvío. Para obtener detalles sobre los valores predeterminados, consulta Campos de configuración de reenvíos.
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 200 (OK).
La respuesta muestra los valores de configuración aplicados durante la creación del servidor de reenvío. Los valores de configuración predeterminados se aplican para ciertas opciones de configuración durante la creación de recursos si faltan esos campos o si tienen un valor cero en el cuerpo de la solicitud. Para obtener más información, consulta Campos de configuración de reenvíos.
Campos de respuesta
Además de los campos especificados en la solicitud y los campos para los que se aplican los valores predeterminados, la respuesta incluye los siguientes campos generados y de solo salida.
Campo | Tipo | Descripción |
---|---|---|
name | string | El ID de recurso del servidor de reenvío. El formato es "forwarders/forwarderID". Por ejemplo: forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56 |
state | enum. | Especifica el estado actual del servidor de reenvío. Estos son los valores válidos:
El valor predeterminado es ACTIVE. |
Ejemplo de respuesta
Este es un ejemplo de la respuesta devuelta 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 Forwarder
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"
}
Lista de reenvíos
Enumera todos los servidores de reenvío 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"
}
]
}
Actualizar reenvíos
Puedes actualizar un reenviador con el parámetro de consulta de URL updateMask
para especificar los campos que se deben actualizar.
Por ejemplo, para actualizar el nombre visible, deberías usar el parámetro de consulta updateMask
como se indica a continuación 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 corporales
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
display_name | string | Requeridos | El nombre de la herramienta de reenvío. Este nombre se muestra en la interfaz de Google SecOps. |
config | objeto | Opcional | Los parámetros de configuración de este servidor de reenvío. Consulta Campos de configuración de Forwarder. |
Ejemplo de solicitud
Este es un ejemplo de una solicitud de Update Forwarder 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 devuelta para el ejemplo de solicitud anterior.
{
"name": "forwarders/{forwarderUUID}",
"displayName": "UpdatedForwarder",
"config": {
"uploadCompression": "false",
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate"
}
]
}
},
"state": "ACTIVE"
}
Borrar reenvíos
Borra un servidor de reenvío.
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 mostrará una respuesta vacía con un código de estado HTTP 200 (OK).
{}
Generar archivos de reenvío
Genera y muestra el contenido de los archivos de configuración (.conf
) y autenticación (_auth.conf
) del servidor de reenvío.
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 reenviador, incluidos los datos de configuración de los colectores de reenviadores, así como el contenido del archivo de autenticación (_auth.conf
) que el reenviador usa para autenticarse con la instancia de SecOps de Google.
Campos de configuración del reenvío
En la siguiente tabla, se muestra la configuración del servidor de reenvío que puedes especificar mediante Crear un reenvío y Actualizar un reenvío. Si no especificas un valor para una configuración cuando usas Create Forwarder, se aplica el valor predeterminado de la configuración (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 | El espacio de nombres para identificar los registros de este servidor de reenvío. Nota: Esta es una configuración global que se aplica al servidor de reenvío y a sus recopiladores, a menos que se anule en el nivel del recopilador. Para obtener más información, consulta Configura espacios de nombres. |
metadata.labels | lista | Opcional | Una lista de pares clave-valor arbitrarios que se pueden especificar en la configuración del reenvío. Nota: Esta es una configuración global que se aplica al servidor de reenvío y a sus recopiladores, a menos que se anule en el nivel del recopilador. |
metadata.labels.key | string | Opcional | La clave para un campo en la lista de etiquetas de metadatos. |
metadata.labels.value | string | Opcional | El valor de un campo en la lista de etiquetas de metadatos. |
regex_filters.description | string | Opcional | Describe qué se está filtrando y por qué. |
regex_filters.regexp | string | Opcional | La expresión regular que se usa para coincidir con 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 | La configuración que configura el servidor HTTP integrado del reenviador, que se puede usar para configurar el balanceo de cargas y las opciones de 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 | La cantidad de segundos después de los cuales el servidor de reenvío 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 la recepción de una señal para detenerse y el comienzo del apagado del servidor. Esto permite que el balanceador de cargas quite el servidor de reenvío del grupo. El valor predeterminado es 15 . |
server_settings.drain_timeout | número entero | Opcional | La cantidad de segundos luego de los cuales el servidor de reenvío espera a que las conexiones activas se cierren correctamente por sí mismas antes de que el servidor las cierre. El valor predeterminado es 10 . |
server_settings.http_settings.port | número entero | Opcional | El número de puerto que escucha el servidor HTTP para las verificaciones de estado del balanceador de cargas. Debe ser un número entre 1024 y 65535. El valor predeterminado es 8080 . |
server_settings.http_settings.host | string | Opcional | 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 | La cantidad máxima de segundos que se permiten 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 | La cantidad máxima de segundos permitidos para leer los encabezados de la solicitud. El valor predeterminado es 3 . |
server_settings.http_settings.write_timeout | número entero | Opcional | La cantidad máxima de segundos permitidos para enviar una respuesta. El valor predeterminado es 3 . |
server_settings.http_settings.idle_timeout | número entero | Opcional | La cantidad máxima de segundos que se espera 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 | El código de estado que se muestra cuando se recibe una verificación de funcionamiento y el reenvío está disponible. El valor predeterminado es 204 . |
server_settings.http_settings.route_settings.ready_status_code | número entero | Opcional | 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 | 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 colector
En esta sección, se describen los extremos para trabajar con recopiladores.
Cuando crees y actualices recopiladores, ten en cuenta que la configuración de cada recopilador puede especificar la configuración de transferencia de una de las siguientes opciones, pero no más:
- Datos del archivo de registro
- Temas de Kafka
- Datos de paquetes (pcap)
- Datos de Splunk
- Datos de syslog
Si quieres conocer los extremos para trabajar con servidores de reenvío, consulta la referencia de la API de Forwarder.
Crear recopilador
Crea un recopilador nuevo en la cuenta de Google SecOps. Los valores de configuración de los colectores se deben especificar mediante la opción Crear colector después de crear un reenvío.
Para ciertos parámetros de configuración, los valores de configuración faltantes o con valores cero en el cuerpo de la solicitud se establecen como valores predeterminados. Para obtener detalles sobre los campos y los valores de configuración del colector, consulta Campos de configuración del colector.
Solicitud
POST https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Cuerpo de la solicitud
{
"display_name": string,
"config": {
object (CollectorConfig)
}
"state": enum
}
Parámetros corporales
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
display_name | string | Requeridos | Es el nombre del recopilador. Este nombre se muestra en la interfaz de Google SecOps. |
config | objeto | Requeridos | Los parámetros de 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 necesarios en una solicitud de creación de recopilador. Para los campos que no se proporcionan, los valores predeterminados se aplican durante la creación del recopilador.
En este ejemplo, el tipo de colector es file
, por lo que su configuración incluye file_settings
para indicar el tipo de colector y sus parámetros de configuración. Si el tipo de recopilador es syslog
, su configuración incluye syslog_settings
. Para obtener más información, consulta Campos de configuración del colector.
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 200 (OK).
En la respuesta, se muestran los valores de configuración aplicados durante la creación del colector. Los valores de configuración predeterminados se aplican para ciertas opciones de configuración durante la creación de recursos si faltan esos campos o si tienen un valor cero en el cuerpo de la solicitud. Para obtener más información, consulta Campos de configuración del colector.
Campos de respuesta
Además de los campos especificados en la solicitud y los campos en los que se aplican los valores predeterminados, la respuesta incluye los siguientes campos:
Campo | Tipo | Descripción |
---|---|---|
name | string | 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 devuelta 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"
}
}
Obtener 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 colectores existentes del servidor de reenvío 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"
}
}
]
}
Actualizar recopilador
Cuando actualizas un colector con la API, puedes optar por reemplazar toda la configuración del colector o solo campos específicos de esta configuración. Por lo general, es mejor reemplazar campos específicos para evitar reemplazar accidentalmente todos tus datos. Para reemplazar campos específicos, proporciona una FieldMask a tu solicitud de actualización.
Si deseas proporcionar una FieldMask para actualizar el nombre visible de un colector, 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 corporales
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
displayName | string | Requeridos | Es el nombre del recopilador. Este nombre se muestra en la interfaz de Google SecOps. |
config | objeto | Opcional | Los parámetros de configuración de este servidor de reenvío. Consulta Campos de configuración del colector. |
Ejemplo de solicitud
Este es un ejemplo de una solicitud de colector de actualizaciones en la que se especifican valores nuevos para displayName, logType, assetSpace y protocolo.
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 devuelta 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 | Requeridos | Un tipo de registro compatible (uno que Google SecOps puede transferir). Si quieres obtener una lista de
los tipos de registros admitidos para los que Google SecOps tiene un analizador, consulta la
columna Etiqueta de transferencia en la página Analizadores
predeterminados compatibles. Para obtener una
lista completa de los tipos de registros admitidos, usa el extremo logtypes .
|
metadata.asset_namespace | objeto | Opcional | El espacio de nombres para identificar los registros de este recopilador. Nota: Esta es una configuración global que se aplica al servidor de reenvío y a sus recopiladores, a menos que se anule en el nivel del recopilador. Para obtener más información, consulta Configura espacios de nombres. |
metadata.labels | lista | Opcional | Una lista de pares clave-valor arbitrarios que se pueden especificar en la configuración del colector. Nota: Esta es una configuración global que se aplica al servidor de reenvío y a sus recopiladores, a menos que se anule en el nivel del recopilador. |
metadata.labels.key | string | Opcional | La clave para un campo en la lista de etiquetas de metadatos. |
metadata.labels.value | string | Opcional | El valor de un campo en la lista de etiquetas de metadatos. |
regex_filters.description | string | Opcional | Describe qué se está filtrando y por qué. |
regex_filters.regexp | string | Opcional | La expresión regular que se usa para coincidir con 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 del disco para el colector. Estos son los valores válidos:
|
disk_buffer.directory_path | string | Opcional | La ruta de acceso al directorio para los archivos escritos. |
disk_buffer.max_file_buffer_bytes | número entero | Opcional | El tamaño máximo de archivo almacenado en búfer. |
max_seconds_per_batch | número entero | Opcional | La cantidad de segundos entre lotes. El valor predeterminado es 10 . |
max_bytes_per_batch | número entero | Opcional | La cantidad de bytes en cola antes de la carga por lotes del servidor de reenvío. El valor predeterminado es 1048576 . |
<collector_type>_settings.<fields> | Requeridos | 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 colector file , se debe agregar el campo file_settings.file_path a la configuración y darle 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 de acceso del archivo que se supervisará. |
kafka_settings.authentication.username | string | Opcional | El nombre de usuario de una identidad que se usa para la autenticación. |
kafka_settings.authentication.password | string | Opcional | 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 transfieren los datos. Para obtener más información, consulte Recopilar datos de los temas de Kafka. |
kafka_settings.group_id | string | Opcional | Un ID de grupo. |
kafka_settings.timeout | número entero | Opcional | 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 | Una string 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 un agente nuevo, especifica todos los corredores existentes y el agente nuevo. |
kafka_settings.tls_settings.certificate | string | Opcional | La ruta de acceso y el nombre de 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 | Es 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 | La interfaz para detectar datos de PCAP. |
pcap_settings.bpf | string | Opcional | El filtro de paquetes de Berkeley (BPF) para pcap. |
splunk_settings.authentication.username | string | Opcional | El nombre de usuario de una identidad que se usa para la autenticación. |
splunk_settings.authentication.password | string | Opcional | 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 | El puerto para la API de REST de Splunk. |
splunk_settings.minimum_window_size | número entero | Opcional | El intervalo de tiempo mínimo en segundos para una búsqueda de Splunk determinada. Para obtener más información, consulta Recopila datos de Splunk. El valor predeterminado es 10 . |
splunk_settings.maximum_window_size | número entero | Opcional | El intervalo de tiempo máximo en segundos para una búsqueda de Splunk determinada. Para obtener más información, consulta Recopila datos de Splunk. El valor predeterminado es 30 . |
splunk_settings.query_string | string | Opcional | La consulta que se usa para filtrar registros en Splunk. Por ejemplo: search index=* sourcetype=dns |
splunk_settings.query_mode | string | Opcional | 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 el colector utilizará 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 colector y escucha los datos de syslog. |
syslog_settings.port | número entero | Opcional | El puerto de destino donde reside el colector y escucha los datos de syslog. |
syslog_settings.buffer_size | número entero | Opcional | 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 | La cantidad de segundos de inactividad después de los cuales se interrumpe la conexión TCP. El valor predeterminado es 60 . |
syslog_settings.tls_settings.certificate | string | Opcional | La ruta de acceso y el nombre de 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 | Es 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 . |