En esta página, se describe cómo exportar registros de Google Distributed Cloud (GDC) aislado a un sistema externo de administración de información y eventos de seguridad (SIEM). Esta integración permite un análisis de registros centralizado y una supervisión de seguridad mejorada.
La parte central de la exportación de registros implica implementar un recurso personalizado SIEMOrgForwarder.
Este recurso actúa como un archivo de configuración, en el que se especifican los detalles de la
instancia de SIEM externa designada para recibir los registros. Si definen estos parámetros en el archivo SIEMOrgForwarder, los administradores pueden establecer una canalización de exportación de registros optimizada y segura.
Antes de comenzar
Para obtener los permisos que necesitas para administrar los recursos personalizados de SIEMOrgForwarder, pídele al administrador de la organización de IAM que te otorgue uno de los roles de organización de SIEM Export
asociados.
Según el nivel de acceso y los permisos que necesites, puedes obtener 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 registros a un sistema SIEM externo:
Establece la conectividad: Asegúrate de que exista una conexión entre GDC y el destino de 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.
Configura variables de entorno: Configura las siguientes variables de entorno para ejecutar los comandos de esta página:
La ruta de acceso del archivo kubeconfig:
export KUBECONFIG=KUBECONFIG_PATHReemplaza
KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig del servidor de la API de Management.El espacio de nombres de tu proyecto:
export PROJECT_NAMESPACE=PROJECT_NAMESPACE
Configura la exportación de registros
Crea el Secret y el recurso personalizado SIEMOrgForwarder en el mismo
espacio de nombres. Puedes usar cualquier espacio de nombres de proyecto. Cada SIEMOrgForwarder exporta
los registros de la plataforma de todos los clústeres de la organización, por lo que no es necesario crear
estos recursos en otros proyectos o clústeres.
Como práctica recomendada, usa el espacio de nombres platform-obs porque SIEMOrgForwarder
solo exporta registros de la plataforma. Los roles de organización de exportación de SIEM también otorgan acceso de lectura a
todos los secretos en el espacio de nombres en el que se otorgan, por lo que debes pedirle al administrador de la organización de IAM
que otorgue estos roles solo a los administradores de la plataforma.
Exporta registros a un sistema SIEM externo:
Proporciona un token para conectar la pila de registros al sistema de SIEM. Para realizar esta acción, debes crear un Secret en el espacio de nombres de tu proyecto para almacenar el token en el caso de Splunk y la contraseña en el caso de Elastic SIEM:
cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f - apiVersion: v1 kind: Secret metadata: name: SECRET_NAME namespace: ${PROJECT_NAMESPACE} type: Opaque stringData: SECRET_FIELD: FIELD_VALUE EOFReemplaza lo siguiente:
SECRET_NAME: Es el nombre del Secret.SECRET_FIELD: Es el nombre del campo en el que deseas almacenar el secreto. Para Elastic, usa el mismo valor queHTTP_USER_NAMEen el recurso personalizado.FIELD_VALUEFIELD_VALUE es el token en el caso de Splunk y la contraseña para Elastic.TOKEN: Es tu token.
Implementa el recurso personalizado
SIEMOrgForwarderen el espacio de nombres de tu proyecto. Debes especificar el tipo de registro eligiendo entre registros de auditoría o de operaciones. Para configurar la exportación de registros para ambos tipos de registros, debes implementar un recursoSIEMOrgForwarderpara cada tipo.En el siguiente ejemplo, se muestra cómo aplicar una configuración a un recurso personalizado
SIEMOrgForwarderpara Splunk: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 destinations: splunkOutputs: - host: SIEM_HOST token: name: SECRET_NAME field: SECRET_FIELD tls: "TLS" netConnectTimeout: NET_CONNECT_TIMEOUT EOFReemplaza lo siguiente:
SIEM_ORG_FORWARDER: Es el nombre del archivo de definición deSIEMOrgForwarder.LOG_TYPE: Es el tipo de registro que exportas. Los valores aceptados sonaudityoperational.SIEM_HOST: Es el nombre del host de SIEM.SECRET_NAME: Es el nombre del 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 debe esperar para que se establezca una conexión. Por ejemplo, un valor de180significa que se debe esperar 180 segundos.
En el siguiente ejemplo, se muestra cómo aplicar una configuración a un recurso personalizado
SIEMOrgForwarderpara Elastic: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 destinations: elasticOutputs: - host: SIEM_HOST port: SIEM_PORT http_credential: http_user: HTTP_USER_NAME http_passwd: SECRET_NAME tls: "TLS" netConnectTimeout: NET_CONNECT_TIMEOUT index: INDEX EOFReemplaza lo siguiente:
SIEM_ORG_FORWARDER: Es el nombre del archivo de definición deSIEMOrgForwarder.LOG_TYPE: Es el tipo de registro que exportas. Los valores aceptados sonaudityoperational.SIEM_HOST: Es el nombre del host de SIEM.SIEM_PORT: Es el puerto de la instancia de SIEM.HTTP_USER_NAME: Es el nombre de usuario de la instancia de SIEM. Este valor también debe ser la claveSECRET_FIELDen el secreto que almacena la contraseña.SECRET_NAME: Es el nombre del Secret.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 debe esperar para que se establezca una conexión. Por ejemplo, un valor de180significa que se debe esperar 180 segundos.INDEX: Es el índice de la instancia de Elastic. Si no se especifica, se usará el tipo de registro (auditooperational). Este campo es opcional.
Verifica el estado del recurso personalizado
SIEMOrgForwarderimplementado: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: Verifica el estado de
AuditLoggingReady. Registros operativos: Verifica el estado de
OperationalLoggingReady.
- Registros de auditoría: Verifica el estado de