Esportare i log in un sistema SIEM

Questa pagina descrive come esportare i log da Google Distributed Cloud (GDC) air-gapped a un sistema di gestione degli eventi e delle informazioni di sicurezza (SIEM) esterno. Questa integrazione consente l'analisi centralizzata dei log e il monitoraggio avanzato della sicurezza.

Il fulcro dell'esportazione dei log prevede il deployment di una risorsa personalizzata SIEMOrgForwarder. Questa risorsa funge da file di configurazione, specificando i dettagli dell'istanza SIEM esterna designata per ricevere i log. Definendo questi parametri all'interno del file SIEMOrgForwarder, gli amministratori possono stabilire una pipeline di esportazione dei log semplificata e sicura.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate SIEMOrgForwarder, chiedi all'amministratore IAM dell'organizzazione di concederti uno dei ruoli dell'organizzazione per l'esportazione SIEM associati.

A seconda del livello di accesso e delle autorizzazioni di cui hai bisogno, potresti ottenere i ruoli di creatore, editor o visualizzatore per questa risorsa nello spazio dei nomi del progetto. Per maggiori informazioni, vedi Preparare le autorizzazioni IAM.

Dopo aver ottenuto le autorizzazioni necessarie, completa questi passaggi prima di esportare i log in un sistema SIEM esterno:

  1. Stabilisci la connettività: assicurati che esista una connessione tra GDC e la destinazione SIEM esterna. Se necessario, collabora con l'operatore dell'infrastruttura (IO) per stabilire una connessione di uplink alla rete del cliente.

  2. Imposta le variabili di ambiente: imposta le seguenti variabili di ambiente per eseguire i comandi di questa pagina:

    • Il percorso del file kubeconfig:

      export KUBECONFIG=KUBECONFIG_PATH
      

      Sostituisci KUBECONFIG_PATH con il percorso del file kubeconfig per il server API Management.

    • Spazio dei nomi del progetto:

      export PROJECT_NAMESPACE=PROJECT_NAMESPACE
      

Configura l'esportazione dei log

Esporta i log in un sistema SIEM esterno:

  1. Fornisci un token per connettere lo stack di logging al sistema SIEM. Per eseguire questa azione, devi creare un secret nello spazio dei nomi del progetto per archiviare il 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
    

    Sostituisci quanto segue:

    • SECRET_NAME: il nome del secret.
    • SECRET_FIELD: il nome del campo in cui vuoi archiviare il secret.
    • TOKEN: il tuo token.
  2. Esegui il deployment della risorsa personalizzata SIEMOrgForwarder nello spazio dei nomi del progetto. Devi specificare il tipo di log scegliendo tra audit log e log operativi. Per configurare l'esportazione dei log per entrambi i tipi, devi eseguire il deployment di una risorsa SIEMOrgForwarder per ogni tipo.

    L'esempio seguente mostra come applicare una configurazione a una risorsa personalizzata 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
    

    Sostituisci quanto segue:

    • SIEM_ORG_FORWARDER: il nome del file di definizione SIEMOrgForwarder.
    • LOG_TYPE: il tipo di log che stai esportando. I valori accettati sono audit e operational.
    • SIEM_HOST: il nome dell'host SIEM.
    • SECRET_NAME: il nome del secret.
    • SECRET_FIELD: il nome del campo in cui hai archiviato il secret.
    • TLS: lo stato di Transport Layer Security (TLS). I valori accettati sono "On" e "Off".
    • NET_CONNECT_TIMEOUT: il tempo massimo in secondi da attendere per stabilire una connessione. Ad esempio, un valore di 180 significa attendere 180 secondi.
  3. Verifica lo stato della risorsa personalizzata SIEMOrgForwarder di cui è stato eseguito il deployment:

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

    A seconda del tipo di log, controlla lo stato seguente:

    • Audit log: controlla lo stato di AuditLoggingReady.
    • Log operativi: controlla lo stato di OperationalLoggingReady.