Utilizzare l'interfaccia utente dei feed

Supportato in:

Questo documento spiega come creare, risolvere i problemi e gestire i feed all'interno dell'interfaccia utente di Feed Management, incluse le istruzioni per modificarli, attivarli ed eliminarli.

Prima di iniziare

Prima della configurazione in Google Security Operations, ogni feed di dati richiede prerequisiti specifici. Per trovare i requisiti per il tuo feed, consulta Configurazione per tipo di origine e cerca l'origine dati specifica.

Formati di compressione e dimensioni dei file supportati

I formati di compressione supportati per l'importazione dei feed includono .gz, .tar.gz, .tar e solr.gz. La seguente tabella descrive le diverse dimensioni dei file supportate dalla trasformazione dei feed Google SecOps:

Operazione Tipo di input Dimensioni consigliate Durata prevista Dimensione massima
Modellazione dei dati CSV < 5 GB < 7 min 10 GB
Modellazione dei dati CSV < 5 GB ~30 min 10 GB
Modellazione dei dati CSV Da definire Da definire 2 GB
Modellazione dei dati XML / JSON < 1 GB < 10 min 2 GB
Modellazione dei dati XLS / XLSX < 50 MB ~1 min 50 MB
Unire file Qualsiasi < 1 GB Varia in base al numero di file 100 GB
Decomprimere i file Non ZIP < 5 GB Varia in base al numero di file 10 GB (non compressi)
Decomprimere i file CAP - Varia in base al numero di file 4 GB (non compressi)

Limiti e delimitatori delle righe di log

Quando importi log basati su testo (JSON, CSV o Syslog), assicurati che i tuoi dati rispettino questi limiti di importazione specifici:

  • Dimensione massima della riga: una singola riga di log non può superare i 4 MB. Se una singola riga supera questo limite, il feed non va a buon fine e viene visualizzato l'errore MaxLogLineSize4MBExceeded.
  • Delimitatori supportati: sono supportati sia il carattere di nuova riga (\n) sia il ritorno a capo + nuova riga (\r\n).

Impatto della modifica del progetto Cloud collegato sui feed di dati

Se stai aggiornando il progetto Google Cloud associato alla tua istanza Google SecOps, tutti i feed che importano dati utilizzando i seguenti connettori verranno interrotti e devono essere ricreati manualmente:

  • AMAZON_S3_V2
  • AMAZON_SQS_V2
  • GOOGLE_CLOUD_STORAGE_V2
  • AZURE_BLOBSTORE_V2
  • GOOGLE_CLOUD_STORAGE_EVENT_DRIVEN

Per tutti gli altri feed che non utilizzano questi connettori, l'importazione continua senza interruzioni. I clienti non devono intraprendere alcuna azione.

Cosa aspettarsi durante la migrazione

Per i feed interessati, noterai le seguenti modifiche:

  • Stato dei feed: i feed creati prima della migrazione smetteranno immediatamente di estrarre dati in tempo reale e diventeranno di sola lettura.
  • Dati esistenti: tutti i dati già trasferiti a Google SecOps prima della migrazione verranno importati automaticamente e non andranno persi.
  • Messaggi di errore: se tenti di modificare o eliminare un feed precedente, riceverai un messaggio che indica: This feed is read-only because this SecOps has now moved to a new Google Cloud Project (BYOP). To continue ingesting data from this source, please create a new feed.

Azioni richieste per i clienti

Per garantire l'importazione continua dei dati, devi ricreare manualmente i feed nel nuovo ambiente. Segui questi passaggi per ridurre al minimo le interruzioni:

  1. Ricrea i feed: devi creare nuovi feed per sostituire quelli esistenti prima della migrazione.
  2. Configura l'età massima del file: quando configuri i nuovi feed, imposta l'età massima del file su circa 2 ore prima dell'avvio dell'aggiornamento BYOP. Questo buffer di tempo garantisce una transizione senza problemi.
  3. Gestisci i dati duplicati: a seconda dell'età massima del file selezionata, potresti riscontrare un trasferimento di dati duplicati. Per informazioni tecniche su come Google SecOps filtra questi log ridondanti, vedi Evitare la deduplicazione.

  4. Registra ed elimina i feed esistenti (prima della migrazione): prima di iniziare la migrazione BYOP, registra le impostazioni di configurazione per tutti i feed esistenti che utilizzano i connettori interessati (ad esempio Amazon S3 V2), quindi elimina i feed. Se non elimini i feed creati prima della migrazione, diventano ingestibili e rimangono nell'interfaccia web di Google SecOps come impostazioni orfane.

Modalità per configurare i feed

I clienti di Google SecOps possono configurare un feed nella piattaforma in due modi. Utilizza il metodo più adatto al tuo ambiente:

  • Impostazioni SIEM > Feed (standard)
  • Hub dei contenuti > Pacchetti di contenuti (premium)

Configurare i feed

Questa sezione descrive come configurare generalmente i feed, a partire dal flusso procedurale standard. I feed di dati elencati nella pagina Feed includono tutti i feed che Google ha configurato per il tuo account, inclusi quelli che hai configurato tu.

Aggiungere un feed

Per aggiungere un feed al tuo account Google SecOps, completa i seguenti passaggi:

  1. Nel menu Google SecOps, seleziona Impostazioni SIEM > Feed.

  2. Fai clic su Aggiungi nuovo feed.

  3. Nella pagina successiva, fai clic su Configura un singolo feed. Nota: questo passaggio non è pertinente per i clienti che utilizzano la piattaforma standalone Google SecOps SIEM.

  4. Aggiungi un nome al feed.

  5. Nell'elenco Tipo di origine, seleziona il tipo di origine per l'importazione dei dati in Google SecOps. Puoi scegliere tra i seguenti tipi di origini feed:

    • Amazon Data Firehose
    • Amazon S3 (deprecato)
    • Amazon S3 (V2)
    • Amazon SQS (ritirato)
    • Amazon SQS (V2)
    • Azure Blob Storage (deprecato)
    • Azure Blob Storage (V2)
    • API personalizzata
    • Google Cloud Pub/Sub
    • Cloud Storage (ritirato)
    • Cloud Storage (V2)
    • Cloud Storage Event Driven
    • API di terze parti
    • Webhook

    Importante:

    • Quando utilizzi i feed Amazon S3 (ritirato), Amazon SQS (ritirato), Azure Blob Storage (ritirato) e Google Cloud Cloud Storage (ritirato), assicurati di avere un percorso di directory valido.
    • Quando utilizzi Amazon SQS (obsoleto) o Amazon SQS (V2), concedi esplicitamente le autorizzazioni Google SecOps per eliminare i messaggi dalla coda Amazon SQS.
    • Quando utilizzi i feed Amazon SQS (deprecato), assicurati che solo un feed utilizzi i messaggi della coda. I messaggi letti da un'altra applicazione o un altro feed non vengono inseriti nel feed corrente.
    • L'utilizzo di Amazon SQS (deprecato) come tipo di origine feed è supportato solo per i log nei bucket Amazon S3.
  6. Nell'elenco Tipo di log, seleziona il tipo di log corrispondente ai log che vuoi importare. I log disponibili variano a seconda del tipo di origine selezionato in precedenza.

    Se selezioni Cloud Storage come tipo di origine, utilizza l'opzione Ottieni service account per ottenere un account di servizio univoco. Vedi Esempio di configurazione del feed Google Cloud Storage.

  7. Fai clic su Avanti.

  8. Specifica i parametri necessari nella scheda Parametri di input. Le opzioni presentate qui variano a seconda dell'origine e del tipo di log selezionati nella scheda Imposta proprietà. Tieni il puntatore sopra l'icona a forma di punto interrogativo per ogni campo per ottenere informazioni aggiuntive su ciò che devi fornire.

  9. (Facoltativo) Puoi specificare uno spazio dei nomi nella scheda Imposta proprietà. Per saperne di più sugli spazi dei nomi, consulta Utilizzare gli spazi dei nomi degli asset.

  10. Fai clic su Avanti.

  11. Rivedi la nuova configurazione del feed nella scheda Finalizza.

  12. Fai clic su Invia. Google SecOps completa un controllo di convalida del nuovo feed. Se il feed supera il controllo, viene generato un nome per il feed, questo viene inviato a Google SecOps e Google SecOps inizia a tentare di recuperare i dati.

    Finalizzare la richiesta del feed

Configurare più feed per una famiglia di prodotti (solo clienti Google SecOps)

Puoi configurare più feed per famiglia di prodotti, in base al tipo di log.

  • Tipi di log di base: contrassegnati come consigliati. Questi tipi di log sono consigliati per la funzionalità della piattaforma principale.
  • Tipi di log supplementari: contrassegnati come facoltativi. Questi tipi di log forniscono un contesto aggiuntivo.

Per semplificare la configurazione, la piattaforma fornisce istruzioni di configurazione specifiche e parametri predefiniti per ogni configurazione. Ad esempio, per CrowdStrike Falcon, puoi creare più feed unici nei tipi di log consigliati e facoltativi per assicurarti una copertura completa dei dati.

Configura il feed per CrowdStrike EDR

Segui questi passaggi per configurare un feed di log per CrowdStrike EDR.

  1. In Impostazioni > Feed, fai clic su Aggiungi nuovo feed.
    1. Fai clic sul prodotto CrowdStrike Falcon:
    2. Seleziona il tipo di log CrowdStrike EDR.
  2. In alternativa, da Content Hub > Pacchetti di contenuti, fai clic sul prodotto CrowdStrike Falcon:
    1. Fai clic su Inizia.
    2. Seleziona il tipo di log CrowdStrike EDR.
  3. Specifica i valori per i seguenti campi:

    Campo Descrizione
    Source Type Amazon SQS
    Region La regione AWS S3 associata all'URI.
    Queue Name Il nome della coda SQS da cui leggere.
    Account Number Il numero di account SQS.
    Source Deletion Option Indica se eliminare file e directory dopo il trasferimento.
    Queue Access Key ID Una chiave di accesso alfanumerica di 20 caratteri per l'account, ad esempio AKIAOSFOODNN7EXAMPLE.
    Queue Secret Access Key Una chiave di accesso segreta alfanumerica di 40 caratteri per l'account, ad esempio wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.

  4. (Facoltativo) Configura i seguenti parametri:

    • Nome feed: nome univoco precompilato per il feed.
    • Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
    • Etichette di importazione: etichette applicate agli eventi di questo feed.
  5. Fai clic su Crea feed.

Puoi ripetere questa procedura per creare altri feed per lo stesso tipo di log. Puoi anche configurare i feed per altri tipi di log disponibili direttamente da questa pagina. Al termine, vai alla pagina Gestione feed per visualizzare un riepilogo dettagliato di tutti i tipi di log configurati.

Lista consentita IP

Attiva l'inserimento nella lista consentita e aggiungi gli intervalli di indirizzi IP di Google per tutti i tipi di log che importano dati da API di terze parti.

Eliminare i file di origine

L'opzione di eliminazione dell'origine ti consente di eliminare gli oggetti di origine del feed (file e cartelle) dallo spazio di archiviazione dopo un trasferimento riuscito. Questa opzione è disponibile solo per i tipi di origini feed selezionati, tra cui Cloud Storage. Questi tipi di origini feed includono il campo OPZIONE DI ELIMINAZIONE DELL'ORIGINE nei flussi di lavoro Aggiungi nuovo e Modifica feed.

Opzioni di eliminazione delle fonti

  • Per i tipi di origini dei feed supportati, incluso Cloud Storage, il campo OPZIONE DI ELIMINAZIONE DELL'ORIGINE offre le seguenti opzioni:

    • Non cancellare mai i file
    • Eliminare i file trasferiti e le directory vuote
    • Eliminare i file trasferiti
  • Microsoft Azure Blob Storage (AZURE_BLOBSTORE) non supporta l'eliminazione dei file di origine. Per il campo OPZIONE DI ELIMINAZIONE DELL'ORIGINE, seleziona solo l'opzione Non eliminare mai i file.

  • Per le seguenti origini feed ("feedSourceType"): GOOGLE_CLOUD_STORAGE_V2, GOOGLE_CLOUD_STORAGE_EVENT_DRIVEN, AMAZON_S3_V2, AMAZON_SQS_V2 e AZURE_BLOBSTORE_V2, il campo OPZIONE DI ELIMINAZIONE DELL'ORIGINE offre due opzioni:

    • MAI: non elimina mai i file dopo i trasferimenti.
    • ON_SUCCESS: elimina tutti i file e le directory vuote dopo il trasferimento.

Configurazione e autorizzazioni specifiche per l'origine

I diversi tipi di origine richiedono configurazioni specifiche di autenticazione e networking per comunicare con Google SecOps. Questa sezione descrive come configurare le autorizzazioni e impostare i service account. La configurazione descritta si concentra sull'importazione di Cloud Storage (basata sul pull), sull'importazione multicloud (pull cross-cloud) e sull'importazione basata sul push (API o in tempo reale).

Esempio di configurazione del feed Google Cloud Storage

  1. Nel menu Google SecOps, seleziona Impostazioni e poi fai clic su Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed. Questo passaggio non si applica se utilizzi la piattaforma autonoma Google SecOps SIEM.
  4. Seleziona Cloud Storage v2 per Tipo di origine.
  5. Seleziona il Tipo di log. Ad esempio, per creare un feed per gli audit log di Google Kubernetes Engine, seleziona Audit log di Google Kubernetes Engine come Tipo di log.
  6. Fai clic su Ottieni service account. Google SecOps fornisce un account di servizio univoco che utilizza per importare i dati. In alternativa, puoi ottenere questo account di servizio in modo programmatico utilizzando l'API. Consulta Recupera service account.
  7. (Facoltativo) Configura il account di servizio. Per saperne di più, consulta Concedere l'accesso al service account Google SecOps.
  8. Fai clic su Avanti.
  9. In base alla configurazione di Cloud Storage che hai creato, specifica i valori per i seguenti campi:

    • URI bucket di archiviazione

    • Opzione di eliminazione dell'origine

    Per saperne di più su come configurare i bucket Cloud Storage, consulta Creare bucket.

  10. Fai clic su Avanti e poi su Invia.

Concedi l'accesso al account di servizio Google SecOps

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Concedi l'accesso al account di servizio agli oggetti Cloud Storage pertinenti.

    • Per concedere l'autorizzazione di lettura a un file specifico, completa i seguenti passaggi:

      1. Seleziona il file e fai clic su Modifica accesso.
      2. Fai clic su Aggiungi entità.
      3. Nel campo Nuove entità, inserisci il nome del account di servizio Google SecOps.
      4. Assegna un ruolo che contenga l'autorizzazione di lettura al account di servizio Google SecOps. Ad esempio, Visualizzatore oggetti Storage (roles/storage.objectViewer). Questa operazione può essere eseguita solo se non hai attivato l'accesso uniforme a livello di bucket.
      5. Fai clic su Salva.
    • Per concedere l'autorizzazione di lettura a più file, concedi l'accesso a livello di bucket nel seguente modo:

      • Per "feedSourceType": "GOOGLE_CLOUD_STORAGE":

        1. Aggiungi il account di servizio Google SecOps come principal al tuo bucket di archiviazione e concedigli il ruolo IAM Storage Object Viewer (roles/storage.objectViewer).
        2. Se configuri il feed per eliminare i file di origine, devi aggiungere il account di servizio Google SecOps come principal nel bucket e concedergli il ruolo IAM Amministratore oggetti Storage (roles/storage.objectAdmin).
      • Per "feedSourceType": "GOOGLE_CLOUD_STORAGE_V2", concedi i seguenti ruoli:

        1. Concedi questo ruolo:

          • Storage Object Viewer (roles/storage.objectViewer) se il trasferimento avviene in un altro bucket Cloud Storage.
        2. Assegna uno dei seguenti ruoli, a seconda di ciò che selezioni per l'opzione di eliminazione dell'origine. Se selezioni In caso di esito positivo, concedi il ruolo Storage Legacy Bucket Writer. Se selezioni Mai, concedi il ruolo Storage Legacy Bucket Reader:

          • Writer bucket legacy Storage (roles/storage.legacyBucketWriter) se è richiesta l'autorizzazione di eliminazione degli oggetti.
          • Storage Legacy Bucket Reader (roles/storage.legacyBucketReader) se non è richiesta l'autorizzazione di eliminazione degli oggetti.
      • Per "feedSourceType": "GOOGLE_CLOUD_STORAGE_EVENT_DRIVEN":

        1. Concedi uno di questi ruoli:

          • Storage Object Viewer (roles/storage.objectViewer) se il trasferimento avviene in un altro bucket Cloud Storage.
          • Creatore oggetti Storage (roles/storage.objectCreator) se il trasferimento avviene in un file system.
        2. Concedi uno di questi ruoli:

          • Writer bucket legacy Storage (roles/storage.legacyBucketWriter) se è richiesta l'autorizzazione di eliminazione degli oggetti.
          • Storage Legacy Bucket Reader (roles/storage.legacyBucketReader) se non è richiesta l'autorizzazione di eliminazione degli oggetti.

Abilita l'accesso STS per Amazon S3 e Azure Storage

L'STS viene utilizzato dai seguenti feed di Google Cloud Storage per trasferire i dati da Amazon S3 e dagli archivi blob di Azure Storage a Google SecOps:

  • Amazon S3 (V2)
  • Amazon SQS (V2)
  • Azure Blob Storage (V2)

STS invia richieste di trasferimento dei dati ai servizi di archiviazione Amazon S3 e Azure da un insieme di intervalli di indirizzi IP STS definiti. Questi intervalli di indirizzi IP STS sono pubblicati nel seguente file JSON: Intervalli IP

Per utilizzare questi tipi di origini feed STS, potrebbe essere necessario modificare le limitazioni di accesso IP per consentire a STS di accedere ai servizi di archiviazione Amazon S3 e Azure:

  1. Estrai gli intervalli IP più recenti dal file JSON.

    Ti consigliamo di leggere i dati di questo file JSON almeno una volta alla settimana per mantenere aggiornata la configurazione di sicurezza. Quando viene aggiunto un nuovo intervallo al file, il sistema attende almeno 7 giorni prima di utilizzare l'intervallo per le richieste da STS.

    Per un esempio di script Python che recupera gli intervalli IP da un file JSON, consulta Indirizzi IP per i domini predefiniti.

  2. Confronta l'intervallo IP attuale creationTime con l'intervallo IP creationTime letto dal file JSON precedente. Se sono diversi, aggiorna le limitazioni di accesso IP in Amazon S3 e nei blobstore di Azure Storage.

    • Per Amazon S3

      Per aggiornare le limitazioni di accesso IP nel blobstore Amazon S3:

      Se il tuo progetto AWS utilizza limitazioni IP per l'accesso allo spazio di archiviazione, devi aggiungere gli intervalli IP utilizzati dai worker STS all'elenco degli IP consentiti.

      Per aggiungere questi intervalli come IP consentiti, utilizza il campo Condition in un bucket policy, come descritto nella documentazione di AWS S3: Gestione dell'accesso in base a indirizzi IP specifici.

    • Per Azure Storage

      Per aggiornare le limitazioni di accesso IP nel tuo blobstore Azure Storage:

      Se limiti l'accesso alle tue risorse Azure utilizzando un firewall Azure Storage, devi aggiungere gli intervalli IP utilizzati dai worker STS all'elenco degli IP consentiti.

      Per aggiungere questi intervalli come IP consentiti, segui queste istruzioni: Configurare i firewall e le reti virtuali di Azure Storage.

Configurare un feed push Pub/Sub

Per configurare un feed push Pub/Sub:

  1. Crea un feed push Pub/Sub.
  2. Specifica l'URL dell'endpoint in una sottoscrizione Pub/Sub.

Crea un feed push Pub/Sub

  1. Nel menu Google SecOps, seleziona Impostazioni e poi fai clic su Feed.
  2. Fai clic su Aggiungi nuovo.
  3. Nel campo Nome feed, inserisci un nome per il feed.
  4. Nell'elenco Tipo di origine, seleziona Push di Google Cloud Pub/Sub.
  5. Seleziona il Tipo di log. Ad esempio, per creare un feed per Open Cybersecurity Schema Framework, seleziona Open Cybersecurity Schema Framework (OCSF) come Tipo di log.
  6. Fai clic su Avanti.
  7. (Facoltativo) Specifica i valori per i seguenti parametri di input:
    • Delimitatore di divisione: il delimitatore utilizzato per separare le righe di log. Puoi utilizzare solo \n.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
  10. Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Ti serve questo URL dell'endpoint per creare una sottoscrizione push in Pub/Sub.
  11. (Facoltativo) Fai clic sul pulsante di attivazione/disattivazione Feed abilitato per disattivare il feed. Il feed è abilitato per impostazione predefinita.
  12. Fai clic su Fine.

Specifica l'URL dell'endpoint

Dopo aver creato un feed push Pub/Sub, specifica l'URL dell'endpoint nel seguente modo:

  1. In Pub/Sub, crea una sottoscrizione push. Per saperne di più su come creare una sottoscrizione push, consulta Creare sottoscrizioni push.
  2. Specifica l'URL dell'endpoint, disponibile nel feed push Pub/Sub Google Cloud .
  3. Seleziona Attiva autenticazione e seleziona un account di servizio.
  4. Disattiva le opzioni Push dell'annullamento del wrapping del payload e Push dell'annullamento del wrapping del payload per la scrittura dei metadati dei messaggi.

Configura un feed Amazon Data Firehose

Per configurare un feed Amazon Data Firehose:

  1. Crea un feed Amazon Data Firehose e copia l'URL dell'endpoint e la chiave segreta.
  2. Crea una chiave API per l'autenticazione in Google SecOps. Puoi anche riutilizzare la chiave API esistente per l'autenticazione in Google SecOps.
  3. Specifica l'URL dell'endpoint in Amazon Data Firehose.

Crea un feed Amazon Data Firehose

  1. Nel menu Google SecOps, seleziona Impostazioni e poi fai clic su Feed.
  2. Fai clic su Aggiungi nuovo.
  3. Nel campo Nome feed, inserisci un nome per il feed.
  4. Nell'elenco Tipo di origine, seleziona Amazon Data Firehose.
  5. Seleziona il Tipo di log. Ad esempio, per creare un feed per Open Cybersecurity Schema Framework, seleziona Open Cybersecurity Schema Framework (OCSF) come Tipo di log.
  6. Fai clic su Avanti.
  7. (Facoltativo) Specifica i valori per i seguenti parametri di input:
    • Delimitatore di divisione: il delimitatore utilizzato per separare le righe di log. Puoi utilizzare solo \n.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
  10. Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
  11. Copia e memorizza la chiave segreta, perché non potrai più visualizzarla. Puoi generare di nuovo una nuova chiave segreta, ma la rigenerazione della chiave segreta rende obsoleta la precedente.
  12. Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Questo URL dell'endpoint è necessario quando specifichi le impostazioni di destinazione per il flusso di distribuzione in Amazon Data Firehose.
  13. (Facoltativo) Fai clic sul pulsante di attivazione/disattivazione Feed abilitato per disattivare il feed. Il feed è attivato per impostazione predefinita.
  14. Fai clic su Fine.

Crea una chiave API per il feed Amazon Data Firehose

Per creare una chiave API per il feed Amazon Data Firehose:

  1. Vai alla pagina Credenziali della console Google Cloud .
  2. Fai clic su Crea credenziali e seleziona Chiave API.
  3. Limita l'accesso della chiave API all'API Chronicle.

Specifica l'URL dell'endpoint

In Amazon Data Firehose, specifica l'endpoint HTTPS e la chiave di accesso nel seguente modo:

  1. Aggiungi la chiave API all'URL dell'endpoint del feed e specifica questo URL come URL dell'endpoint HTTP nel seguente formato:

      ENDPOINT_URL?key=API_KEY
    

    Sostituisci quanto segue:

    • ENDPOINT_URL: l'URL dell'endpoint del feed.
    • API_KEY: la chiave API per l'autenticazione a Google SecOps.
  2. Per la chiave di accesso, specifica la chiave segreta che hai ottenuto quando hai creato il feed Amazon Data Firehose.

Configurare un feed webhook HTTPS

Prima di iniziare:

  • Assicurati che sia configurato un progettoGoogle Cloud per Google SecOps e che l'API Chronicle sia abilitata per il progetto.
  • Collega un'istanza Google SecOps ai Google Cloud servizi.

Per configurare un feed webhook HTTPS:

  1. Crea un feed webhook HTTPS e copia l'URL dell'endpoint e la chiave segreta.
  2. Crea una chiave API specificata con l'URL dell'endpoint. Puoi anche riutilizzare la chiave API esistente per l'autenticazione in Google SecOps.
  3. Specifica l'URL dell'endpoint nella tua applicazione.

Inviare più eventi in un'unica richiesta webhook

Il seguente esempio di codice mostra come formattare un singolo corpo della richiesta con più oggetti JSON separati da nuove righe dopo l'elemento curl --location:

--header 'Content-Type: application/json' \
--header 'X-goog-api-key: API_KEY' \
--header 'X-Webhook-Access-Key: SECRET' \
--data '{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}
{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}'

Crea un feed webhook HTTPS

  1. Nel menu Google SecOps, seleziona Impostazioni e poi fai clic su Feed.
  2. Fai clic su Aggiungi nuovo.
  3. Nel campo Nome feed, inserisci un nome per il feed.
  4. Nell'elenco Tipo di origine, seleziona Webhook.
  5. Seleziona il Tipo di log. Ad esempio, per creare un feed per Open Cybersecurity Schema Framework, seleziona Open Cybersecurity Schema Framework (OCSF) come Tipo di log.
  6. Fai clic su Avanti.
  7. (Facoltativo) Specifica i valori per i seguenti parametri di input:
    • Delimitatore di divisione: il delimitatore utilizzato per separare le righe di log. Puoi utilizzare solo \n.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
  10. Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
  11. Copia e memorizza la chiave segreta, perché non potrai più visualizzarla. Puoi generare di nuovo una nuova chiave segreta, ma la rigenerazione della chiave segreta rende obsoleta la precedente.
  12. Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Devi specificare questo URL dell'endpoint nella tua applicazione client.
  13. (Facoltativo) Fai clic sul pulsante di attivazione/disattivazione Feed abilitato per disattivare il feed. Il feed è abilitato per impostazione predefinita.
  14. Fai clic su Fine.

Creare una chiave API per il feed webhook

  1. Vai alla pagina Credenziali della console Google Cloud .
  2. Fai clic su Crea credenziali e poi seleziona Chiave API.
  3. Limita l'accesso della chiave API all'API Chronicle.

Specifica l'URL dell'endpoint

  1. Nella tua applicazione client, specifica l'endpoint HTTPS, disponibile nel feed webhook.
  2. Attiva l'autenticazione specificando la chiave API e la chiave segreta come parte dell'intestazione personalizzata nel seguente formato:

    X-goog-api-key = API_KEY

    X-Webhook-Access-Key = SECRET

    Ti consigliamo di specificare la chiave API come intestazione anziché nell'URL. Se il client webhook non supporta le intestazioni personalizzate, puoi specificare la chiave API e la chiave segreta utilizzando parametri di ricerca nel seguente formato:

      ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    Sostituisci quanto segue:

    • ENDPOINT_URL: l'URL dell'endpoint del feed.
    • API_KEY: la chiave API per l'autenticazione a Google SecOps.
    • SECRET: la chiave segreta che hai generato per autenticare il feed.

Configurare un feed API personalizzato

I feed API personalizzati di Google Security Operations (noti anche come connettori senza codice) consentono di importare la telemetria da API REST di terze parti utilizzando un modello flessibile basato sulla configurazione. Puoi configurare l'estrazione dei dati definendo endpoint, autenticazione, strategie di paginazione e gestione dello stato direttamente nella console.

Vantaggi principali

  • Accelerare l'integrazione: esegui l'onboarding di nuove origini di telemetria in pochi minuti tramite una procedura guidata senza attendere gli aggiornamenti del backend.
  • Checkpointing stateful: garantisce la duplicazione zero dei dati e zero log mancanti nei cicli di polling.
  • Distribuzione a ventaglio genitore-figlio:supporta i flussi di lavoro di rilevamento a due livelli, ad esempio l'elenco delle risorse e il recupero della telemetria associata.
  • Resilienza e limitazione della frequenza automatizzate: impedisce la limitazione della frequenza e l'esaurimento della quota del fornitore. Per un'importazione affidabile e ininterrotta, il feed API personalizzata gestisce automaticamente le risposte HTTP 429 con un backoff esponenziale, regola le richieste con limitazione di frequenza configurabile e lo scaglionamento del ritardo delle attività e applica le misure di salvaguardia. Per saperne di più, consulta Limitazione della frequenza e meccanismi di controllo della limitazione.

Prerequisiti

Verifica i seguenti prerequisiti prima di creare un feed API personalizzato:

  • Autorizzazioni:per creare o modificare i feed, devi disporre del ruolo Amministratore API Chronicle (roles/chronicle.admin) o Editor API Chronicle (roles/chronicle.editor).
  • Requisiti delle API di terze parti:
    • Un URL di base API valido (deve utilizzare https://).
    • Credenziali API (chiave API, credenziali di autenticazione di base o ID/secret client OAuth 2.0).
    • Documentazione dell'API fornitore che descrive in dettaglio i percorsi degli endpoint, i parametri di richiesta, le strutture di risposta JSON e i limiti di frequenza.
  • Accesso a Secret Manager:le credenziali vengono criptate e gestite in modo sicuro all'interno di Secret Manager. L'identità del servizio che esegue il connettore interagisce automaticamente con Secret Manager (roles/secretmanager.secretAccessor e roles/secretmanager.admin).

Configura un feed API personalizzato

Per configurare un feed API personalizzato:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome descrittivo univoco (ad esempio 1Password-Audit-Events).
  5. Nell'elenco Tipo di origine, seleziona API personalizzata.
  6. Nell'elenco Tipo di log, seleziona il tipo di log Google SecOps di destinazione.
  7. Fai clic su Avanti.
  8. Nella sezione Impostazioni generali, configura quanto segue:

    • URL di base:inserisci l'host principale (ad esempio, https://events.1password.com). Deve iniziare con https://. Non aggiungere sottopercorsi o barre finali.

    • Frequenza di polling:specifica la frequenza con cui la piattaforma controlla la presenza di nuova telemetria nell'API, in minuti. Intervallo supportato: da 5 a 2880 minuti (valore predefinito: 15 minuti). Per i feed API standard (sequenziale), sono necessari 10-15 minuti; per i feed Elenco e dettagli (principale-secondario), sono consigliati 30-60 minuti per consentire l'esecuzione completa delle attività di fan-out senza sovrapposizioni.

  9. Nella sezione Autenticazione, seleziona uno dei metodi di autenticazione supportati e poi configura i campi obbligatori:

    • Autenticazione di base:inserisci il nome utente (identità dell'account API) e il secret (ovvero la password o il token segreto).
    • Credenziali client OAuth 2.0:esegui l'autenticazione utilizzando il flusso di concessione delle credenziali client OAuth 2.0. Google SecOps richiede, memorizza nella cache e aggiorna automaticamente i token di accesso di tipo bearer prima di ogni ciclo di importazione. Inserisci l'endpoint del token OAuth (ad esempio, https://auth.vendor.com/oauth/token), l'ID client OAuth e il segreto client OAuth.
    • Intestazioni delle richieste di chiavi API:autenticati utilizzando chiavi API personalizzate inserite nelle intestazioni delle richieste (il pattern REST aziendale più comune). Inserisci il Nome intestazione (ad esempio Authorization o X-API-Key) e il Valore intestazione (ad esempio Bearer <SECRET_TOKEN> o <SECRET_KEY>).
    • Parametri di query della chiave API:autenticati utilizzando chiavi API personalizzate inserite nei parametri di ricerca dell'URL. Inserisci il nome del parametro di query (ad esempio, api_key) e il valore parametro (ad esempio, <SECRET_KEY>).
  10. Seleziona il modello di connettore utilizzato dalla tua API personalizzata:

    • API standard (sequenziale): un flusso di polling lineare in cui ogni polling si basa direttamente sullo stato del precedente. In questo modello, il sondaggio successivo utilizza un cursore, un token o un timestamp estratto dal sondaggio precedente per recuperare solo i nuovi dati. Seleziona questa scheda quando il fornitore fornisce un endpoint che restituisce direttamente i record degli eventi di telemetria (ad esempio 1Password, Okta, SentinelOne, GitHub o Slack).
    • Elenco e dettagli (padre-figlio): un flusso di scoperta a due livelli. Il feed effettua una chiamata iniziale (principale) per recuperare un elenco di risorse o oggetti (ad esempio, un elenco di ID utente o zone). Il feed genera quindi automaticamente chiamate di follow-up dipendenti (secondarie) per recuperare la telemetria dettagliata per ogni risorsa identificata. Seleziona questa scheda quando l'API del fornitore richiede un pattern di rilevamento a due livelli: prima chiama un endpoint per recuperare un elenco dinamico di entità (ad esempio zone, account, progetti, dispositivi), poi esegue richieste di dettagli di follow-up per entità per recuperare la telemetria (ad esempio Cloudflare, AWS CloudWatch o Tenable).
  11. Se hai selezionato API standard (sequenziale), procedi nel seguente modo:

    1. In Endpoint API, configura i seguenti parametri per definire il percorso tecnico e il pacing della velocità per la richiesta:
      • Percorso dell'endpoint:la route API specifica aggiunta all'URL di base (ad esempio, /api/v1/auditevents). Definisce la risorsa di telemetria esatta da interrogare.
      • Metodo HTTP:seleziona GET per recuperare i dati utilizzando i parametri di ricerca dell'URL oppure POST per inviare un payload di ricerca o un corpo del filtro.
    2. Corpo della richiesta:per le richieste POST, fornisci il payload di dati JSON. Puoi incorporare variabili di checkpoint dinamiche come {"limit": 100, "start_time": "{{.last_timestamp}}"}.
    3. Numero massimo di richieste al minuto:inserisci il numero massimo di richieste da inviare al minuto. Si tratta di un limitatore di frequenza lato client per rispettare i limiti di frequenza dell'API del fornitore (valore predefinito: 5 RPM = 1 richiesta ogni 12 secondi). Questa impostazione impedisce l'esaurimento della quota durante la paginazione su più pagine.
    4. (Facoltativo) In Intestazioni personalizzate, configura Nome intestazione e Valore, quindi fai clic su Aggiungi per definire le intestazioni HTTP specializzate richieste dall'API di destinazione (ad esempio, Content-Type: application/json, Accept: application/json).
    5. (Facoltativo) In Parametri di query, configura Chiave e Valore, poi fai clic su Aggiungi per specificare filtri o opzioni aggiuntivi aggiunti alla stringa di query dell'URL (ad esempio, count=1000, status=active) o associa variabili di modello dinamiche (ad esempio, start={{.last_run_time}}).
    6. In Strategia di impaginazione, seleziona il meccanismo di impaginazione richiesto dall'API di terze parti per gestire i set di risultati di più pagine, quindi configura i campi obbligatori:
      • Nessuno:recupera i dati in un'unica richiesta senza paginazione.
      • Paginazione dei token:utilizza i token (chiavi personalizzate) per ottenere la pagina successiva. Inserisci il percorso JSON del token della pagina successiva (ad esempio meta.next_cursor) e il nome del parametro di query di paginazione del token (ad esempio cursor).
      • Paginazione dei link:segui gli URL forniti nella risposta per ottenere altri dati. Inserisci il percorso JSON del link alla pagina successiva (ad esempio, links.next o @odata.nextLink).
      • Paginazione con offset:salta un numero fisso di record per ottenere il set successivo. Inserisci il nome del parametro di query offset (ad esempio, offset).
      • Paginazione con numeri di pagina:vai al numero di pagina sequenziale successivo. Inserisci il nome del parametro di query del numero di pagina (ad esempio, page).
    7. In Checkpointing, configura le impostazioni che consentono al connettore di ricordare il punto in cui si è interrotto tra i cicli di polling ricorrenti:

      • Strategia:scegli una delle seguenti strategie e configura i campi obbligatori:
        • Nessuno:recupera tutti i dati disponibili senza monitorare i progressi nei cicli.
        • Timestamp più recente:monitora il timestamp del record più recente. Inserisci il percorso JSON del valore del checkpoint (ad esempio timestamp o event_time) e la variabile del checkpoint (ad esempio last_run_time, a cui si fa riferimento nei sondaggi successivi come {{.last_run_time}}).
        • Ultimo record:monitora l'ID record più alto per recuperare solo i nuovi record. Inserisci il percorso JSON del valore del checkpoint (ad esempio id o event_id) e la variabile del checkpoint (ad esempio last_id, a cui viene fatto riferimento come {{.last_id}}).
        • Token iteratore:utilizza i token di continuazione persistenti forniti dall'API. Inserisci il percorso JSON del valore del checkpoint e la variabile del checkpoint (ad esempio, iterator_token, a cui viene fatto riferimento come {{.iterator_token}}).
    8. In Mappatura delle risposte, fornisci regole che indicano alla piattaforma come individuare ed estrarre i log:

      • Percorso JSON dei dati di destinazione:inserisci il percorso esatto nel payload della risposta API in cui si trova l'elenco delle voci di log di destinazione. Per gli array con wrapping degli oggetti (ad esempio {"items": [...]}), inserisci items. Per le API che restituiscono direttamente un array JSON principale (ad esempio [{...}, {...}]), lascia questo campo completamente vuoto ([]).
  12. Se hai selezionato Elenco e dettagli (padre-figlio), procedi nel seguente modo:

    1. Richiesta padre (rilevamento): configura l'endpoint che restituisce un elenco di elementi:
      1. In Endpoint API, configura i seguenti parametri per definire il percorso tecnico e il pacing della velocità per la richiesta:
        • Percorso endpoint:la route API specifica aggiunta all'URL di base (ad esempio, /api/v1/auditevents). Definisce la risorsa di telemetria esatta da interrogare.
        • Metodo HTTP:seleziona GET per recuperare i dati utilizzando i parametri di ricerca dell'URL oppure POST per inviare un payload di ricerca o un corpo del filtro.
        • Corpo della richiesta:per le richieste POST, fornisci il payload di dati JSON. Puoi incorporare variabili di checkpoint dinamiche come {"limit": 100, "start_time": "{{.last_timestamp}}"}.
      2. Numero massimo di richieste al minuto:inserisci il numero massimo di richieste da inviare al minuto. Si tratta di un limitatore di frequenza lato client per rispettare i limiti di frequenza dell'API del fornitore (valore predefinito: 5 RPM = 1 richiesta ogni 12 secondi). Questa impostazione impedisce l'esaurimento della quota durante la paginazione su più pagine.
      3. (Facoltativo) In Intestazioni personalizzate, configura Nome intestazione e Valore, quindi fai clic su Aggiungi per definire le intestazioni HTTP specializzate richieste dall'API di destinazione (ad esempio, Content-Type: application/json, Accept: application/json).
      4. (Facoltativo) In Parametri di query, configura Chiave e Valore, poi fai clic su Aggiungi per specificare filtri o opzioni aggiuntivi aggiunti alla stringa di query dell'URL (ad esempio, count=1000, status=active) o associa variabili di modello dinamiche (ad esempio, start={{.last_run_time}}).
      5. In Strategia di impaginazione, seleziona il meccanismo di impaginazione richiesto dall'API di terze parti per gestire i set di risultati di più pagine, quindi configura i campi obbligatori:
        • Nessuno:recupera i dati in un'unica richiesta senza paginazione.
        • Paginazione dei token:utilizza i token (chiavi personalizzate) per ottenere la pagina successiva. Inserisci il percorso JSON del token della pagina successiva (ad esempio meta.next_cursor) e il nome del parametro di query di paginazione del token (ad esempio cursor).
        • Paginazione dei link:segui gli URL forniti nella risposta per ottenere altri dati. Inserisci il percorso JSON del link alla pagina successiva (ad esempio, links.next o @odata.nextLink).
        • Paginazione con offset:salta un numero fisso di record per ottenere il set successivo. Inserisci il nome del parametro di query offset (ad esempio, offset).
        • Paginazione con numeri di pagina:vai al numero di pagina sequenziale successivo. Inserisci il nome del parametro di query del numero di pagina (ad esempio, page).
      6. Nella sezione Checkpointing, configura le impostazioni che consentono al connettore di ricordare il punto in cui si è interrotto tra i cicli di polling ricorrenti:
        • Strategia:scegli una delle seguenti strategie e configura i campi obbligatori:
          • Nessuno:recupera tutti i dati disponibili senza monitorare i progressi nei cicli.
          • Timestamp più recente:monitora il timestamp del record più recente. Inserisci il percorso JSON del valore del checkpoint (ad esempio timestamp o event_time) e la variabile del checkpoint (ad esempio last_run_time, a cui si fa riferimento nei sondaggi successivi come {{.last_run_time}}).
          • Ultimo record:monitora l'ID record più alto per recuperare solo i nuovi record. Inserisci il percorso JSON del valore del checkpoint (ad esempio id o event_id) e la variabile del checkpoint (ad esempio last_id, a cui viene fatto riferimento come {{.last_id}}).
          • Token iteratore:utilizza i token di continuazione persistenti forniti dall'API. Inserisci il percorso JSON del valore del checkpoint e la variabile del checkpoint (ad esempio, iterator_token, a cui viene fatto riferimento come {{.iterator_token}}).
    2. Estrazione dei dati (il bridge): configura quanto segue:
      • Percorso JSON dell'identificatore dell'elemento:il campo specifico nella risposta principale che identifica in modo univoco una singola entità (ad esempio id o zone_id). Il connettore estrae questo identificatore da ogni elemento dell'array principale.
      • Nome variabile modello:specifica un nome variabile personalizzato per contenere l'ID estratto (ad esempio zone_id). L'interfaccia utente mostra un badge dinamico: Utilizza {{.zone_id}} nella richiesta secondaria di seguito.
    3. Richiesta figlio (dettagli): configura l'endpoint che restituisce i log dettagliati per ogni elemento:
      1. In Endpoint API, configura i seguenti parametri per definire il percorso tecnico e il pacing della velocità per la richiesta:
        • Percorso endpoint:la route API specifica aggiunta all'URL di base (ad esempio, /client/v4/zones/{{.zone_id}}/logs/received). Definisce la risorsa di telemetria esatta da interrogare.
        • Metodo HTTP:seleziona GET per recuperare i dati utilizzando i parametri di ricerca dell'URL oppure POST per inviare un payload di ricerca o un corpo del filtro.
        • Corpo della richiesta:per le richieste POST, fornisci il payload di dati JSON. Puoi incorporare variabili di checkpoint dinamiche come {"limit": 100, "start_time": "{{.last_timestamp}}"}.
      2. Numero massimo di richieste al minuto:inserisci il numero massimo di richieste da inviare al minuto. Si tratta di un limitatore di frequenza lato client per rispettare i limiti di frequenza dell'API del fornitore (valore predefinito: 5 RPM = 1 richiesta ogni 12 secondi). Questa impostazione impedisce l'esaurimento della quota durante la paginazione su più pagine.
      3. (Facoltativo) In Intestazioni personalizzate, configura Nome intestazione e Valore, quindi fai clic su Aggiungi per definire le intestazioni HTTP specializzate richieste dall'API di destinazione (ad esempio, Content-Type: application/json, Accept: application/json).
      4. (Facoltativo) In Parametri di query, configura Chiave e Valore, poi fai clic su Aggiungi per specificare filtri o opzioni aggiuntivi aggiunti alla stringa di query dell'URL (ad esempio, count=1000, status=active) o associa variabili di modello dinamiche (ad esempio, start={{.last_run_time}}).
      5. In Strategia di impaginazione, seleziona il meccanismo di impaginazione richiesto dall'API di terze parti per gestire i set di risultati di più pagine, quindi configura i campi obbligatori:
        • Nessuno:recupera i dati in un'unica richiesta senza paginazione.
        • Paginazione dei token:utilizza i token (chiavi personalizzate) per ottenere la pagina successiva. Inserisci il percorso JSON del token della pagina successiva (ad esempio meta.next_cursor) e il nome del parametro di query di paginazione del token (ad esempio cursor).
        • Paginazione dei link:segui gli URL forniti nella risposta per ottenere altri dati. Inserisci il percorso JSON del link alla pagina successiva (ad esempio, links.next o @odata.nextLink).
        • Paginazione con offset:salta un numero fisso di record per ottenere il set successivo. Inserisci il nome del parametro di query offset (ad esempio, offset).
        • Paginazione con numeri di pagina:vai al numero di pagina sequenziale successivo. Inserisci il nome del parametro di query del numero di pagina (ad esempio, page).
      6. Nella sezione Checkpointing, configura le impostazioni che consentono al connettore di ricordare il punto in cui si è interrotto tra i cicli di polling ricorrenti:
        • Strategia:scegli una delle seguenti strategie e configura i campi obbligatori:
          • Nessuno:recupera tutti i dati disponibili senza monitorare i progressi nei cicli.
          • Timestamp più recente:monitora il timestamp del record più recente. Inserisci il percorso JSON del valore del checkpoint (ad esempio timestamp o event_time) e la variabile del checkpoint (ad esempio last_run_time, a cui si fa riferimento nei sondaggi successivi come {{.last_run_time}}).
  13. Configura le seguenti impostazioni di Pianificazione ed etichette:

    • Frequenza di polling:seleziona un intervallo standard (ad esempio 5m, 1h).
    • Spazio dei nomi:tag organizzativo facoltativo.
    • Etichette di importazione:coppie chiave-valore per il controllo dell'accesso basato sui ruoli per i dati.
  14. Fai clic su Invia. Google SecOps esegue un controllo automatico della convalida delle credenziali e degli endpoint. Se la convalida viene eseguita correttamente, il feed inizia il polling.

Configurazione di esempio 1: eventi di controllo di 1Password (modello API standard (sequenziale))

La seguente configurazione JSON dichiarativa mostra un modello Standard API (Sequential), con checkpoint basato sul cursore per 1Password:

{
  "base_url": "https://events.1password.com",
  "polling_frequency": 15,
  "header_auth": {
    "header_key_values": [
      {
        "key": "Authorization",
        "value": "Bearer <SECRET_STORED_IN_SECRET_MANAGER>"
      }
    ]
  },
  "primary_request": {
    "request_settings": {
      "endpoint_path": "/api/v1/auditevents",
      "http_method": "POST",
      
      "request_body": "{\"limit\": 1000, \"start_time\": \"{{.last_run_time}}\"}",
      
      "custom_headers": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "max_requests_per_minute": 5
    },
    "pagination_strategy": {
      "token": {
        "next_page_token_json_path": "additional_items_url",
        "query_param": "cursor"
      }
    },
    "checkpointing": {
      "latest_timestamp_strategy": {
        "checkpoint_value_path": "timestamp",
        "checkpoint_variable": "last_run_time"
      }
    },
    "response_mapping": {
      "target_data_path": ["items"]
    }
  }
}

Configurazione di esempio concreta 2: telemetria della zona Cloudflare (modello Elenco e dettagli (padre-figlio))

La seguente configurazione JSON dichiarativa mostra un modello di fan-out Elenco e dettagli (padre-figlio) per Cloudflare:

{
 "base_url": "https://api.cloudflare.com",
 "polling_frequency": 30,
 "header_auth": {
   "header_key_values": [
     {
       "key": "Authorization",
       "value": "Bearer <SECRET_STORED_IN_SECRET_MANAGER>"
     }
   ]
 },

 "primary_request": {
   "request_settings": {
     "endpoint_path": "/client/v4/zones",
     "http_method": "GET"
   },
   "response_mapping": {
     "target_data_path": ["result"]
   },
   "pagination_strategy": {
     "none": {}
   },
   "checkpointing": {
     "none_strategy": {}
   },
   "dependent_requests_config": {
     "item_id_json_path": "id",
     "item_id_variable": "zone_id",
     "dependent_requests": [
       {
         "request_settings": {
           "endpoint_path": "/client/v4/zones/{{.zone_id}}/logs/received",
           "http_method": "GET",
           "query_parameters": [
             {
               "key": "start",
               "value": "{{.last_run_time}}"
             },
             {
               "key": "count",
               "value": "1000"
             }
           ],
           "max_requests_per_minute": 5
         },

         "pagination_strategy": {
           "none": {}
         },
         "checkpointing": {
           "latest_timestamp_strategy": {
             "checkpoint_value_path": "EdgeStartTimestamp",
             "checkpoint_variable": "last_run_time"
           }
         },
         "response_mapping": {
           "target_data_path": []
         }
       }
     ]
   }
 }
}

Best practice per le API personalizzate

  • Indicazioni sulla frequenza di polling:
    • Inizia con intervalli di polling moderati: imposta l'intervallo di polling iniziale su 15 o 30 minuti per gli endpoint ad alto volume per osservare il comportamento della quota dell'API del fornitore prima di ridurlo a 5 minuti.
    • Ottimizza per fan-out ad alto volume: per i feed principale-secondario (elenco e dettagli) che rilevano decine o centinaia di risorse, Google consiglia vivamente di impostare la frequenza di polling su 30-60 minuti per consentire il completamento corretto di tutte le attività secondarie con pacing prima dell'avvio del ciclo di rilevamento successivo.
  • Convalida i percorsi di importazione: utilizza la documentazione del fornitore o gli strumenti di test API per confermare il nome esatto del campo JSON per i timestamp prima di configurare il checkpoint dello stato.
  • Decomponi le API con più elementi secondari: se un'API di terze parti richiede il recupero di avvisi e log di controllo per un singolo elenco di utenti, crea due feed separati con un solo elemento secondario (uno per gli avvisi e uno per i log di controllo) per mantenere un isolamento ottimale.

Misure di salvaguardia per la limitazione di frequenza e la limitazione

Per evitare che le configurazioni dei feed dei clienti sovraccarichino le quote dei fornitori di terze parti o monopolizzino le risorse di sistema, il tipo di feed API personalizzata implementa le seguenti misure di protezione automatizzate:

  • Pacing delle richieste configurabile (limitazione di frequenza): le richieste HTTP in uscita vengono automaticamente regolate per evitare di superare i limiti di frequenza del fornitore. La velocità di pacing predefinita è di 5 richieste al minuto (1 richiesta ogni 12 secondi). Puoi regolare questo valore per endpoint utilizzando il campo Max requests per minute (Richieste massime al minuto) nelle impostazioni dell'endpoint in modo che corrisponda alle quote API pubblicate del fornitore.
  • Limite di richieste secondarie: per i feed Genitore-figlio (elenco e dettagli), una richiesta di rilevamento può inviare fino a 500 richieste secondarie per ciclo di polling.
  • Profondità di fan-out a un solo livello: il connettore applica rigorosamente una profondità di fan-out massima di un livello (individuazione del genitore → dettagli del figlio). Le richieste dipendenti nidificate (chiamate secondarie) non sono supportate.
  • Limite massimo delle dimensioni del payload di risposta:la dimensione massima consentita della risposta HTTP per una singola richiesta o pagina è 50 MB. Se un'API non paginata restituisce una risposta superiore a 50 MB, il recupero non andrà a buon fine e verrà visualizzato un errore di esaurimento delle risorse. Per evitare questo problema, configura sempre parametri di ricerca di paginazione (ad esempio limit o page_size) per recuperare i record in batch più piccoli.
  • Backoff HTTP 429 automatizzato:se un'API di un fornitore di terze parti risponde con HTTP 429 (Troppe richieste), Google SecOps acquisisce automaticamente lo stato e avvia un periodo di backoff esponenziale, mettendo in pausa l'esecuzione dell'attività fino al ripristino della finestra di quota del fornitore.

Limitazioni API personalizzate

Quando pianifichi i percorsi di importazione, tieni presente che il tipo di feed API personalizzata presenta le seguenti limitazioni:

  • Supporto JSON rigoroso:sono supportate solo le risposte API JSON. Altri formati come XML, CSV, Parquet e Avro non sono supportati.
  • Nessuna firma dinamica delle richieste:le API che richiedono firme crittografiche dinamiche per richiesta non sono supportate (ad esempio AWS SigV4, Akamai o Oracle OCI).
  • Nessuna autenticazione a più passaggi:le API che richiedono una chiamata di accesso programmatica iniziale per scambiare le credenziali con un token di sessione temporaneo (ad esempio Saviynt) prima del polling non sono supportate.
  • Nessun WebSockets o inserimento push:i feed API personalizzati supportano il polling pull HTTPS standard. Le connessioni di streaming persistenti (WebSocket) e i webhook in entrata non sono supportati.
  • Nessun mutual TLS (mTLS): l'autenticazione deve basarsi su chiavi API, autenticazione di base o credenziali client OAuth 2.0 standard. Gli handshake dei certificati lato client non sono supportati.

Risolvere i problemi relativi ai feed API personalizzati

Per esaminare gli errori relativi ai feed API personalizzati in Esplora log di Cloud Logging, utilizza le seguenti query:

resource.type="gce_instance" OR resource.type="generic_task"
jsonPayload.service="gopher"
jsonPayload.feed_id="FEED_ID"

Sostituisci FEED_ID con l'ID feed.

Per filtrare in modo specifico le richieste HTTP non riuscite, utilizza la seguente query:

jsonPayload.service="gopher"
jsonPayload.feed_id="FEED_ID"
jsonPayload.http_status_code >= 400

Sostituisci FEED_ID con l'ID feed.

Modalità di errore comuni e soluzioni

Sintomo / errore Causa principale Soluzione / rimedio
HTTP 401 Non autorizzato / HTTP 403 Non consentito Chiave API, password o credenziali OAuth scadute o non valide. Modifica il feed, inserisci nuovamente le credenziali valide e fai clic su Invia.
HTTP 404 Non trovato Modello di percorso dell'endpoint o URL di base errato. Esamina l'endpoint nella documentazione dell'API del fornitore. Assicurati che l'URL di base termini in modo pulito e che il percorso dell'endpoint inizi con /.
HTTP 429 Too Many Requests Limiti di frequenza delle richieste API del fornitore superati. Aumenta la frequenza di polling o riduci il parametro limit nei parametri di ricerca.
Errore di estrazione JSON (items_path vuoto) Mancata corrispondenza nel percorso di configurazione della risposta. Verifica la struttura del payload della risposta API e aggiorna il percorso JSON dei dati di destinazione.
Importazione dati duplicati Timestamp di configurazione dello stato o percorso dell'estrattore di ID non valido. Controlla il nome del campo del record di log per il timestamp e aggiorna il percorso dell'estrattore.

Gestire i feed

Dopo aver configurato i feed di dati, utilizza gli strumenti di gestione per monitorare lo stato dell'importazione, modificare i parametri esistenti e gestire il ciclo di vita dei feed. Questa sezione descrive come interpretare gli stati dei feed ed eseguire le attività di manutenzione essenziali per garantire la visibilità continua dei dati.

La pagina Feed offre diversi strumenti per aiutarti a navigare e organizzare l'elenco dei feed configurati:

  • Cerca: utilizza la barra di ricerca per trovare un feed in base al nome del feed, all'ID feed o al tipo di origine.

  • Filtro: fai clic sull'icona del filtro per restringere l'elenco in base ad attributi specifici del feed.

  • Scarica CSV: fai clic su Scarica in formato CSV per esportare l'elenco attuale di feed in un file CSV.

  • Impaginazione: utilizza i controlli di impaginazione per:

    • Modifica il numero di righe per pagina.

    • Naviga tra le varie pagine dei feed utilizzando le schede e le frecce.

  • Ora dell'ultimo aggiornamento: visualizza il timestamp per vedere l'ultima volta che l'elenco dei feed è stato aggiornato.

Visualizza i feed configurati

La pagina Feed mostra tutti i feed che hai configurato.

  1. Vai a Impostazioni SIEM > Feed. La pagina principale mostra tutti i feed configurati.
  2. Tieni il puntatore sopra ogni riga per visualizzare il menu more_vert Altro.
  3. Nel menu puoi visualizzare i dettagli del feed, modificarlo, disattivarlo o eliminarlo.

Monitorare lo stato del feed

Puoi monitorare lo stato del feed nella pagina iniziale Feed, dove i feed possono avere i seguenti stati:

  • Attivo: il feed è configurato e pronto per l'importazione dei dati nel tuo account Google SecOps.
  • InProgress: Google SecOps tenta di estrarre i dati dalla terza parte configurata.
  • Completato: i dati sono stati recuperati correttamente da questo feed.
  • Archiviata: feed disattivato.
  • Non riuscita: il feed non riesce a recuperare i dati. Questo problema è probabilmente dovuto a un problema di configurazione. Fai clic sulla domanda per visualizzare l'errore di configurazione. Dopo aver corretto l'errore e inviato nuovamente il feed, torna alla pagina Feed per verificare se ora funziona.

Modificare i feed esistenti

Nella pagina Feed, puoi modificare un feed esistente nel seguente modo:

  1. Tieni il puntatore sopra un feed esistente e fai clic su more_vert nella colonna a destra.

  2. Fai clic su Modifica feed. Ora puoi modificare i parametri di input per il feed e inviarlo di nuovo a Google SecOps, che tenterà di utilizzare il feed aggiornato.

Attivare e disattivare i feed

Nella colonna Stato, i feed attivati sono etichettati come Attivo, In corso, Completato o Non riuscito. I campi disabilitati sono etichettati come Archiviato. Per una descrizione, vedi Stato del feed.

Nella pagina Feed puoi attivare o disattivare uno qualsiasi dei feed esistenti:

  1. Tieni il puntatore sopra un feed esistente e fai clic su more_vert nella colonna a destra.

  2. (Facoltativo) Fai clic sul pulsante di attivazione/disattivazione Feed abilitato per disattivare il feed.

  3. (Facoltativo) Fai clic sul pulsante di attivazione/disattivazione Disattiva feed per disattivare il feed. Il feed ora è etichettato come Archiviato.

Eliminare i feed

Nella pagina Feed, puoi anche eliminare un feed esistente:

  1. Tieni il puntatore sopra un feed esistente e fai clic su more_vert nella colonna a destra.

  2. Fai clic su Elimina feed. Si apre la finestra ELIMINA FEED. Per eliminare definitivamente il feed, fai clic su Sì, elimina.

Per i feed API personalizzati, viene visualizzata una finestra di dialogo con una casella di controllo facoltativa: Elimina dati backlog in attesa:

  • Deselezionata (impostazione predefinita): la configurazione e le credenziali del feed vengono eliminate, ma i dati in coda in attesa di elaborazione possono essere inseriti.
  • Selezionata:la configurazione del feed, le credenziali e tutti i dati di backlog in attesa vengono rimossi definitivamente.

Controllare la velocità di importazione

Quando la velocità di importazione dati per un tenant raggiunge una determinata soglia, Google Security Operations limita la velocità di acquisizione per i nuovi feed di dati per impedire che un'origine con una velocità di acquisizione elevata influisca sulla velocità di acquisizione di un'altra origine dati. In questo caso, si verifica un ritardo, ma non vengono persi dati. Il volume di importazione e la cronologia di utilizzo del tenant determinano la soglia.

Puoi richiedere un aumento del limite di frequenza contattando l'assistenza clienti Google Cloud.

Risolvere i problemi relativi ai feed non riusciti

Nella pagina Feed puoi visualizzare dettagli quali tipo di origine, tipo di log, ID feed e stato dei feed esistenti, come segue:

  1. Tieni il puntatore sopra un feed esistente e fai clic su more_vert nella colonna a destra.

  2. Fai clic su Visualizza feed. Viene visualizzata una finestra di dialogo con i dettagli del feed. Per un feed non riuscito, puoi trovare i dettagli dell'errore in Dettagli > Stato.

Per un feed non riuscito, i dettagli includono la causa dell'errore e i passaggi per risolverlo.

Consulta la tabella Errori di origine e importazione per i messaggi di errore che potresti riscontrare quando utilizzi i feed di dati.

Per l'analisi dettagliata e la risoluzione dei problemi relativi all'attività dei feed, puoi visualizzare i log in Cloud Logging. Consulta Analizzare l'attività dei feed con Cloud Logging.

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