Panoramica dei sink aggregati

Questo documento descrive i sink aggregati, che consentono di raccogliere e instradare le voci di log provenienti da risorse all'interno di una cartella o di un'organizzazione verso una destinazione supportata. Ti consigliamo di utilizzare i sink aggregati per instradare i dati di log verso una posizione di archiviazione centrale.

Informazioni sui sink aggregati

Un sink aggregato è simile a un sink a livello di progetto in quanto contiene filtri e una destinazione. Tuttavia, il router dei log invia a un sink aggregato le seguenti voci di log:

  • Tutte le voci di log provenienti da una cartella o un'organizzazione.
  • Tutte le voci di log provenienti dalle risorse figlio della cartella o dell'organizzazione.

Ad esempio, se crei un sink aggregato a livello di cartella, il router dei log invia a quel sink tutte le voci di log provenienti dalla cartella o dalle risorse figlio della cartella.

Quando nella gerarchia delle risorse di una voce di log esistono sink aggregati, il router dei log invia inizialmente la voce di log a questi sink. Poiché i sink aggregati possono essere di intercettazione o non di intercettazione, il router dei log potrebbe non inviare una voce di log instradata da un sink aggregato ai sink a livello di progetto.

Sink aggregato di intercettazione

Un sink aggregato di intercettazione impedisce l'instradamento delle voci di log ai sink nelle risorse figlio, ad eccezione dei sink _Required nelle risorse da cui provengono le voci di log. Un sink aggregato di intercettazione può essere utile per impedire l'archiviazione di copie duplicate di voci di log in più posizioni.

Ad esempio, supponiamo che tu debba abilitare gli audit log di accesso ai dati per scopi di audit. Per semplificare l'analisi, vuoi archiviare questi log in una posizione centrale. Tuttavia, per motivi di sicurezza e costi, vuoi anche impedire che questi log vengano archiviati a livello di progetto. In questo scenario, puoi creare un sink aggregato di intercettazione.

Sink aggregato non di intercettazione

Un sink aggregato non di intercettazione non influisce sul modo in cui le voci di log vengono instradate ad altri sink. Ciò significa che, anche quando una voce di log corrisponde al filtro di un sink aggregato non di intercettazione, viene inoltrata ad altri sink nella gerarchia delle risorse della voce di log. Un sink aggregato non di intercettazione ti consente di mantenere la visibilità delle voci di log nelle risorse in cui sono state generate.

Ad esempio, puoi creare un sink aggregato non di intercettazione che instrada tutte le voci di log generate dalle cartelle contenute in un'organizzazione a un bucket di log centrale. Le voci di log vengono archiviate nel bucket di log centrale. Tuttavia, poiché il sink non è di intercettazione, il router dei log invia anche le voci di log ai sink di log nella risorsa in cui sono state generate.

Esempi di routing

Questa sezione illustra il flusso di una voce di log proveniente da un progetto attraverso i sink nella gerarchia delle risorse.

Esempio: non esistono sink aggregati

Quando nella gerarchia delle risorse della voce di log non esistono sink aggregati, la voce di log viene inviata ai sink di log nel progetto da cui proviene. Un sink a livello di progetto instrada la voce di log alla destinazione del sink quando la voce di log corrisponde al filtro di inclusione del sink, ma non corrisponde a nessuno dei filtri di esclusione del sink.

Esempio: esiste un sink aggregato non di intercettazione

Supponiamo che nella gerarchia delle risorse di una voce di log esista un sink aggregato non di intercettazione. Dopo che il router dei log invia la voce di log al sink aggregato non di intercettazione, si verifica quanto segue:

  1. Il sink aggregato non di intercettazione instrada la voce di log alla destinazione del sink quando la voce di log corrisponde al filtro di inclusione, ma non corrisponde a nessun filtro di esclusione.

  2. Il router dei log invia la voce di log ai sink di log nel progetto da cui proviene.

    Un sink a livello di progetto instrada la voce di log alla destinazione del sink quando la voce di log corrisponde al filtro di inclusione del sink, ma non corrisponde a nessuno dei filtri di esclusione del sink.

Esempio: esiste un sink aggregato di intercettazione

Supponiamo che nella gerarchia delle risorse di una voce di log esista un sink aggregato di intercettazione. Dopo che il router dei log invia la voce di log al sink aggregato di intercettazione, si verifica una delle seguenti situazioni:

  • La voce di log corrisponde al filtro di inclusione, ma non corrisponde a nessun filtro di esclusione:

    1. La voce di log viene instradata alla destinazione del sink aggregato di intercettazione.
    2. La voce di log viene inviata al sink _Required nel progetto da cui proviene.
  • La voce di log non corrisponde al filtro di inclusione o corrisponde ad almeno un filtro di esclusione:

    1. La voce di log non viene instradata dal sink aggregato di intercettazione.
    2. Il router dei log invia la voce di log ai sink di log nel progetto da cui proviene.

      Un sink a livello di progetto instrada la voce di log alla destinazione del sink quando la voce di log corrisponde al filtro di inclusione del sink, ma non corrisponde a nessuno dei filtri di esclusione del sink.

Destinazioni supportate per i sink aggregati

Questa sezione elenca le destinazioni supportate per i sink aggregati.

Sink di intercettazione

La destinazione di un sink aggregato di intercettazione deve essere un Google Cloud progetto.

I sink di log nel progetto di destinazione reindirizzano le voci di log alle rispettive destinazioni. Sono supportate tutte le destinazioni, ad eccezione dei progetti. Ad esempio, i sink di log nel progetto di destinazione potrebbero reindirizzare le voci di log a un bucket di log.

Sink non di intercettazione

La destinazione di un sink aggregato non di intercettazione può essere una delle seguenti:

La destinazione di un sink può trovarsi in una risorsa diversa dal sink. Ad esempio, puoi utilizzare un sink di log per instradare le voci di log da un progetto a un bucket di log archiviato in un progetto diverso.

Sono supportate le seguenti destinazioni:

Google Cloud progetto

Seleziona questa destinazione quando vuoi che i sink di log nel progetto di destinazione reindirizzino le voci di log o quando hai creato un sink aggregato di intercettazione. I sink di log nel progetto che è la destinazione del sink possono reindirizzare le voci di log a qualsiasi destinazione supportata, ad eccezione di un progetto.

Bucket di log

Seleziona questa destinazione quando vuoi archiviare i dati di log nelle risorse gestite da Cloud Logging. I dati di log archiviati nei bucket di log possono essere visualizzati e analizzati utilizzando servizi come Esplora log e Observability Analytics.

Se vuoi unire i dati di log ad altri dati aziendali, puoi archiviarli in un bucket di log e creare un set di dati BigQuery collegato. Un set di dati collegato è un set di dati di sola lettura su cui è possibile eseguire query come su qualsiasi altro set di dati BigQuery.

Set di dati BigQuery
Seleziona questa destinazione quando vuoi unire i dati di log ad altri dati aziendali. Il set di dati che specifichi deve essere abilitato per la scrittura. Non impostare come destinazione di un sink un set di dati BigQuery collegato. I set di dati collegati sono di sola lettura.
Bucket Cloud Storage
Seleziona questa destinazione quando vuoi archiviare i dati di log a lungo termine. Il bucket Cloud Storage può trovarsi nello stesso progetto in cui provengono le voci di log o in un progetto diverso. Le voci di log vengono archiviate come file JSON.
Argomento Pub/Sub
Seleziona questa destinazione quando vuoi esportare i dati di log da Google Cloud e poi utilizzare integrazioni di terze parti come Splunk o Datadog. Le voci di log vengono formattate in JSON e poi instradate a un argomento Pub/Sub.

Best practice

Ti consigliamo di impostare come destinazione di un sink aggregato un Google Cloud progetto. Con questa destinazione, i sink di log nel progetto Google Cloud di destinazione reindirizzano le voci di log. Il sink _Required instrada solo le voci di log che corrispondono al suo filtro e che provengono dalla risorsa in cui è definito il sink. Pertanto, se vuoi archiviare copie aggiuntive delle voci di log che corrispondono al filtro del sink _Required, devi creare un sink di log personalizzato o modificare il filtro del sink di log _Default.

Quando crei un sink di intercettazione, ti consigliamo di procedere come segue:

  • Valuta se le risorse figlio hanno bisogno di un controllo indipendente dell'instradamento delle voci di log. Se una risorsa figlio ha bisogno di un controllo indipendente di determinate voci di log, verifica che il sink di intercettazione non instradi queste voci di log.

  • Aggiungi i dati di contatto alla descrizione di un sink di intercettazione. Questo potrebbe essere utile se le persone che gestiscono il sink di intercettazione sono diverse da quelle che gestiscono i progetti le cui voci di log vengono intercettate.

  • Prova la configurazione del sink creando prima un sink aggregato non di intercettazione per verificare che le voci di log corrette vengano instradate.

Sink aggregati di intercettazione e metriche basate su log

Le metriche basate su log sono Cloud Monitoring metriche derivate dal contenuto delle voci di log. Il modo in cui una voce di log viene instradata determina le metriche basate su log a cui può essere conteggiata. Poiché un sink aggregato di intercettazione influisce sul modo in cui le voci di log vengono instradate, la creazione di questo tipo di sink può comportare modifiche ai valori delle metriche basate su log esistenti.

Per ulteriori informazioni, consulta In che modo l'instradamento delle voci di log influisce sulle metriche basate su log.

Sink aggregati e Controlli di servizio VPC

Quando utilizzi sink aggregati e Controlli di servizio VPC, si applicano le seguenti limitazioni:

  • I sink aggregati possono accedere ai dati dei progetti all'interno di un perimetro di servizio. Per impedire ai sink aggregati di accedere ai dati all'interno di un perimetro, ti consigliamo di utilizzare IAM per gestire le autorizzazioni di Logging.

  • I Controlli di servizio VPC non supportano l'aggiunta di risorse di cartelle o organizzazioni ai perimetri di servizio. Pertanto, non puoi utilizzare i Controlli di servizio VPC per proteggere i log a livello di cartella e organizzazione, inclusi i log aggregati. Per gestire le autorizzazioni di Logging a livello di cartella o organizzazione, ti consigliamo di utilizzare IAM.

  • Se instradi i log utilizzando un sink a livello di cartella o organizzazione a una risorsa protetta da un perimetro di servizio, devi aggiungere una regola in entrata al perimetro di servizio. La regola in entrata deve consentire l'accesso alla risorsa dal account di servizio utilizzato dal sink aggregato. Per ulteriori informazioni, consulta le seguenti pagine:

  • Quando specifichi una policy in entrata o in uscita per un perimetro di servizio, non puoi utilizzare ANY_SERVICE_ACCOUNT e ANY_USER_ACCOUNT come tipo di identità quando utilizzi un sink di log per instradare i log alle risorse Cloud Storage. Tuttavia, puoi utilizzare ANY_IDENTITY come tipo di identità.

Passaggi successivi