Scenari per l'esportazione di Cloud Logging: requisiti di conformità

Last reviewed 2022-10-26 UTC

Questo scenario mostra come esportare i log da Cloud Logging a Cloud Storage per soddisfare i requisiti di conformità della tua organizzazione. Le organizzazioni devono affrontare molti requisiti di questo tipo per la creazione e la conservazione dei file di logging. Ad esempio, nei casi in cui la conformità a Sarbanes Oxley (SOX) è importante, può essere opportuno mantenere i log per gli utenti, i database e le attività delle console. Per ulteriori informazioni sui periodi di conservazione dei log predefiniti e configurabili, consulta Quote e limiti di Cloud Logging.

In questo scenario, i log esportati vengono inviati a un bucket Cloud Storage configurato. Puoi concedere le autorizzazioni per limitare l'accesso ai log in base alle esigenze. Per ridurre i costi di archiviazione a lungo termine, puoi utilizzare la funzionalità di gestione del ciclo di vita degli oggetti in Cloud Storage per spostare i log su classi Nearline o Coldline Storage ed eliminarli una volta trascorso il periodo di conservazione richiesto.

Questo scenario presuppone un'architettura web a n di livello comune in esecuzione su Google Cloud con macchine virtuali (VM), database e un sistema di archiviazione di supporto. Per questo ambiente vengono esportati i seguenti tipi di log: tutti gli audit log, i log relativi alle macchine virtuali, i log di archiviazione e i log del database. Puoi modificare i tipi di log esportati regolando i filtri di logging nell'esempio.

Configura l'esportazione dei log

Il seguente diagramma mostra i passaggi per abilitare l'esportazione dei log in Cloud Storage.

Attivazione del supporto del logging.

Configura il bucket di esportazione dei log in Cloud Storage

Segui le istruzioni per configurare un bucket Cloud Storage che ospiti i log esportati. Per Classe di archiviazione predefinita, seleziona Regionale, a meno che tu non abbia bisogno della classe Multi-Regional, Nearline o Coldline Storage.

Configura la gestione del ciclo di vita degli oggetti per il bucket Cloud Storage

Questo scenario presuppone un requisito di conservazione di 7 anni per tutti i log. Per ridurre al minimo i costi di archiviazione, puoi aggiungere regole del ciclo di vita degli oggetti in Cloud Storage per spostare i log su Nearline o Coldline Storage dopo un determinato numero di giorni, per poi eliminarli quando non è più necessario conservarli.

Best practice: spostare i log su Nearline o Coldline e poi eliminarli ti consente di gestire i costi operativi ricorrenti relativi alla manutenzione dei log.

Puoi seguire le istruzioni per creare regole del ciclo di vita. Il seguente screenshot mostra un insieme a cascata di regole che cambiano la classe di archiviazione in Nearline dopo 60 giorni, la classe di archiviazione a Coldline dopo 120 giorni e poi i log dopo 2555 giorni, ossia circa 7 anni.

Regole a cascata.

Attiva l'audit logging per tutti i servizi

Gli audit log di accesso ai dati, ad eccezione di BigQuery, sono disattivati per impostazione predefinita. Per abilitare tutti gli audit log, segui le istruzioni per aggiornare il criterio IAM (Identity and Access Management) con la configurazione indicata nella documentazione relativa ai criteri di controllo. I passaggi includono quanto segue:

  • È in corso il download del criterio IAM attuale come file.
  • Aggiunta dell'oggetto JSON o YAML del criterio dell'audit log al file dei criteri attuale.
  • Aggiornamento del progetto Google Cloud con il file dei criteri modificati.

Di seguito è riportato un esempio di oggetto JSON che abilita tutti gli audit log per tutti i servizi.

"auditConfigs": [
    {
        "service": "allServices",
        "auditLogConfigs": [
            { "logType": "ADMIN_READ" },
            { "logType": "DATA_READ"  },
            { "logType": "DATA_WRITE" },
        ]
    },
]

Configura l'esportazione dei log

Dopo aver configurato le esportazioni aggregate o l'esportazione dei log, devi perfezionare i filtri di logging per esportare gli audit log, i log relativi alle macchine virtuali, i log di archiviazione e i log del database. Il seguente filtro di logging include gli audit log delle attività di amministrazione e dell'accesso ai dati e i log per tipi di risorse specifici.

logName:"/logs/cloudaudit.googleapis.com" OR
resource.type:gce OR
resource.type=gcs_bucket OR
resource.type=cloudsql_database OR
resource.type=bigquery_resource

Da Google Cloud CLI, utilizza il comando gcloud logging sinks create o la chiamata API organizations.sinks.create per creare un sink con i filtri appropriati. Il comando gcloud di esempio seguente crea un sink chiamato gcp_logging_sink_gcs per l'organizzazione. Il sink include tutti i progetti figlio e specifica i filtri per selezionare singoli audit log.

gcloud logging sinks create gcp_logging_sink_gcs \
    storage.googleapis.com/gcp-logging-export-000100011000 \
    --log-filter='logName: "/logs/cloudaudit.googleapis.com" OR \
    resource.type:\"gce\" OR \
    resource.type=\"gcs_bucket\" OR   \
    resource.type=\"cloudsql_database\" OR  \
    resource.type=\"bigquery_resource\"' \
    --include-children   \
    --organization=324989855333

L'output comando è simile al seguente:

Created [https://logging.googleapis.com/v2/organizations/324989855333/sinks/gcp_logging_sink_gcs].
Please remember to grant `serviceAccount:gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com` full-control access to the bucket.
More information about sinks can be found at /logging/docs/export/configure_export

La voce serviceAccount restituita dalla chiamata API include l'identità gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com. Questa identità rappresenta un account di servizio Google Cloud creato per l'esportazione. Finché non concedi a questa identità l'accesso in scrittura alla destinazione, le esportazioni voce di log da questo sink non riusciranno. Per ulteriori informazioni, consulta la sezione successiva o la documentazione per la concessione dell'accesso a una risorsa.

Imposta le autorizzazioni dei criteri IAM per il bucket Cloud Storage

Aggiungendo l'account di servizio gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com al bucket gcp-logging-export-000100011000 con le autorizzazioni Creatore oggetti Storage, concedi all'account di servizio l'autorizzazione di scrittura nel bucket. Finché non aggiungi queste autorizzazioni, l'esportazione del sink non riuscirà.

Per aggiungere le autorizzazioni al bucket gcp-logging-export:

  1. Nella console Google Cloud, apri il browser Storage:

    VAI SU BROWSER PER SPAZIO DI ARCHIVIAZIONE

  2. Seleziona il bucket gcp-logging-export.

  3. Fai clic su Mostra riquadro informazioni, quindi seleziona le autorizzazioni di Creatore oggetti Storage.

    Autorizzazioni per i criteri IAM - Creatore oggetti Storage.

Dopo aver creato l'esportazione di log utilizzando il filtro precedente, i file di log inizieranno a essere inseriti nei bucket Cloud Storage nel progetto configurato.

Best practice: puoi implementare un criterio con autorizzazioni minime in base alle tue esigenze. Puoi configurare le autorizzazioni del bucket in base ad account utente Google Cloud, gruppi Google o account di servizio Google Cloud specifici. Utilizza le autorizzazioni IAM per concedere l'accesso al bucket Cloud Storage e l'accesso collettivo agli oggetti di un bucket.

Per un esempio di insieme di autorizzazioni, puoi:

  • Rimuovi tutti gli utenti non essenziali dalle autorizzazioni del bucket Cloud Storage.
  • Aggiungi il controllo completo per l'amministratore di Cloud Storage.
  • Concedi all'utente di esportazione le autorizzazioni per scrivere i file di esportazione dei log.
  • Concedere ad altri singoli utenti l'accesso in visualizzazione alle esportazioni dei log di Google Cloud.

Puoi aggiornare le autorizzazioni IAM per il bucket direttamente nella console Google Cloud, mediante lo strumento a riga di comando gsutil o l'API IAM. L'esempio seguente mostra un insieme campione di autorizzazioni e screenshot associati a un bucket Cloud Storage nella console Google Cloud.

Ruolo: Amministratore Storage

  • Descrizione IAM: controllo completo delle risorse Cloud Storage
  • Utilizzo: utilizza questo ruolo per concedere l'accesso agli utenti amministratori per le risorse Cloud Storage senza concedere l'accesso per modificare i contenuti archiviati in Cloud Storage.
  • Account di esempio:

    storage-admin@example.com

    Ruolo: Amministratore Storage.

Ruolo: amministratore oggetti Storage

  • Descrizione IAM: controllo completo degli oggetti Cloud Storage
  • Utilizzo: utilizza questo ruolo per concedere l'accesso completo agli utenti amministratore per gli oggetti file di Cloud Storage senza concedere l'accesso per modificare la configurazione delle risorse di Cloud Storage.
  • Account di esempio:

    storage-object-admin@example.com: user1@example.com, user2@example.com

    Ruolo: Amministratore oggetti Storage

Ruolo: visualizzatore oggetti Storage

  • Descrizione IAM: accesso in lettura agli oggetti Cloud Storage
  • Utilizzo: utilizza questo ruolo per concedere agli utenti l'accesso di sola lettura ai log di Google Cloud.
  • Account di esempio:

    storage-viewer@example.com: user3@example.com

    Ruolo: Visualizzatore oggetti Storage.

Best practice:se utilizzi Google Workspace o la versione consumer di Google Gruppi, puoi aggiungere un gruppo Google come gcp-logging-export-viewers@example.com con le autorizzazioni Visualizzatore oggetti Storage. Puoi quindi aggiungere o rimuovere utenti nel gruppo gcp-logging-export-viewers@example.com senza dover modificare le autorizzazioni del bucket Cloud Storage per ogni modifica alle autorizzazioni di visualizzazione degli utenti.

Utilizzo dei log esportati

Dopo aver creato l'esportazione di log utilizzando il filtro in alto, i file di log iniziano a compilare il bucket Cloud Storage nel progetto configurato. Ogni log crea nel bucket una cartella separata, suddivisa in una struttura gerarchica basata sulla data. Puoi accedere ai log tramite la console Google Cloud, lo strumento a riga di comando gsutil o l'API IAM. Lo screenshot seguente mostra un esempio di struttura di cartelle nella console Google Cloud.

Esempio di struttura di cartelle.

Ogni file di log è costituito da dati JSON che seguono i formati di voce di log textPayload, protoPayload e jsonPayload. Nel tempo, i file di log nel bucket Cloud Storage sono soggetti al processo del ciclo di vita di Cloud Storage, che prima sposta i log su Nearline Storage, poi sposta i log su Coldline Storage e infine elimina i log in base alla configurazione.

Concessione dell'accesso esterno

Potresti voler concedere a utenti specifici l'accesso ai log esportati, ad esempio gli analisti della sicurezza, il tuo team DevOps e i revisori.

Strategie di località dei log

Esistono diverse opzioni per concedere l'accesso ai log in Cloud Storage.

  • Crea copie dei log da condividere.

    Crea manualmente o in modo programmatico una copia di un singolo file di log o di un insieme di file di log e inserisci le copie in un bucket Cloud Storage separato. Poi utilizza le autorizzazioni del bucket separate per condividere i log con utenti specifici, a seconda dei casi.

    Vantaggi: puoi limitare la quantità di dati esposti solo ai dati copiati.

    Svantaggi: è necessario creare, condividere e gestire i set di dati e le autorizzazioni separati, il che può comportare costi più elevati.

  • Concedi l'accesso di sola lettura a tutti i log.

    Imposta manualmente o in modo programmatico le autorizzazioni del visualizzatore sul bucket di esportazione dei log di Cloud Storage, che concede l'accesso a tutte le esportazioni dei log.

    Vantaggi: l'accesso è facile.

    Svantaggi: devi concedere l'accesso a tutti i log anziché a file di log specifici.

Strategie di controllo dell'accesso degli utenti

Puoi utilizzare le autorizzazioni del bucket Cloud Storage per condividere il bucket Cloud Storage delle esportazioni di logging con Account Google o gruppi Google specifici.

  • Utilizza un gruppo di Google Gruppi.

    Crea un gruppo Google come auditors@example.com con accesso di sola lettura al bucket Cloud Storage di esportazione di logging. Potrai quindi gestire l'elenco degli Account Google aggiungendo o rimuovendo i revisori al gruppo Google.

    Vantaggi: è facile gestire l'accesso attraverso un gruppo; lo scopo dell'accesso dell'utente è chiaro.

    Svantaggi: non è possibile determinare chi ha accesso senza controllare i membri del gruppo.

  • Utilizzare Account Google individuali.

    Concedi a ciascun Account Google l'accesso al bucket Cloud Storage di esportazione dei log per ciascun utente che lo richiede.

    Vantaggi: è facile aggiungere ciascun utente manualmente o in modo programmatico.

    Svantaggi: non è possibile distinguere gli utenti controllati dagli altri visualizzatori.

Passaggi successivi