Esporta i log non elaborati in un bucket Google Cloud Storage autogestito

Supportata in:

L'API Data Export facilita l'esportazione collettiva dei dati di sicurezza da Google Security Operations a un bucket Google Cloud Storage che controlli. Questa funzionalità supporta la conservazione dei dati critica e a lungo termine, l'analisi forense storica e i requisiti di conformità rigorosi (come SOX e GDPR).

Per informazioni dettagliate sul riferimento API, consulta API Data Export (migliorata).

L'API Data Export fornisce una soluzione scalabile e affidabile per le esportazioni di dati in un determinato momento e gestisce richieste fino a 100 TB.

In quanto pipeline gestita, offre funzionalità essenziali di livello enterprise, tra cui:

  • Nuovi tentativi automatici in caso di errori temporanei
  • Monitoraggio completo dello stato dei job
  • Una traccia di audit completa per ogni job di esportazione

L'API suddivide logicamente i dati esportati per data e ora all'interno del bucket Google Cloud Storage.

Questa funzionalità ti consente di creare flussi di lavoro di offload dei dati su larga scala. Google SecOps gestisce la complessità del processo di esportazione per fornire stabilità e prestazioni.

Vantaggi principali

L'API Data Export fornisce una soluzione resiliente e controllabile per la gestione del ciclo di vita dei dati di sicurezza, con i seguenti vantaggi principali:

  • Affidabilità: il servizio gestisce trasferimenti di dati su larga scala. Il sistema utilizza una strategia di backoff esponenziale per riprovare automaticamente i job di esportazione che riscontrano problemi temporanei (ad esempio, problemi di rete temporanei), rendendolo resiliente. Se il job di esportazione non riesce a causa di un errore temporaneo, vengono eseguiti automaticamente diversi nuovi tentativi. Se un job non va a buon fine in modo permanente dopo tutti i tentativi, il sistema aggiorna lo stato in FINISHED_FAILURE e la risposta dell'API per quel job contiene un messaggio di errore dettagliato che ne spiega la causa.
  • Controllabilità completa: per soddisfare i rigorosi standard di conformità e sicurezza, il sistema acquisisce ogni azione correlata a un job di esportazione in una traccia di audit immutabile. Questa traccia include la creazione, l'avvio, l'esito positivo o negativo di ogni job, insieme all'utente che ha avviato l'azione, un timestamp e i parametri del job.

  • Ottimizzata per prestazioni e scalabilità: l'API utilizza un sistema di gestione dei job solido. Questo sistema include l'accodamento e la definizione delle priorità per garantire la stabilità della piattaforma e impedire che un singolo tenant monopolizzi le risorse.

  • Integrità e accessibilità dei dati migliorate: il sistema organizza automaticamente i dati in una struttura di directory logica all'interno del bucket Google Cloud Storage, il che ti aiuta a individuare ed eseguire query su finestre temporali specifiche per l'analisi storica.

  • Sicurezza: l'API è progettata per essere completamente conforme alle chiavi di crittografia gestite dal cliente (CMEK) (sicurezza Zero Trust) e all'RBAC dei dati (accesso con privilegi minimi). I job di esportazione ereditano l'ambito di visibilità dei dati dell'utente che attiva la richiesta per impedire l'estrazione di dati non autorizzata. La pipeline di esportazione è inoltre completamente integrata con Google Cloud Key Management Service e i dati rimangono criptati at-rest nel tuo bucket Google Cloud Storage utilizzando le tue chiavi.

Termini e concetti chiave

  • Job di esportazione: una singola operazione asincrona per esportare un intervallo di tempo specifico di dati di log in un bucket Google Cloud Storage. Il sistema monitora ogni job con un dataExportId univoco.
  • Stato del job: lo stato attuale di un job di esportazione nel suo ciclo di vita (ad esempio IN_QUEUE, PROCESSING, FINISHED_SUCCESS).
  • Bucket Google Cloud Storage: un bucket Google Cloud Storage di proprietà dell'utente che funge da destinazione per i dati esportati.
  • Tipi di log: le categorie specifiche di log che puoi esportare (ad esempio NIX_SYSTEM, WINDOWS_DNS, CB_EDR). Per maggiori dettagli, consulta l'elenco di tutti i tipi di log supportati.

Comprendi la struttura dei dati esportati

Quando un job viene completato correttamente, il sistema scrive i dati nel tuo bucket Cloud Storage. Utilizza una struttura di directory partizionata specifica per semplificare l'accesso ai dati e l'esecuzione di query.

Struttura del percorso della directory: gs://GCS_BUCKET_NAME/ EXPORT_JOB_NAME/LOGTYPE/EVENT_TIME_BUCKET/EPOCH_EXECUTION_TIME/FILE_SHARD_NAME.csv

Dove:

  • GCS_BUCKET_NAME: si riferisce al nome del tuo bucket Google Cloud Storage.
  • EXPORT_JOB_NAME: il nome univoco del job di esportazione.
  • LOGTYPE: si riferisce al nome del tipo di log per i dati esportati.
  • EVENT_TIME_BUCKET: si riferisce all'intervallo di ore dei timestamp degli eventi dei log esportati. Il formato è un timestamp UTC: year/month/day/UTC-timestamp, dove UTC-timestamp è hour/minute/second. Ad esempio, 2025/08/25/01/00/00 si riferisce a UTC 01:00:00 AM, August 25, 2025.
  • EPOCH_EXECUTION_TIME: si riferisce al valore dell'epoca di Unix, che indica quando è iniziato il job di esportazione.
  • FILE_SHARD_NAME: si riferisce al nome dei file con sharding contenenti i log non elaborati. Ogni shard di file ha un limite massimo di dimensioni di 100 MB.

Prestazioni e limitazioni

Il servizio ha i seguenti limiti specifici per garantire la stabilità della piattaforma e un'allocazione equa delle risorse:

  • Volume massimo di dati per job: ogni singolo job di esportazione può richiedere fino a 100 TB di dati. Per set di dati più grandi, Google consiglia di suddividere l'esportazione in più job con intervalli di tempo più piccoli.
  • Job simultanei: ogni tenant cliente può eseguire o mettere in coda un massimo di tre job di esportazione contemporaneamente. Il sistema rifiuta qualsiasi nuova richiesta di creazione di job che supera questo limite.
  • Tempi di completamento dei job: il volume dei dati esportati determina i tempi di completamento dei job. Un singolo job può richiedere fino a 18 ore.
  • Formato di esportazione e ambito dei dati: l'API supporta esportazioni collettive e point-in-time, con le seguenti limitazioni e funzionalità:
    • Solo log non elaborati: puoi esportare solo i log non elaborati (non i log UDM, gli eventi UDM o i rilevamenti). Per scoprire come esportare i dati UDM, consulta Esporta in un progetto BigQuery autogestito.
    • Compressione dei dati: l'API esporta i dati come testo non compresso.

Prerequisiti e architettura

Questa sezione descrive l'architettura di sistema e i requisiti necessari per utilizzare l'API Data Export e fornisce i dettagli dell'architettura di sistema. Utilizza queste informazioni per verificare che l'ambiente sia configurato correttamente.

Prima di utilizzare l'API Data Export, completa i seguenti passaggi preliminari per configurare la destinazione di Google Cloud Storage e concedere le autorizzazioni necessarie:

  1. Concedi le autorizzazioni all'utente. Per utilizzare l'API Data Export, devi disporre delle seguenti autorizzazioni nel progetto BYOP Google Cloud collegato al tuo tenant Google SecOps:

    Queste autorizzazioni fanno parte dei seguenti ruoli IAM predefiniti:

    • Chronicle API Admin: concede autorizzazioni complete per creare, aggiornare, annullare e visualizzare i job di esportazione utilizzando l'API. Questo ruolo conferisce l'accesso globale.
    • Chronicle API Viewer: concede l'accesso di sola lettura per visualizzare le configurazioni e la cronologia dei job utilizzando l'API. Senza il ruolo restrictedDataAccess, un utente con questo ruolo può visualizzare tutti i dati (consulta il passaggio + Aggiungi un altro ruolo e aggiungi una condizione).
  2. Applica gli ambiti RBAC dei dati a un utente. Per limitare l'accesso di un utente ad ambiti di accesso ai dati specifici:

    1. Assicurati che gli ambiti RBAC dei dati che vuoi applicare siano già stati creati nell'interfaccia utente di Google SecOps in Impostazioni > Impostazioni SIEM > Accesso ai dati > Ambiti. Prendi nota del nome completo di ogni ambito che intendi assegnare all'utente.
    2. Crea un ruolo personalizzato di Identity and Access Management (IAM) per la gestione dell'esportazione dei dati. Poiché i ruoli predefiniti potrebbero concedere un accesso eccessivo o non disporre della combinazione specifica di autorizzazioni, segui questi passaggi per creare un ruolo personalizzato su misura per la gestione delle esportazioni dei dati in un contesto limitato:

      1. Nella console Google Cloud , vai a IAM e amministrazione > Ruoli.
      2. Fai clic su + Crea ruolo.
      3. Inserisci un titolo (ad esempio SecOps Scoped Data Export User).
      4. Inserisci un ID (ad esempio secopsScopedDataExportUser).
      5. Fai clic su + Aggiungi autorizzazioni.
      6. Filtra in base alle autorizzazioni di Chronicle e aggiungi le autorizzazioni pertinenti elencate nel primo passaggio (Concedi le autorizzazioni all'utente API).
      7. Fai clic su Crea.
  3. Concedi ruoli IAM all'utente. Nella pagina IAM, segui questi passaggi per assegnare i ruoli necessari al tuo utente:

    1. Vai a IAM e amministrazione > IAM.
    2. Fai clic su + Concedi accesso.
    3. In Nuove entità, inserisci l'indirizzo email dell'utente.
    4. Per assegnare i ruoli:

      1. Aggiungi il ruolo personalizzato che hai creato (ad esempio SecOps Scoped Data Export User).
      2. Fai clic su + Aggiungi un altro ruolo e aggiungi il ruolo Chronicle API Restricted Data Access (restrictedDataAccess). Questo ruolo è fondamentale per contrassegnare l'utente come soggetto agli ambiti dei dati.
  4. Aggiungi una condizione IAM all'associazione di ruoli Chronicle API Restricted Data Access. Per collegare l'utente ad ambiti di dati specifici:

    1. Fai clic su Aggiungi condizione IAM.
    2. Utilizza il Generatore di condizioni o l'Editor delle condizioni per definire gli ambiti consentiti, utilizzando il nome dell'ambito creato nel primo passaggio come nome della risorsa. Ad esempio, per utilizzare un ambito denominato scope_test, imposta la condizione resource.name.endsWith("/dataAccessScopes/scope_test").

    Per scoprire di più su come viene implementato il RBAC dei dati per l'API Data Export, consulta Come si applica il RBAC dei dati all'API Data Export.

  5. Crea un bucket Google Cloud Storage. Nel tuo progetto Google Cloud, crea un nuovo bucket Google Cloud Storage (la destinazione dei dati esportati) nella stessa regione del tuo tenant Google SecOps. Rendilo privato per impedire l'accesso non autorizzato. Per maggiori dettagli, consulta Crea un bucket.

  6. Concedi le autorizzazioni al service account. Per concedere al service account Google SecOps, collegato al tuo tenant Google SecOps, i ruoli IAM necessari per scrivere dati nel bucket, segui questi passaggi:

    1. Chiama l'endpoint API FetchServiceAccountForDataExport per identificare il service account univoco della tua istanza Google SecOps. L'API restituisce l'indirizzo email del service account.

      Esempio di richiesta:

      {
        "parent": "projects/myproject/locations/us/instances/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
      }
      

      Esempio di risposta:

      {
        "service_account_email": "service-1234@gcp-sa-chronicle.iam.gserviceaccount.com"
      }
      
    2. Concedi all'entità del service account Google SecOps i seguenti ruoli IAM per il bucket Google Cloud Storage di destinazione, che consentono al servizio Google SecOps di scrivere i file di dati esportati nel tuo bucket Google Cloud Storage:

      • Storage object administrator (roles/storage.objectAdmin)
      • Legacy bucket reader (roles/storage.legacyBucketReader)

      Per maggiori dettagli, consulta Concedi l'accesso al service account Google SecOps.

  7. Completa l'autenticazione. L'API Data Export autentica le tue chiamate. Per configurare questa autenticazione, segui le istruzioni riportate nelle sezioni seguenti:

    1. Metodi di autenticazione per i servizi Google Cloud
    2. Credenziali predefinite dell'applicazione

Casi d'uso principali e flusso di lavoro di base

L'API Data Export fornisce una suite di endpoint per creare job di esportazione dei dati e gestire l'intero ciclo di vita dell'esportazione collettiva dei dati. Tutte le interazioni vengono eseguite utilizzando le chiamate API.

I seguenti casi d'uso descrivono come creare, monitorare e gestire i job di esportazione dei dati.

Crea un nuovo job di esportazione dei dati

Il sistema archivia le specifiche del job di esportazione dei dati nell'istanza Google SecOps della risorsa principale. Questa istanza è l'origine dei dati di log per il job di esportazione.

  • Per scoprire come identificare il service account univoco per la tua istanza Google SecOps, consulta FetchServiceAccountForDataExports.

  • Per avviare una nuova esportazione, invia una richiesta POST all'endpoint dataExports.create. Per maggiori dettagli, consulta Endpoint CreateDataExport.

Monitora lo stato del job di esportazione dei dati

Puoi visualizzare i dettagli e lo stato di un job di esportazione dei dati specifico o configurare un filtro per visualizzare determinati tipi di job.

  • Per scoprire come visualizzare un job di esportazione specifico, consulta GetDataExport.

  • Per scoprire come elencare determinati tipi di job di esportazione dei dati utilizzando un filtro, consulta ListDataExport.

Annulla i job in coda

Puoi annullare un job quando il suo stato è IN_QUEUE.

Per scoprire come annullare un job in coda, consulta CancelDataExport.

Come si applica il RBAC dei dati all'API Data Export

I job di esportazione ereditano l'ambito RBAC dei dati degli utenti che creano un job di esportazione, il che impedisce l'estrazione non autorizzata dei dati.

Se tenti di esportare dati che non rientrano nell'ambito di accesso ai dati, l'API li esclude automaticamente al momento dell'esecuzione del job di esportazione. Il valore del campo dataRbacFiltered nei metadati dei job completati (ovvero i job con lo stato FINISHED_SUCCESS) indica se i dati sono stati esclusi. Se dataRbacFiltered è true, alcuni o tutti i dati selezionati per il job di esportazione sono stati esclusi perché non rientravano negli ambiti RBAC dei dati applicabili al creatore del job. Se dataRbacFiltered è false, il job di esportazione non è stato interessato dalle limitazioni dell'ambito RBAC dei dati e tutti i dati inclusi nel job sono stati esportati correttamente.

L'API applica gli ambiti RBAC dei dati applicabili al creator al momento della creazione del job. Le modifiche agli ambiti RBAC dei dati non si applicano retroattivamente ai job già creati.

Per scoprire di più sull'RBAC dei dati, consulta Panoramica dell'RBAC dei dati.

Risolvere i problemi comuni

L'API fornisce messaggi di errore dettagliati per facilitare la diagnosi dei problemi.

Codice canonico Messaggio di errore
INVALID_ARGUMENT INVALID_REQUEST: Invalid request parameter PARAMETER_1, PARAMETER_2, ... PARAMETER_N. Please fix the request parameters and try again.
PERMISSION_DENIED INSUFFICIENT_PERMISSIONS: Unable to validate request with the current CMEK key. Please fix the CMEK key and try again
NOT_FOUND BUCKET_NOT_FOUND: The destination Google Cloud Storage bucket BUCKET_NAME does not exist. Please create the destination Google Cloud Storage bucket and try again.
NOT_FOUND REQUEST_NOT_FOUND: The dataExportId:DATA_EXPORT_ID does not exist. Please add a valid dataExportId and try again.
FAILED_PRECONDITION BUCKET_INVALID_REGION: The Google Cloud Storage bucket BUCKET_ID's region:REGION_1 is not the same region as the SecOps tenant region:REGION_2. Please create the Google Cloud Storage bucket in the same region as SecOps tenant and try again.
FAILED_PRECONDITION INSUFFICIENT_PERMISSIONS: The Service Account P4SA does not have storage.objects.create, storage.objects.get and storage.buckets.get permissions on the destination Google Cloud Storage bucket BUCKET_NAME. Please provide the required access to the Service Account and try again.
FAILED_PRECONDITION INVALID_CANCELLATION: The request status is in the STATUS stage and can't be cancelled. You can only cancel the request if the status is in the IN_QUEUE stage.
RESOURCE_EXHAUSTED CONCURRENT_REQUEST_LIMIT_EXCEEDED: Maximum concurrent requests limit LIMIT reached for the request size SIZE_LIMIT. Please wait for the existing requests to complete and try again.
RESOURCE_EXHAUSTED REQUEST_SIZE_LIMIT_EXCEEDED: The estimated export volume: ESTIMATED_VOLUME for the request is greater than maximum allowed export volume: ALLOWED_VOLUME per request. Please try again with a request within the allowed export volume limit.
INTERNAL INTERNAL_ERROR: An Internal error occurred. Please try again.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.