Exportar registros a un sistema SIEM

En esta página se describe cómo exportar registros de Google Distributed Cloud (GDC) air-gapped a un sistema de gestión de eventos e información de seguridad (SIEM) externo. Esta integración permite analizar los registros de forma centralizada y mejorar la monitorización de la seguridad.

La exportación de registros se basa en la implementación de un recurso personalizado SIEMOrgForwarder. Este recurso actúa como un archivo de configuración que especifica los detalles de la instancia de SIEM externa designada para recibir los registros. Al definir estos parámetros en el archivo SIEMOrgForwarder, los administradores pueden establecer un flujo de exportación de registros optimizado y seguro.

Antes de empezar

Para obtener los permisos que necesitas para gestionar recursos personalizados de SIEMOrgForwarder, pide al administrador de gestión de identidades y accesos de tu organización que te conceda uno de los roles de organización de exportación de SIEM asociados.

En función del nivel de acceso y los permisos que necesites, puedes obtener los roles de creador, editor o lector de este recurso en el espacio de nombres de tu proyecto. Para obtener más información, consulta Preparar permisos de gestión de identidades y accesos.

Una vez que hayas obtenido los permisos necesarios, completa estos pasos antes de exportar los registros a un sistema SIEM externo:

  1. Establecer la conectividad: asegúrate de que haya una conexión entre GDC y el SIEM externo de destino. Si es necesario, colabora con el operador de infraestructura (IO) para establecer una conexión de enlace ascendente a la red de tu cliente.

  2. Define variables de entorno: define las siguientes variables de entorno para ejecutar los comandos de esta página:

    • La ruta del archivo kubeconfig:

      export KUBECONFIG=KUBECONFIG_PATH
      

      Sustituye KUBECONFIG_PATH por la ruta al archivo kubeconfig del servidor de la API Management.

    • Espacio de nombres del proyecto:

      export PROJECT_NAMESPACE=PROJECT_NAMESPACE
      

Configurar la exportación de registros

Para exportar registros a un sistema SIEM externo, sigue estos pasos:

  1. Proporciona un token para conectar la pila de registro al sistema SIEM. Para llevar a cabo esta acción, debes crear un secreto en el espacio de nombres de tu proyecto para almacenar el token:

    cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: SECRET_NAME
      namespace: ${PROJECT_NAMESPACE}
    type: Opaque
    stringData:
      SECRET_FIELD: TOKEN
    EOF
    

    Haz los cambios siguientes:

    • SECRET_NAME: el nombre de tu secreto.
    • SECRET_FIELD: el nombre del campo en el que quieras almacenar el secreto.
    • TOKEN: tu token.
    .
  2. Implementa el recurso personalizado SIEMOrgForwarder en el espacio de nombres de tu proyecto. Debe especificar el tipo de registro. Para ello, elija entre registros de auditoría u operativos. Para configurar la exportación de registros de ambos tipos, debe implementar un recurso SIEMOrgForwarder para cada tipo.

    En el siguiente ejemplo se muestra cómo aplicar una configuración a un recurso personalizado SIEMOrgForwarder:

      cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
      apiVersion: logging.gdc.goog/v1
      kind: SIEMOrgForwarder
      metadata:
        name: SIEM_ORG_FORWARDER
        namespace: ${PROJECT_NAMESPACE}
      spec:
        source: LOG_TYPE
        splunkOutputs:
          - host: SIEM_HOST
            token:
              name: SECRET_NAME
              field: SECRET_FIELD
            tls: "TLS"
            netConnectTimeout: NET_CONNECT_TIMEOUT
      EOF
    

    Haz los cambios siguientes:

    • SIEM_ORG_FORWARDER: el nombre del archivo de definición de SIEMOrgForwarder.
    • LOG_TYPE: el tipo de registro que vas a exportar. Los valores aceptados son audit y operational.
    • SIEM_HOST: el nombre del host de SIEM.
    • SECRET_NAME: el nombre de tu secreto.
    • SECRET_FIELD: el nombre del campo en el que has almacenado el secreto.
    • TLS: el estado de la seguridad en la capa de transporte (TLS). Los valores aceptados son "On" y "Off".
    • NET_CONNECT_TIMEOUT: tiempo máximo en segundos que se debe esperar para que se establezca una conexión. Por ejemplo, un valor de 180 significa que hay que esperar 180 segundos.
  3. Verifica el estado del recurso personalizado SIEMOrgForwarder implementado:

      kubectl --kubeconfig=${KUBECONFIG} describe siemorgforwarder/SIEM_ORG_FORWARDER \
          -n ${PROJECT_NAMESPACE}
    

    Según el tipo de registro, comprueba el siguiente estado:

    • Registros de auditoría: compruebe el AuditLoggingReady.
    • Registros operativos: comprueba el OperationalLoggingReady.