Exporta registros a un sistema SIEM

En esta página, se describe cómo exportar registros de Google Distributed Cloud (GDC) aislado a un sistema externo de administración de eventos e información de seguridad (SIEM). Esta integración permite el análisis de registros centralizado y la supervisión de seguridad mejorada.

La parte central de la exportación de registros implica 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 externa del SIEM designada para recibir los registros. Al definir estos parámetros en el archivo SIEMOrgForwarder, los administradores pueden establecer un proceso de exportación de registros optimizado y seguro.

Antes de comenzar

Para obtener los permisos que necesitas para administrar los recursos personalizados de SIEMOrgForwarder, pídele al administrador de IAM de tu organización que te otorgue uno de los roles de la organización de exportación de SIEM asociados.

Según el nivel de acceso y los permisos que necesites, es posible que obtengas roles de creador, editor o visualizador para este recurso en el espacio de nombres de tu proyecto. Para obtener más información, consulta Prepara los permisos de IAM.

Después de obtener los permisos necesarios, completa estos pasos antes de exportar los registros a un sistema SIEM externo:

  1. Establece la conectividad: Asegúrate de que exista una conexión entre GDC y el destino SIEM externo. Si es necesario, colabora con el operador de infraestructura (IO) para establecer una conexión de vínculo ascendente a la red de tu cliente.

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

    • Ruta de acceso del archivo kubeconfig:

      export KUBECONFIG=KUBECONFIG_PATH
      

      Reemplaza KUBECONFIG_PATH por la ruta de acceso al archivo kubeconfig del servidor de la API de administración.

    • El espacio de nombres de tu proyecto:

      export PROJECT_NAMESPACE=PROJECT_NAMESPACE
      

Configura la exportación de registros

Exporta registros a un sistema SIEM externo:

  1. Proporciona un token para conectar la pila de registros al sistema SIEM. Para realizar 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
    

    Reemplaza lo siguiente:

    • SECRET_NAME: Es el nombre de tu Secret.
    • SECRET_FIELD: Es el nombre del campo en el que deseas almacenar el secreto.
    • TOKEN: Tu token.
  2. Implementa el recurso personalizado SIEMOrgForwarder en el espacio de nombres de tu proyecto. Debes especificar el tipo de registro eligiendo entre registros de auditoría o registros operativos. Para configurar la exportación de registros para ambos tipos, debes 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
    

    Reemplaza lo siguiente:

    • SIEM_ORG_FORWARDER: Es el nombre del archivo de definición de SIEMOrgForwarder.
    • LOG_TYPE: Es el tipo de registro que exportas. Los valores aceptados son audit y operational.
    • SIEM_HOST: Es el nombre del host del SIEM.
    • SECRET_NAME: Es el nombre de tu Secret.
    • SECRET_FIELD: Es el nombre del campo en el que almacenaste el secreto.
    • TLS: Es el estado de la seguridad de la capa de transporte (TLS). Los valores aceptados son "On" y "Off".
    • NET_CONNECT_TIMEOUT: Es el tiempo máximo en segundos que se espera para que se establezca una conexión. Por ejemplo, un valor de 180 significa 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, verifica el siguiente estado:

    • Registros de auditoría: Comprueba el estado de AuditLoggingReady.
    • Registros operativos: Verifica el estado de OperationalLoggingReady.