Questa guida spiega come abilitare o disabilitare alcuni o tutti gli audit log di accesso ai dati in progetti, account di fatturazione, cartelle e 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, considera quanto segue:
Gli audit log di accesso ai dati, ad eccezione di BigQuery, sono disattivati per impostazione predefinita. Se vuoi che gli audit log di accesso ai dati vengano scritti per servizi Google Cloud diversi da BigQuery, devi abilitarli esplicitamente.
Gli audit log di accesso ai dati sono archiviati nel bucket
_Default
, a meno che tu non li abbia instradati altrove. Per maggiori informazioni, consulta Archiviazione e routing degli audit log.Gli audit log di accesso ai dati aiutano l'Assistenza Google a risolvere i problemi relativi al tuo account. Di conseguenza, consigliamo di abilitare gli audit log di accesso ai dati, quando possibile.
Panoramica configurazione
Puoi abilitare e configurare determinati 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 applicano a tutti i progetti e le cartelle 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 che è stato abilitato in un'organizzazione o una cartella principale.
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 applica ai futuri servizi Google Cloud che iniziano a generare audit log di accesso ai dati. Per le istruzioni, consulta 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 dagli utenti.DATA_WRITE
: registra le operazioni che scrivono i dati forniti dagli utenti.
Ad esempio, Cloud DNS scrive tutti e tre i tipi di log di accesso ai dati, ma puoi configurare gli audit log di accesso ai dati in modo da registrare solo le operazioni
DATA_WRITE
.Entità esenti: puoi escludere entità specifiche dalla registrazione degli accessi ai dati. Ad esempio, puoi escludere gli account di test interni dalla registrazione delle operazioni di Cloud Monitoring. Per un elenco delle entità valide, inclusi utenti e gruppi, consulta il riferimento sui tipi di
Binding
.
Puoi configurare gli audit log di accesso ai dati tramite la pagina Audit log IAM della console Google Cloud o utilizzando l'API. Questi metodi sono illustrati nelle sezioni seguenti.
Configurazioni specifiche per i servizi
Se esistono sia una configurazione a livello di servizio di Google Cloud (allServices
) sia una configurazione per uno specifico servizio Google Cloud, la configurazione risultante per il servizio sarà 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 tipi di informazioni specificati nella configurazione più ampia.
Puoi aggiungere entità agli elenchi di esenzioni, ma non puoi rimuoverle dagli elenchi di esenzioni nella configurazione più ampia.
Per BigQuery Data Transfer Service, la configurazione degli audit log di accesso ai dati viene ereditata dalla configurazione predefinita degli 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 puoi disabilitarli per un servizio Google Cloud abilitato in un'organizzazione o una cartella padre.
Puoi abilitare i tipi di informazioni, ma non puoi disattivare quelli abilitati in un'organizzazione o una cartella principale.
Puoi aggiungere entità agli elenchi di esenzioni, ma non puoi rimuoverle dagli elenchi di esenzioni in un'organizzazione o una cartella principale.
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, inclusa la visualizzazione e la gestione dei criteri IAM sottostanti alle configurazioni di audit logging di Accesso ai dati.
Per visualizzare o impostare i criteri associati alla configurazione dell'accesso ai dati, devi avere 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 organizzazioni, cartelle e progetti 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. Consulta Configurare gli audit log di accesso ai dati con l'API per i dettagli.
Per accedere alle opzioni di configurazione degli audit log nella console Google Cloud, segui questi passaggi:
-
Nel pannello di navigazione della console Google Cloud, seleziona IAM e amministrazione, quindi Audit log:
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 che vuoi abilitare per i servizi selezionati.
Fai clic su Salva.
Se hai abilitato correttamente gli audit log, la tabella include un'icona Verifica check_circle.
Nell'esempio seguente, puoi vedere che, per il servizio Access Approval, il tipo di audit log Lettura dati è abilitato:
Puoi inoltre abilitare gli audit log per tutti i servizi Google Cloud che producono gli 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 del riquadro delle informazioni, seleziona i tipi di audit log di accesso ai dati che vuoi disabilitare per i servizi selezionati.
Fai clic su Salva.
Se hai disabilitato correttamente gli audit log di accesso ai dati, la tabella lo indica con un trattino. Eventuali audit log di accesso ai dati abilitati sono indicati con l'icona Segno di spunta 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 corrispondenti 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à che vuoi 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 sui tipi 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 le entità esenti sono state aggiunte correttamente a un servizio, la tabella Configurazione degli audit log di accesso ai dati indica che la configurazione è specificata con un numero nella colonna Entità esenti.
Per rimuovere un'entità dall'elenco di 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.
Passa il mouse sopra il nome di un'entità e seleziona l'icona Elimina delete visualizzata.
Dopo che il nome dell'entità viene mostrato con il testo barrato, fai clic su Salva.
Per modificare le informazioni per 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 che tutti i servizi Google Cloud nuovi ed esistenti ereditano nel progetto, nella cartella o nell'organizzazione Google Cloud. L'impostazione di questa configurazione predefinita viene applicata 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, garantendo 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 del riquadro delle informazioni, seleziona i tipi di audit log di accesso ai dati che vuoi abilitare o disabilitare.
Fai clic su Salva.
Seleziona la scheda Entità esenti nel riquadro delle informazioni.
In Aggiungi entità esente, inserisci l'entità che vuoi 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 sui tipi di
Binding
.In Tipi di log disabilitati, seleziona i tipi di audit log di accesso ai dati che vuoi disabilitare.
Fai clic su Salva.
Configurare 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 dei 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 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 l'oggetto AuditConfig
in modo più dettagliato.
Per i comandi API e gcloud CLI utilizzati per modificare la configurazione, consulta getIamPolicy e setIamPolicy
AuditConfig
oggetti
La configurazione dell'audit log è composta da un elenco di oggetti AuditConfig
. Ogni oggetto configura i log per un servizio oppure 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 come "appengine.googleapis.com"
o è il
valore speciale "allServices"
. Se una configurazione non menziona un servizio
specifico, per quel servizio viene utilizzata la configurazione più ampia. In assenza di configurazione, gli audit log di accesso ai dati non sono abilitati per quel servizio.
Per un elenco dei nomi dei servizi, consulta Servizi di log.
La sezione auditLogConfigs
dell'oggetto AuditConfig
è un elenco da 0 a 3 oggetti, ognuno dei quali configura un tipo di informazioni degli audit log. Se ometti
uno dei tipi dall'elenco, quel tipo di informazioni non sarà 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à, tra cui utenti e gruppi, ma non tutte possono essere utilizzate per configurare gli audit log di accesso ai dati.
Di seguito è riportato un esempio di configurazione di audit in entrambi i formati JSON e YAML. Il formato YAML è il formato predefinito quando si utilizza 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
Abilita un tipo di servizio e di 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 modificherà la configurazione degli audit log di accesso ai dati esistente. Per maggiori informazioni, consulta
La maschera di aggiornamento setIamPolicy.
Gli audit log di accesso ai dati di BigQuery non possono essere disabilitati.
getIamPolicy
e setIamPolicy
Puoi utilizzare i metodi dell'API Cloud Resource Manager getIamPolicy
e setIamPolicy
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 attuale 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 va a buon fine se Resource Manager rileva che un'altra persona ha modificato il criterio dopo che lo hai letto nel primo passaggio. In questo caso,
ripeti i tre passaggi.
Esempi
I seguenti esempi dimostrano come configurare gli audit log di accesso ai dati del tuo 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
:
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 consente gli audit log di accesso ai dati e scrittura di Cloud SQL. All'inizio sono state aggiunte quattro righe:
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, a partire dal primo passaggio.
JSON
Per utilizzare i 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:
Leggi il criterio IAM del progetto, specificando i seguenti parametri per il metodo API getIamPolicy:
- risorsa:
projects/PROJECT_ID
- Corpo della richiesta: vuota
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 corrente:
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 criterio, purché presti attenzione a impostare
updateMask
nel passaggio successivo. Di seguito è riportato il criterio modificato, che consente gli audit log di 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 la norma modificata.
- risorsa:
La maschera di aggiornamento setIamPolicy
Questa sezione spiega l'importanza del parametro updateMask
nel metodo setIamPolicy
e spiega perché è necessario prestare attenzione al comando set-iam-policy
gcloud CLI per evitare di causare danni accidentali all'organizzazione o al progetto 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 quella sezione del criterio. Se invece la maschera contiene bindings
, la sezione viene sempre aggiornata. Se non includi un valore aggiornato per bindings
, la relativa sezione viene rimossa completamente dal criterio.
Il comando gcloud projects set-iam-policy
, che chiama setIamPolicy
,
non ti 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 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
ha 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 è nella maschera di aggiornamento. Questa procedura è innocua, ma potrebbe confondere.Se ometti
bindings
nel nuovo oggetto del criterio, la sezionebindings
viene rimossa dal criterio, poiché questa sezione viene visualizzata nella maschera di aggiornamento. È molto dannoso e tutte le entità perderanno l'accesso al tuo progetto Google Cloud.Se ometti
etag
nel nuovo oggetto criterio, viene disattivato il controllo della presenza di modifiche contemporanee al criterio e le tue modifiche potrebbero sovrascrivere accidentalmente quelle di qualcun altro.