Compila integraciones personalizadas
En este documento, se explican los flujos de trabajo para compilar integraciones personalizadas para Google SecOps. La práctica recomendada actual es desarrollar integraciones de forma local con el IDE que prefieras y administrarlas a través de GitHub con flujos de trabajo modernos de GitOps. Para entornos heredados o prototipos rápidos, también puedes compilar integraciones directamente en el IDE de SOAR integrado.
IDE local y flujo de trabajo de GitHub (recomendado)
El flujo de trabajo recomendado es desarrollar integraciones de forma local y administrarlas a través de GitHub. Este enfoque se alinea con las prácticas modernas de GitOps, lo que permite un mejor control de versión, colaboración y administración automatizada de dependencias.
Descripción general del flujo de trabajo conceptual
Para desarrollar integraciones personalizadas de forma local, se recomienda que sigas este ciclo de vida de GitOps. Para conocer la sintaxis exacta y actualizada de estos comandos, consulta la documentación oficial de la CLI de MP en GitHub.
- Bifurca y clona: Clona el repositorio oficial de
content-huben tu máquina de desarrollo local. - Instala las herramientas: Instala la herramienta de la CLI de
mpy el administrador de paquetes de Pythonuv. - Autenticación: Accede a tu entorno de Google SecOps a través de la CLI de MP con la URL de tu instancia y las claves de API.
- Desarrolla de forma local: Usa tu IDE preferido (como VS Code o PyCharm) para escribir tu código de integración, aprovechando las herramientas locales de depuración y prueba.
- Administra dependencias: Usa
uvpara declarar y administrar dependencias (comoTIPCommon) en tu archivopyproject.tomllocal. - Sincroniza: Usa los comandos
mp pullymp pushpara sincronizar tu código local con tu instancia de Google SecOps para pruebas y la implementación.
Alternativa: Crea una integración personalizada en el IDE integrado
Si mantienes integraciones heredadas, pruebas una secuencia de comandos rápidamente o trabajas en un entorno en el que el desarrollo local está restringido, puedes usar el IDE integrado.
Caso de uso: Compila una integración personalizada de Armis
Para crear la integración personalizada en el IDE, sigue estos pasos:
- En el menú principal, ve a Respuesta > IDE.
- Haz clic en Crear elemento nuevo y selecciona Integración.
- Ingresa un nombre y haz clic en Crear.
La integración ahora aparece con la opción Configuración Configuración, lo que indica que es una integración personalizada.
Haz clic en settings Configuración para mostrar la configuración de la integración, en la que puedes definir el ícono, la descripción, las dependencias de Python y los parámetros de integración.
Crea un administrador personalizado
Los administradores son wrappers para las APIs de herramientas de terceros. Aunque no son obligatorios, los recomendamos para las integraciones que interactúan con herramientas externas. Los administradores no deben importar desde el SDK. Después de crearlas, impórtalas a conectores, acciones y trabajos.
Para crear un administrador personalizado, sigue estos pasos:
- En el IDE, haz clic en Create New Item y selecciona Manager.
- Selecciona la integración de Armis y, luego, ingresa el nombre de un administrador.
- Edita y ejecuta la siguiente secuencia de comandos:
import requests
class ArmisManager:
def init(self, api_root, api_token):
self.api_root = api_root
self.api_token = api_token
self.session = requests.session()
self.session.headers = {"Accept": "application/json"}
def auth(self):
endpoint = "{}/api/vi/access_token/*"
params = {"secret_key" : self.api_token}
response = self.session.post(endpoint.format(self.api_root), params=params)
self.validate_response(response)
access_token = response.json()["data"]["access_token"]
self.session.headers.update({"Authorization": access_token})
return True
def get_device_by_ip(self, device_ip):
endpoint = "{}/api/vi/devices/"
params = {"ip": device_ip}
response = self.session.get(endpoint.format(self.api_root), params=params)
self.validate_response(response)
return response.json()["data"]["data"]
@staticmethod
def validate_response(res, error_msg="An error occurred"):
"""Validate a response
:param res: (requests. Response) La respuesta que se validará
:param error_msg: (str) El mensaje de error que se mostrará
"""
try:
res.raise_for_status()
except requests.HTTPError as error:
raise Exception("(error_msg): (error) (text)".format(
error_msg=error_msg,
error=error,
text=error.response.content
))
Parámetros, configuración de Google SecOps Content Hub y la acción Ping
Los parámetros definidos en la configuración de la integración aparecen en la configuración de Google SecOps Content Hub. Los parámetros incluyen lo siguiente:
- Raíz de la API: Es la URL base del servicio al que te conectas.
- Secreto de API: Es una clave confidencial que se usa para autenticar tu aplicación con el servicio.
- Casilla de verificación Verify SSL: Si está habilitada, verifica que el certificado SSL para la conexión con el servidor de Armis sea válido.
- Casilla de verificación Ejecutar de forma remota: Es un parámetro de configuración que determina si el código o la tarea se ejecutarán en un servidor remoto en lugar de hacerlo de forma local. Cuando se habilita esta opción, el sistema envía las instrucciones y los datos necesarios a un servidor dedicado para su procesamiento.
Para actualizar los parámetros, sigue estos pasos:
- Ingresa las credenciales correctas.
- Haz clic en Guardar > Probar.
Si falta la acción Ping, el botón Probar falla y muestra una X roja.
Implementa una acción de ping
La lógica de la acción Ping actúa como una autenticación correcta.
Para implementar una acción de ping, haz lo siguiente:
- En el IDE, crea una nueva acción en la integración de Armis llamada
Ping. - Usa el método
ArmisManagerauthpara verificar la autenticación.
Habilita la integración
Para habilitar la integración, sigue estos pasos:
- En Respuesta > IDE, haz clic en el botón de activación o desactivación Habilitar/Inhabilitar para llevarlo a la posición ACTIVADO.
- Haz clic en Guardar. Un botón de activación verde confirma que se realizó correctamente. Las credenciales del Content Hub se pasan a ArmisManager. Si
authse completa sin errores, el botón Probar muestra una marca de verificación verde.
Usa el método extract_configuration_param para importar parámetros de la configuración de la integración. Como alternativa, usa extract_action_param para definir parámetros dentro de la acción. Sin embargo, la acción Ping siempre debe usar parámetros de configuración, ya que Content Hub los prueba.
Ver integraciones personalizadas
Ve al Centro de contenido y busca la integración personalizada que creaste. Si no creaste una imagen durante la configuración inicial, se le asignará la imagen personalizada predeterminada. Ten en cuenta que las actualizaciones de Content Hub no anulan ni borran ninguna integración personalizada.
Cómo importar y exportar en el IDE
Realiza una de las siguientes acciones:
- Para importar integraciones, haz lo siguiente:
- Sube un archivo ZIP con la estructura de carpetas correcta. La integración aparecerá en el IDE y en Content Hub.
- Haz clic en Importar. La integración aparece tanto en el IDE como en el Content Hub.
- El sistema genera un archivo ZIP que contiene la definición, las secuencias de comandos y la configuración. La carpeta Administradores no se incluye automáticamente.
- Para exportar integraciones, haz lo siguiente:
- Haz clic en Exportar para descargar el paquete.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.