Questa guida spiega come abilitare o disabilitare alcuni o tutti gli audit log di accesso ai dati nei progetti, negli account di fatturazione, nelle cartelle e nelle organizzazioni Google Cloud utilizzando la console Google Cloud o l'API.
Prima di iniziare
Prima di procedere con la configurazione degli audit log di accesso ai dati, devi comprendere le seguenti informazioni:
Gli audit log per l'accesso ai dati, tranne quelli di BigQuery, sono disabilitati per impostazione predefinita. Se vuoi che gli audit log per l'accesso ai dati vengano scritti per servizi Google Cloud diversi da BigQuery, devi abilitarli esplicitamente.
Gli audit log di accesso ai dati vengono archiviati nel bucket
_Default
, a meno che tu non li abbia indirizzati altrove. Per ulteriori informazioni, consulta Archiviazione e routing degli audit log.Gli audit log di accesso ai dati consentono all'Assistenza Google di risolvere i problemi relativi al tuo account. Pertanto, consigliamo di abilitare gli audit log di accesso ai dati, quando possibile.
Panoramica configurazione
Puoi abilitare e configurare alcuni aspetti degli audit log di accesso ai dati per le risorse e i servizi Google Cloud:
Organizzazioni: puoi abilitare e configurare gli audit log di accesso ai dati in un'organizzazione, che si applica a tutti i progetti e le cartelle di Google Cloud esistenti e nuovi nell'organizzazione.
Cartelle: puoi abilitare e configurare gli audit log di accesso ai dati in una cartella, che si applica a tutti i progetti Google Cloud esistenti e nuovi nella cartella. Non puoi disabilitare un audit log di accesso ai dati abilitato nell'organizzazione principale del progetto.
Progetti: puoi configurare gli audit log di accesso ai dati per un singolo progetto Google Cloud. Non puoi disabilitare un audit log di accesso ai dati abilitato in un'organizzazione o una cartella padre.
Account di fatturazione: per configurare gli audit log di accesso ai dati per gli account di fatturazione, utilizza Google Cloud CLI. Per ulteriori informazioni sull'utilizzo di gcloud CLI con gli audit log di accesso ai dati e gli account di fatturazione, consulta la documentazione di riferimento per
gcloud beta billing accounts set-iam-policy
.Configurazioni predefinite: puoi specificare una configurazione predefinita degli audit log di accesso ai dati in un'organizzazione, una cartella o un progetto Google Cloud che si applichi ai futuri servizi Google Cloud che iniziano a produrre audit log di accesso ai dati. Per le istruzioni, vedi Impostare la configurazione predefinita.
Servizi: puoi specificare i servizi di cui vuoi ricevere gli audit log. Ad esempio, potresti volere gli audit log di Compute Engine, ma non di Cloud SQL. Per un elenco dei servizi Google Cloud che possono generare audit log, consulta Servizi Google con audit log.
Tipi di log: puoi configurare i tipi di operazioni che vengono registrati negli audit log di accesso ai dati. Esistono tre tipi di audit log di accesso ai dati:
ADMIN_READ
: registra le operazioni che leggono i metadati o le informazioni di configurazione.DATA_READ
: registra le operazioni che leggono i dati forniti dall'utente.DATA_WRITE
: registra le operazioni che scrivono i dati forniti dall'utente.
Ad esempio, Cloud DNS scrive tutti e tre i tipi di log di accesso ai dati, ma potresti configurare gli audit log di accesso ai dati in modo da registrare solo le operazioni
DATA_WRITE
.Entità esentate: puoi escludere entità specifiche dalla registrazione degli accessi ai dati. Ad esempio, puoi escludere i tuoi account di test interni dalla registrazione delle operazioni di Cloud Monitoring. Per un elenco delle entità valide, inclusi utenti e gruppi, consulta il riferimento al tipo di
Binding
.
Puoi configurare gli audit log di accesso ai dati tramite la pagina IAM Audit log della console Google Cloud oppure utilizzando l'API. Questi metodi sono descritti nelle sezioni seguenti.
Configurazioni specifiche per i servizi
Se esiste sia una configurazione a livello di servizio Google Cloud (allServices
) sia una configurazione per uno specifico servizio Google Cloud, la configurazione risultante per il servizio è l'unione delle due configurazioni.
In altre parole:
Puoi abilitare gli audit log di accesso ai dati per servizi Google Cloud specifici, ma non puoi disabilitare gli audit log di accesso ai dati per i servizi Google Cloud abilitati nella configurazione più ampia.
Puoi aggiungere ulteriori tipi di informazioni all'audit log di accesso ai dati di un servizio Google Cloud, ma non puoi rimuovere i tipi di informazioni specificati nella configurazione più ampia.
Puoi aggiungere entità agli elenchi di esenzione, ma non puoi rimuoverle dagli elenchi di esenzione nella configurazione più ampia.
Per BigQuery Data Transfer Service, la configurazione dell'audit log di accesso ai dati viene ereditata dalla configurazione predefinita dell'audit log.
Configurazioni delle risorse Google Cloud
Puoi configurare gli audit log di accesso ai dati per progetti, account di fatturazione, cartelle e organizzazioni di Google Cloud. Se esiste una configurazione per un servizio Google Cloud nella gerarchia, la configurazione risultante è l'unione delle configurazioni. In altre parole, a livello di progetto Google Cloud:
Puoi abilitare i log per un servizio Google Cloud, ma non per un servizio Google Cloud abilitato in un'organizzazione o in una cartella padre.
Puoi attivare i tipi di informazioni, ma non quelli attivati in un'organizzazione o una cartella padre.
Puoi aggiungere entità agli elenchi di esenzione, ma non puoi rimuoverle dagli elenchi di esenzione in un'organizzazione o una cartella padre.
A livello di organizzazione o cartella padre, puoi abilitare gli audit log di accesso ai dati per un progetto Google Cloud all'interno dell'organizzazione o della cartella, anche se gli audit log di accesso ai dati non sono stati configurati nel progetto Google Cloud.
Controllo dell'accesso
I ruoli e le autorizzazioni di Identity and Access Management regolano l'accesso ai dati di Logging, incluse la visualizzazione e la gestione dei criteri IAM sottostanti le configurazioni di audit logging di accesso ai dati.
Per visualizzare o impostare i criteri associati alla configurazione dell'accesso ai dati, devi disporre di un ruolo con autorizzazioni al livello di risorsa appropriato. Per istruzioni su come concedere questi ruoli a livello di risorsa, consulta Gestire l'accesso a progetti, cartelle e organizzazioni di Google Cloud.
Per impostare i criteri IAM, devi avere un ruolo con l'autorizzazione
resourcemanager.RESOURCE_TYPE.setIamPolicy
.Per visualizzare i criteri IAM, devi avere un ruolo con l'autorizzazione
resourcemanager.RESOURCE_TYPE.getIamPolicy
.
Per l'elenco delle autorizzazioni e dei ruoli necessari per visualizzare gli audit log di accesso ai dati, consulta Controllo dell'accesso con IAM.
Configura gli audit log di accesso ai dati con la console Google Cloud
Questa sezione spiega come utilizzare la console Google Cloud per configurare gli audit log di accesso ai dati.
Puoi anche utilizzare l'API o Google Cloud CLI per eseguire queste attività in modo programmatico. Per maggiori dettagli, consulta Configurare gli audit log di accesso ai dati con l'API.
Per accedere alle opzioni di configurazione degli audit log nella console Google Cloud, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina Audit log:
Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.
Seleziona un progetto, una cartella o un'organizzazione Google Cloud esistente.
Abilita gli audit log
Per abilitare gli audit log di accesso ai dati, segui questi passaggi:
Nella tabella Configurazione degli audit log di accesso ai dati, seleziona uno o più servizi Google Cloud dalla colonna Servizio.
Nella scheda Tipi di log, seleziona i tipi di audit log di accesso ai dati da attivare per i servizi selezionati.
Fai clic su Salva.
Se hai abilitato correttamente gli audit log, la tabella include un'icona check_circle di controllo.
Nell'esempio seguente, puoi vedere che, per il servizio Access Approval, è abilitato il tipo di audit log Lettura dati:
Puoi anche abilitare gli audit log per tutti i servizi Google Cloud che producono audit log di accesso ai dati. Nella tabella Configurazione degli audit log di accesso ai dati, seleziona tutti i servizi Google Cloud.
Tieni presente che questo metodo di configurazione collettiva si applica solo ai servizi Google Cloud attualmente disponibili per la tua risorsa. Se viene aggiunto un nuovo servizio Google Cloud, questo eredita la configurazione predefinita dell'audit.
Disabilita gli audit log di accesso ai dati
Per disabilitare gli audit log di accesso ai dati, segui questi passaggi:
Nella tabella Configurazione degli audit log di accesso ai dati, seleziona uno o più servizi Google Cloud.
Nella scheda Tipi di log nel riquadro delle informazioni, seleziona i tipi di audit log dell'accesso ai dati che vuoi disabilitare per i servizi selezionati.
Fai clic su Salva.
Se hai disabilitato gli audit log di accesso ai dati, la tabella indica questa operazione con un trattino. Gli audit log di accesso ai dati abilitati sono contrassegnati con un'icona di controllo check_circle.
Imposta esenzioni
Puoi impostare esenzioni per controllare quali entità generano audit log di accesso ai dati per determinati servizi. Quando aggiungi un'entità esente, non vengono creati audit log per i tipi di log selezionati.
Per impostare le esenzioni:
Nella tabella Configurazione degli audit log di accesso ai dati, seleziona un servizio Google Cloud dalla colonna Servizio.
Seleziona la scheda Entità esenti nel riquadro delle informazioni.
In Aggiungi entità esente, inserisci l'entità da escludere dalla generazione degli audit log di accesso ai dati per il servizio selezionato.
Puoi aggiungere più entità facendo clic sul pulsante Aggiungi entità esente tutte le volte che vuoi.
Per un elenco delle entità valide, inclusi utenti e gruppi, consulta il riferimento al tipo di
Binding
.In Tipi di log disabilitati, seleziona i tipi di audit log di accesso ai dati che vuoi disabilitare.
Fai clic su Salva.
Se hai aggiunto entità esenti a un servizio, la tabella Configurazione degli audit log di accesso ai dati lo indica con un numero nella colonna Entità esenti.
Per rimuovere un'entità dall'elenco di esenzione, segui questi passaggi:
Nella tabella Configurazione degli audit log di accesso ai dati, seleziona un servizio Google Cloud dalla colonna Servizio.
Seleziona la scheda Entità esenti nel riquadro delle informazioni.
Passa il mouse sopra il nome di un'entità e seleziona l'icona di eliminazione delete che viene visualizzata.
Dopo che il nome dell'entità viene visualizzato barrato, fai clic su Salva.
Per modificare le informazioni di un'entità esente:
Nella tabella Configurazione degli audit log di accesso ai dati, seleziona un servizio Google Cloud dalla colonna Servizio.
Seleziona la scheda Entità esenti nel riquadro delle informazioni.
Espandi expand_more il nome dell'entità.
Seleziona o deseleziona i tipi di audit log di accesso ai dati in base alle esigenze dell'entità.
Fai clic su Salva.
Impostare la configurazione predefinita
Puoi impostare una configurazione ereditata da tutti i servizi Google Cloud nuovi ed esistenti nel progetto, nella cartella o nell'organizzazione Google Cloud. L'impostazione di questa configurazione predefinita si applica se un nuovo servizio Google Cloud diventa disponibile e le entità della tua organizzazione iniziano a utilizzarlo: il servizio eredita il criterio di audit logging che hai già impostato per altri servizi Google Cloud, assicurando che gli audit log di accesso ai dati vengano acquisiti.
Per impostare o modificare la configurazione predefinita:
Fai clic su Imposta configurazione predefinita.
Nella scheda Tipi di log nel riquadro delle informazioni, seleziona i tipi di audit log di accesso ai dati da abilitare o disabilitare.
Fai clic su Salva.
Seleziona la scheda Entità esenti nel riquadro delle informazioni.
In Aggiungi entità esente, inserisci l'entità da escludere dalla generazione degli audit log di accesso ai dati per il servizio selezionato.
Puoi aggiungere più entità facendo clic sul pulsante Aggiungi entità esente tutte le volte che vuoi.
Per un elenco delle entità valide, inclusi utenti e gruppi, consulta il riferimento al tipo di
Binding
.In Tipi di log disabilitati, seleziona i tipi di audit log di accesso ai dati che vuoi disabilitare.
Fai clic su Salva.
configura gli audit log di accesso ai dati con l'API
Questa sezione spiega come utilizzare l'API e gcloud CLI per configurare gli audit log di accesso ai dati in modo programmatico.
Molte di queste attività possono essere eseguite anche utilizzando la console Google Cloud. Per le istruzioni, consulta Configurare gli audit log di accesso ai dati con la console Google Cloud in questa pagina.
Oggetti criteri IAM
Per configurare gli audit log di accesso ai dati utilizzando l'API, devi modificare il criterio IAM associato al progetto, alla cartella o all'organizzazione di Google Cloud. La configurazione dell'audit log si trova nella sezione auditConfigs
del criterio:
"auditConfigs": [
{
object(AuditConfig)
}
]
Per maggiori dettagli, consulta il tipo di criterio IAM.
Le seguenti sezioni descrivono in modo più dettagliato l'oggetto AuditConfig
.
Per l'API e i comandi gcloud CLI utilizzati per modificare la configurazione,
consulta getIamPolicy e setIamPolicy
AuditConfig
oggetti
La configurazione degli audit log è composta da un elenco di oggetti AuditConfig
. Ogni oggetto configura i log per un servizio o stabilisce una configurazione più ampia per tutti i servizi. Ogni oggetto ha il seguente aspetto:
{
"service": SERVICE_NAME,
"auditLogConfigs": [
{
"logType": "ADMIN_READ"
"exemptedMembers": [ PRINCIPAL,]
},
{
"logType": "DATA_READ"
"exemptedMembers": [ PRINCIPAL,]
},
{
"logType": "DATA_WRITE"
"exemptedMembers": [ PRINCIPAL,]
},
]
},
SERVICE_NAME ha un valore, ad esempio "appengine.googleapis.com"
, o è il
valore speciale "allServices"
. Se una configurazione non fa riferimento a un
servizio specifico, per quel servizio viene utilizzata la configurazione più ampia. In assenza di una configurazione, gli audit log di accesso ai dati non sono abilitati per quel servizio.
Per un elenco dei nomi dei servizi, vedi Servizi di log.
La sezione auditLogConfigs
dell'oggetto AuditConfig
è un elenco di 0-3 oggetti, ognuno dei quali configura un tipo di informazioni di audit log. Se ometti un tipo di informazione nell'elenco, questo tipo di informazioni non viene abilitato per il servizio.
PRINCIPAL è un utente per il quale non vengono raccolti gli audit log di accesso ai dati. Il tipo Binding
descrive diversi tipi di entità, inclusi utenti e gruppi, ma non tutti possono essere utilizzati per configurare gli audit log di accesso ai dati.
Di seguito è riportato un esempio di configurazione di audit nei formati JSON e YAML. Il formato YAML è quello predefinito quando utilizzi Google Cloud CLI.
JSON
"auditConfigs": [ { "auditLogConfigs": [ { "logType": "ADMIN_READ" }, { "logType": "DATA_WRITE" }, { "logType": "DATA_READ" } ], "service": "allServices" }, { "auditLogConfigs": [ { "exemptedMembers": [ "499862534253-compute@developer.gserviceaccount.com" ], "logType": "ADMIN_READ" } ], "service": "cloudsql.googleapis.com" } ],
YAML
auditConfigs:
- auditLogConfigs:
- logType: ADMIN_READ
- logType: DATA_WRITE
- logType: DATA_READ
service: allServices
- auditLogConfigs:
- exemptedMembers:
- 499862534253-compute@developer.gserviceaccount.com
logType: ADMIN_READ
service: cloudsql.googleapis.com
Configurazioni comuni
Di seguito sono riportate alcune configurazioni di audit log comuni per i progetti Google Cloud.
Abilita tutti gli audit log di accesso ai dati
La seguente sezione auditConfigs
abilita gli audit log di accesso ai dati per tutti
i servizi e le entità:
JSON
"auditConfigs": [ { "service": "allServices", "auditLogConfigs": [ { "logType": "ADMIN_READ" }, { "logType": "DATA_READ" }, { "logType": "DATA_WRITE" }, ] }, ]
YAML
auditConfigs:
- auditLogConfigs:
- logType: ADMIN_READ
- logType: DATA_WRITE
- logType: DATA_READ
service: allServices
Attiva un solo tipo di servizio e informazioni
La seguente configurazione abilita gli audit log di accesso ai dati di DATA_WRITE
per Cloud SQL:
JSON
"auditConfigs": [ { "service": "cloudsql.googleapis.com", "auditLogConfigs": [ { "logType": "DATA_WRITE" }, ] }, ]
YAML
auditConfigs:
- auditLogConfigs:
- logType: DATA_WRITE
service: cloudsql.googleapis.com
Disabilita tutti gli audit log di accesso ai dati
Per disabilitare tutti gli audit log di accesso ai dati (tranne BigQuery) in un progetto Google Cloud, includi una sezione auditConfigs:
vuota nel nuovo criterio IAM:
JSON
"auditConfigs": [],
YAML
auditConfigs:
Se rimuovi completamente la sezione auditConfigs
dal nuovo criterio, setIamPolicy
non modifica la configurazione degli audit log di accesso ai dati esistente. Per ulteriori informazioni, consulta
La maschera di aggiornamento di setIamPolicy.
Non è possibile disabilitare gli audit log di accesso ai dati di BigQuery.
getIamPolicy
e setIamPolicy
Puoi utilizzare i metodi getIamPolicy
e setIamPolicy
dell'API Cloud Resource Manager per leggere e scrivere il criterio IAM. Hai a disposizione diverse opzioni per
i metodi specifici da utilizzare:
L'API Cloud Resource Manager prevede i seguenti metodi:
projects.getIamPolicy projects.setIamPolicy organizations.getIamPolicy organizations.setIamPolicy
Google Cloud CLI include i seguenti comandi di Resource Manager:
gcloud projects get-iam-policy gcloud projects set-iam-policy gcloud resource-manager folders get-iam-policy gcloud resource-manager folders set-iam-policy gcloud organizations get-iam-policy gcloud organizations set-iam-policy gcloud beta billing accounts get-iam-policy gcloud beta billing accounts set-iam-policy
Indipendentemente dalla tua scelta, segui questi tre passaggi:
- Leggi il criterio corrente utilizzando uno dei metodi
getIamPolicy
. Salva il criterio in un file temporaneo. - Modifica il criterio nel file temporaneo.
Modifica (o aggiungi) solo la sezione
auditConfigs
. - Scrivi il criterio modificato nel file temporaneo utilizzando uno dei metodi
setIamPolicy
.
setIamPolicy
non riesce se Resource Manager rileva che qualcun altro ha modificato il criterio dopo che lo hai letto nel primo passaggio. In questo caso, ripeti
i tre passaggi.
Esempi
I seguenti esempi mostrano come configurare gli audit log di accesso ai dati del progetto utilizzando il comando gcloud
e l'API Cloud Resource Manager.
Per configurare gli audit log di accesso ai dati dell'organizzazione, sostituisci la versione "progetti" dei comandi e dei metodi API con la versione "organizzazioni".
gcloud
Per configurare gli audit log di accesso ai dati utilizzando il comando gcloud projects
, segui questi passaggi:
Leggi il criterio IAM del progetto e archivialo in un file:
gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yaml
Le norme restituite sono mostrate di seguito. Questo criterio non ha ancora una sezione
auditConfigs
:bindings: - members: - user:colleague@example.com role: roles/editor - members: - user:myself@example.com role: roles/owner etag: BwVM-FDzeYM= version: 1
Modifica il criterio in
/tmp/policy.yaml
, aggiungendo o modificando solo la configurazione degli audit log di accesso ai dati.Di seguito è riportato un esempio del criterio modificato, che abilita gli audit log di accesso ai dati per la scrittura dati di Cloud SQL. Sono state aggiunte quattro righe all'inizio:
auditConfigs: - auditLogConfigs: - logType: DATA_WRITE service: cloudsql.googleapis.com bindings: - members: - user:colleague@example.com role: roles/editor - members: - user:myself@example.com role: roles/owner etag: BwVM-FDzeYM= version: 1
Scrivi il nuovo criterio IAM:
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.yaml
Se il comando precedente segnala un conflitto con un'altra modifica, ripeti questi passaggi partendo dal primo passaggio.
JSON
Per lavorare con i tuoi criteri IAM in formato JSON anziché YAML, sostituisci i seguenti comandi gcloud
nell'esempio:
gcloud projects get-iam-policy PROJECT_ID --format=json >/tmp/policy.json
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.json
API
Per configurare gli audit log di accesso ai dati utilizzando l'API Cloud Resource Manager, segui questi passaggi:
Leggi il criterio IAM del progetto, specificando i seguenti parametri per il metodo API getIamPolicy:
- risorsa:
projects/PROJECT_ID
- Corpo della richiesta: vuoto
Il metodo restituisce l'oggetto criterio corrente, mostrato di seguito. Il criterio di questo progetto non ha ancora una sezione
auditConfigs
:{ "version": 1, "etag": "BwXqwxkr40M=", "bindings": [ { "role": "roles/owner", "members": [ "user:myself@example.com" ] } ] }
- risorsa:
Modifica il criterio attuale:
Modifica o aggiungi la sezione
auditConfigs
.Per disabilitare gli audit log di accesso ai dati, includi un valore vuoto per la sezione:
auditConfigs:[]
.Mantieni il valore di
etag
.
Puoi anche rimuovere tutte le altre informazioni dal nuovo oggetto criteri, purché presta attenzione a impostare
updateMask
nel passaggio successivo. Di seguito è mostrato il criterio modificato, che abilita gli audit log per la scrittura dati di Cloud SQL:{ "policy": { "auditConfigs": [ { "auditLogConfigs": [ { "logType": "DATA_WRITE" } ], "service": "cloudsql.googleapis.com" } ], "etag": "BwXqwxkr40M=" }, "updateMask": "auditConfigs,etag" }
Scrivi il nuovo criterio utilizzando il metodo API setIamPolicy, specificando i seguenti parametri:
- risorsa:
projects/PROJECT_ID
- Corpo della richiesta: includi il criterio modificato.
- risorsa:
Maschera di aggiornamento di setIamPolicy
Questa sezione spiega l'importanza del parametro updateMask
nel metodo setIamPolicy
e spiega perché è necessario prestare attenzione al comando gcloud CLI set-iam-policy
per evitare di causare danni accidentali al tuo progetto o alla tua organizzazione Google Cloud.
setIamPolicy API method
utilizza un parametro updateMask
per
controllare quali campi dei criteri vengono aggiornati. Ad esempio, se la maschera non contiene bindings
, non puoi modificare accidentalmente la sezione del criterio. D'altra parte, se la maschera contiene bindings
, la sezione viene
sempre aggiornata. Se non includi un valore aggiornato per bindings
, la sezione viene rimossa completamente dal criterio.
Il comando gcloud projects set-iam-policy
, che chiama setIamPolicy
,
non consente di specificare il parametro updateMask
. Il comando calcola invece un valore per updateMask
nel seguente modo:
updateMask
contiene sempre i campibindings
eetag
.- Se l'oggetto del criterio fornito in
set-iam-policy
contiene altri campi di primo livello, ad esempioauditConfigs
, questi campi vengono aggiunti aupdateMask
.
Come conseguenza di queste regole, il comando set-iam-policy
avrà i seguenti
comportamenti:
Se ometti la sezione
auditConfigs
nel nuovo criterio, il valore precedente della sezioneauditConfigs
(se presente) non viene modificato, perché questa sezione non si trova nella maschera di aggiornamento. Si tratta di un'azione innocua, ma potrebbe generare confusione.Se ometti
bindings
nel nuovo oggetto del criterio, la sezionebindings
viene rimossa dal criterio, poiché questa sezione viene visualizzata nella maschera di aggiornamento. Questo è molto dannoso e tutte le entità perdono l'accesso al tuo progetto Google Cloud.Se ometti
etag
nel nuovo oggetto dei criteri, la verifica delle modifiche contemporanee ai criteri viene disattivata e le tue modifiche potrebbero sovrascrivere accidentalmente quelle di qualcun altro.