Spanner Omni scrive audit log che registrano le attività amministrative e gli accessi ai dati all'interno delle tue implementazioni di Spanner Omni.
Gli audit log ti aiutano a rispondere alla domanda "Chi ha fatto cosa, dove e quando?". Utilizza i log di controllo per aiutare le tue entità di sicurezza, controllo e conformità a monitorare i tuoi dati e sistemi Spanner Omni per individuare possibili vulnerabilità o uso improprio dei dati esterni.
Prima di iniziare
Configura il deployment di Spanner Omni con la crittografia TLS o mutual TLS (mTLS). Se crei un deployment senza crittografia TLS o mTLS, non vengono generati audit log. Per istruzioni sulla creazione di un deployment con crittografia TLS o mTLS, consulta quanto segue:
Tipi di audit log
Spanner Omni supporta i seguenti tipi di log di controllo.
Audit log delle attività di amministrazione
Gli audit log per le attività di amministrazione registrano le chiamate API che modificano la configurazione o i metadati del deployment. Ad esempio, Spanner Omni scrive log di controllo delle attività di amministrazione quando un utente crea un database.
Gli audit log per le attività di amministrazione vengono generati per impostazione predefinita per i deployment configurati con la crittografia TLS e mTLS. Non puoi configurarli, escluderli o disabilitarli.
Per un elenco dei metodi che scrivono audit log delle attività di amministrazione, consulta Metodi per tipo di autorizzazione.
Audit log degli accessi ai dati
Gli audit log di accesso ai dati registrano le chiamate API che leggono la configurazione o i metadati del tuo deployment, nonché le chiamate API che creano, modificano o leggono i dati utente. Ad esempio, Spanner Omni scrive audit log di accesso ai dati quando un utente descrive un database, esegue una query SQL o esegue un'istruzione Data Manipulation Language (DML).
Gli audit log di accesso ai dati sono disabilitati per impostazione predefinita perché possono essere di grandi dimensioni. Per registrare gli eventi di accesso ai dati, abilitali e configurali in modo esplicito. I log di controllo dell'accesso ai dati aiutano l'assistenza Google a risolvere i problemi, pertanto consigliamo di attivarli.
Per istruzioni sulla configurazione di questi log, consulta Configurare gli audit log di accesso ai dati. Per un elenco dei metodi che scrivono audit log di accesso ai dati, vedi Metodi per tipo di autorizzazione.
Audit log degli eventi di sistema
Gli audit log degli eventi di sistema registrano quando il sistema modifica la configurazione delle risorse Spanner Omni senza l'azione diretta dell'utente. Ad esempio, Spanner Omni scrive un audit log degli eventi di sistema quando il sistema ottimizza automaticamente un database appena ripristinato o crea un backup pianificato.
Gli audit log degli eventi di sistema vengono generati per impostazione predefinita per i deployment configurati con la crittografia TLS e mTLS. Non puoi configurarli, escluderli o disabilitarli.
Per saperne di più sugli eventi di sistema che generano questi log, vedi Eventi di sistema.
Configurazione degli audit log di accesso ai dati
Per abilitare gli audit log di accesso ai dati, configura la policy Identity and Access Management (IAM) per la tua implementazione utilizzando la CLI Spanner Omni o l'API. Puoi attivare la registrazione per tipi di autorizzazione specifici ed esentare utenti specifici dalla registrazione.
Autorizzazioni obbligatorie
Per configurare gli audit log di accesso ai dati, devi disporre dell'autorizzazione
spanner.instances.setIamPolicy.
Per visualizzare le configurazioni degli audit log di accesso ai dati, devi disporre dell'autorizzazione
spanner.instances.getIamPolicy.
Tipi di autorizzazioni
I metodi API controllano le autorizzazioni IAM e ogni autorizzazione ha un tipo di autorizzazione associato. Quando configuri gli audit log di accesso ai dati, specifica i tipi di autorizzazione da registrare. I tipi di autorizzazione sono suddivisi come segue:
Tipi di autorizzazione di accesso ai dati:
ADMIN_READ: registra i metodi API che leggono i metadati o le informazioni di configurazione. Ad esempio, descrivere un database.DATA_READ: registra i metodi API che leggono i dati utente. Ad esempio, l'esecuzione di una query SQL.DATA_WRITE: registra i metodi API che scrivono i dati utente. Ad esempio, l'esecuzione di un'istruzione DML.
Tipo di autorizzazione Attività di amministrazione:
ADMIN_WRITE: selezionato per i metodi API che scrivono metadati o informazioni di configurazione (ad esempio la creazione di un database). Questi generano audit log per le attività di amministrazione e non possono essere configurati.
Per una spiegazione dettagliata dei tipi di autorizzazione, consulta Tipi di autorizzazione nella documentazione di Cloud Audit Logs.
Configura utilizzando la CLI Spanner Omni
Per configurare i log di controllo dell'accesso ai dati utilizzando Spanner Omni CLI, crea un file di policy JSON che elenca i tipi di log da attivare e gli eventuali membri esenti, quindi applica la policy.
Crea un file delle norme denominato
policy.json:{ "auditConfigs": [ { "auditLogConfigs": [ { "logType": "ADMIN_READ", "exemptedMembers": [ "USER_NAME" ] }, { "logType": "DATA_WRITE" }, { "logType": "DATA_READ" } ], "service": "spanner.googleapis.com" } ] }Applica la policy utilizzando il comando
spanner instances set-iam-policy:spanner instances set-iam-policy default policy.json
Per visualizzare la configurazione attuale degli audit log di accesso ai dati, esegui questo comando:
spanner instances get-iam-policy default
Per altri esempi di casi d'uso comuni per la configurazione, consulta Configurare i log di controllo dell'accesso ai dati nella documentazione di Cloud Audit Logs.
Eventi di sistema
Spanner Omni genera audit log degli eventi di sistema per la maggior parte degli eventi di sistema supportati dalla versione gestita di Spanner. Per maggiori informazioni, consulta Eventi di sistema nella documentazione di Spanner.
Spanner Omni supporta gli eventi di sistema CreateScheduledBackup e
OptimizeRestoredDatabase. Tuttavia, Spanner Omni
non supporta l'evento di sistema AutoscaleInstance perché la scalabilità automatica non è
disponibile in Spanner Omni.
File di log di controllo e conservazione
Spanner Omni scrive i log di controllo nel file system locale dei server Spanner Omni.
Trova i file di audit log utilizzando il seguente percorso e la seguente convenzione di denominazione:
BASE_DIR/logs/PROCESS/audit.log.BUCKET.TIMESTAMP.PROCESS_ID
BASE_DIR: la directory di base specificata all'avvio del deployment di Spanner Omni. Per i deployment Kubernetes, il valore predefinito è/spanner.PROCESS: Spanner Omni esegue più processi per server, ad esempioserver,zone_services,zonal_zone_services,zonal_serverebase_services. Gli audit log vengono scritti nella directory corrispondente al processo che li ha generati.BUCKET: gli audit log di attività di amministrazione ed eventi di sistema vengono scritti nel bucketrequired, mentre gli audit log di accesso ai dati vengono scritti nel bucketdefault.TIMESTAMP: il timestamp di creazione del file.PROCESS_ID: l'ID processo del processo che scrive il log di controllo.
Spanner Omni crea un nuovo file di audit log quando il file corrente
supera i 50 MiB o quando viene riavviato un processo del server. Inoltre, gestisce automaticamente
un link simbolico da
BASE_DIR/logs/PROCESS/audit.log.BUCKET
al file di audit log in fase di scrittura.
L'accesso ai file di audit log locali è controllato dagli elenchi di controllo dell'accesso (ACL) del file system. Chiunque abbia l'autorizzazione per accedere al server e a questi file può visualizzare i log di controllo.
Ti consigliamo di limitare l'accesso alle VM Spanner Omni (ad esempio, limitando l'accesso SSH e configurando gli ACL del file system) in modo che solo il personale autorizzato possa visualizzare i log. Per l'archiviazione a lungo termine, il controllo e la conformità, utilizza un agente di logging (ad esempio Fluentd) per raccogliere ed esportare i log di controllo in un sistema di logging esterno, ad esempio AWS CloudWatch, Grafana Loki, Elasticsearch, Datadog, Splunk o Cloud Monitoring.
Conservazione dei file
Spanner Omni applica criteri di conservazione basati sia sulle dimensioni che sull'età per i file di log di controllo locali:
Limite di dimensioni: i file di log di controllo vengono conservati finché l'utilizzo totale del disco non supera 1 GB. Se viene utilizzato un disco separato per la directory dei log, ai file di log di controllo viene assegnata una quota del 25% dello spazio totale su quel disco.
Limite di tempo: i file di log di controllo vengono conservati per un massimo di 14 giorni, a condizione che non venga superato il limite di dimensioni.
Quando viene raggiunto uno dei due limiti, Spanner Omni elimina prima i file di log meno recenti. Se devi conservare i log di controllo per più di 14 giorni, esportali in un sistema di logging esterno.
Struttura della voce di log di controllo
Le voci del log di controllo Spanner Omni sono formattate come JSON e utilizzano la stessa definizione strutturale di Spanner. Per saperne di più, consulta Struttura voce di log controllo nella documentazione di Cloud Audit Logs.
Nome log
A differenza della versione gestita multi-tenant di Spanner,
Spanner Omni viene eseguito come deployment single-tenant su
server dedicati. Poiché non sono presenti altri tenant o progetti su questi
server, tutte le voci del log di controllo utilizzano l'identificatore di progetto default.
projects/default/logs/cloudaudit.googleapis.com/activity
projects/default/logs/cloudaudit.googleapis.com/data_access
projects/default/logs/cloudaudit.googleapis.com/system_event
Identità del chiamante
I log di controllo registrano l'identità dell'utente che ha eseguito l'operazione registrata.
L'identità del chiamante è memorizzata nel campo AuthenticationInfo dell'oggetto
AuditLog.
In Spanner Omni, l'identità del chiamante è il nome utente dell'utente autenticato che ha eseguito la chiamata API. Per informazioni sulla creazione e sulla gestione degli utenti, consulta Autenticazione e autorizzazione.
Indirizzo IP del chiamante
Spanner Omni non supporta la registrazione dell'indirizzo IP del chiamante nei log di controllo.
Metodi per tipo di autorizzazione
Quando chiami un metodo API, Spanner Omni genera un audit log
in base al tipo di autorizzazione richiesto per eseguire il metodo. I metodi che richiedono le autorizzazioni ADMIN_READ, DATA_READ o DATA_WRITE generano audit log di accesso ai dati, mentre i metodi che richiedono le autorizzazioni ADMIN_WRITE generano audit log delle attività di amministrazione.
Spanner Omni supporta la maggior parte dei metodi dell'API Cloud Spanner. Per la classificazione della registrazione di controllo dei metodi condivisi da Spanner e Spanner Omni, consulta Metodi per tipo di autorizzazione nella documentazione di Spanner.
Spanner Omni introduce anche metodi API unici che generano log di controllo. I metodi contrassegnati come operazioni a lunga esecuzione (LRO) in genere generano due voci dell'audit log: una all'inizio dell'operazione e un'altra al termine. Per saperne di più, consulta Operazioni a lunga esecuzione nella documentazione di Cloud Audit Logs.
| Tipo di autorizzazione | Metodi |
|---|---|
ADMIN_READ |
google.spanner.omni.v1.OmniAdmin.GetLocationgoogle.spanner.omni.v1.OmniAdmin.ListLocationgoogle.spanner.omni.v1.OmniAdmin.GetLocationDistancegoogle.spanner.omni.v1.OmniAdmin.ListLocationDistancegoogle.spanner.omni.v1.OmniAdmin.GetZonegoogle.spanner.omni.v1.OmniAdmin.ListZonesgoogle.spanner.omni.v1.OmniAdmin.GetServergoogle.spanner.omni.v1.OmniAdmin.ListServersgoogle.spanner.omni.v1.OmniAdmin.GetDeploymentgoogle.spanner.omni.v1.OmniAdmin.ListBackupDescriptorsgoogle.spanner.omni.v1.OmniAdmin.GetExternalStoragegoogle.spanner.omni.v1.OmniAdmin.ListExternalStoragesgoogle.spanner.omni.v1.OmniAdmin.GetIamPolicygoogle.spanner.omni.v1.UsersService.GetUsergoogle.spanner.omni.v1.UsersService.ListUsersgoogle.spanner.omni.v1.UsersService.GetRolegoogle.spanner.omni.v1.UsersService.ListRoles
|
ADMIN_WRITE |
google.spanner.omni.v1.OmniAdmin.CreateLocationgoogle.spanner.omni.v1.OmniAdmin.DeleteLocationgoogle.spanner.omni.v1.OmniAdmin.CreateLocationDistancegoogle.spanner.omni.v1.OmniAdmin.UpdateLocationDistancegoogle.spanner.omni.v1.OmniAdmin.DeleteLocationDistancegoogle.spanner.omni.v1.OmniAdmin.CreateZonegoogle.spanner.omni.v1.OmniAdmin.DeleteZonegoogle.spanner.omni.v1.OmniAdmin.CreateServergoogle.spanner.omni.v1.OmniAdmin.DeleteServergoogle.spanner.omni.v1.OmniAdmin.CreateExternalStoragegoogle.spanner.omni.v1.OmniAdmin.DeleteExternalStoragegoogle.spanner.omni.v1.OmniAdmin.SetIamPolicygoogle.spanner.omni.v1.OmniAdmin.ImportBackup (LRO)google.spanner.omni.v1.UsersService.CreateUsergoogle.spanner.omni.v1.UsersService.DeleteUsergoogle.spanner.omni.v1.UsersService.UpdateUser
|
DATA_READ |
google.spanner.omni.v1.ImportExportService.ExportDatabase
(LRO)
|
DATA_WRITE |
google.spanner.omni.v1.ImportExportService.ImportDatabase
(LRO)
|
Metodi che non generano audit log
Spanner Omni esclude gli stessi metodi dalla registrazione degli audit di Spanner. Questi metodi sono esclusi perché sono metodi ad alto volume che comportano costi significativi per la generazione e l'archiviazione dei log, hanno un basso valore di controllo o perché un altro audit log o log della piattaforma fornisce già la copertura del metodo. Per un elenco completo di questi metodi esclusi, consulta Metodi esenti nella documentazione di Spanner.
Inoltre, il metodo google.spanner.omni.v1.LoginService.Login non
genera audit log perché precede i controlli di autenticazione e autorizzazione.
Durata dell'elaborazione
Il campo Durata elaborazione di un audit log registra la durata dell'elaborazione dell'API, ad esempio la durata dell'esecuzione di una query SQL, non il ritardo nella scrittura dell'audit log. Per saperne di più, consulta Durata dell'elaborazione nella documentazione di Spanner.
Confronto con la versione gestita di Spanner
Sebbene la registrazione degli audit in Spanner Omni condivida concetti e formattazione di base con Spanner, esistono diverse differenze fondamentali nel modo in cui i log vengono archiviati, configurati e gestiti.
Differenze
Destinazione log: Spanner Omni scrive i log di controllo direttamente nel file system locale dei server Spanner Omni, anziché esportarli in Cloud Logging.
Configurazione: in Spanner, configura i log di controllo dell'accesso ai dati a livello di progetto utilizzando la console Google Cloud , Google Cloud CLI o l'API Identity and Access Management. In Spanner Omni, puoi configurare i log di controllo dell'accesso ai dati utilizzando la CLI Spanner Omni o l'API Spanner Omni.
Crittografia TLS e mTLS: Spanner applica la crittografia TLS per impostazione predefinita e non può essere disattivata. In Spanner Omni, se scegli di eseguire il deployment senza crittografia TLS o mTLS, non vengono generati audit log.
Conservazione: i log di controllo di Spanner vengono conservati in Logging in base alle impostazioni di conservazione di Logging. Spanner Omni conserva i file di log di controllo locali per un massimo di 14 giorni o fino al raggiungimento dei limiti di dimensione del disco e si basa sull'esportazione dei log in un sistema esterno per l'archiviazione a lungo termine.
Analogie
Formato log: entrambi i prodotti scrivono audit log in formato JSON seguendo la struttura AuditLog standard Google Cloud.
Configurazione dell'accesso ai dati: entrambi i prodotti ti consentono di attivare gli audit log di accesso ai dati in modo granulare per tipo di autorizzazione (
ADMIN_READ,DATA_READ,DATA_WRITE) e supportano l'esenzione di utenti specifici dalla registrazione.
Passaggi successivi
Scopri di più su autenticazione e autorizzazione in Spanner Omni.
Scopri di più sul monitoraggio del deployment di Spanner Omni.