Abilita gli audit log di accesso ai dati

Questa guida spiega come attivare o disattivare alcuni o tutti i log di controllo dell'accesso ai dati nei tuoi Google Cloud progetti, account di fatturazione, cartelle e organizzazioni utilizzando la console Google Cloud o l'API.

Prima di iniziare

Prima di procedere con la configurazione degli audit log di accesso ai dati, prendi nota delle 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 serviziGoogle Cloud diversi da BigQuery, devi abilitarli esplicitamente.

  • Gli audit log per l'accesso ai dati vengono archiviati nel bucket _Default, a meno che non li abbia indirizzati altrove. Per saperne di più, vedi Archiviazione e routing dei log di controllo.

  • I log di controllo dell'accesso ai dati aiutano l'assistenza Google a risolvere i problemi relativi al tuo account. Pertanto, ti consigliamo di abilitare gli audit log di accesso ai dati quando possibile.

  • Per ottenere le autorizzazioni necessarie per accedere a tutti i log nei bucket _Required e _Default, inclusi i log di accesso ai dati, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore log privati (roles/logging.privateLogViewer) sul progetto.

    Il ruolo Visualizzatore log privati (roles/logging.privateLogViewer) include le autorizzazioni contenute nel ruolo Visualizzatore log (roles/logging.viewer) e quelle necessarie per leggere gli audit log di accesso ai dati nel bucket _Default.

    Il ruolo Editor (roles/editor) non include le autorizzazioni necessarie per visualizzare i log di accesso ai dati.

    Per saperne di più su ruoli e autorizzazioni IAM che si applicano ai dati degli audit log, consulta Controllo dell'accesso con IAM.

Panoramica configurazione

Puoi configurare la modalità di attivazione degli audit log di accesso ai dati per le tue risorse e i tuoi serviziGoogle Cloud :

  • Organizzazioni: puoi attivare e configurare gli audit log di accesso ai dati in un'organizzazione, che si applicano a tutti i progetti e le cartelleGoogle Cloud esistenti e nuovi dell'organizzazione.

  • Cartelle: puoi abilitare e configurare gli audit log di accesso ai dati in una cartella, che si applicano a tutti i progetti esistenti e nuovi nella cartella. Google Cloud Non puoi disabilitare un audit log di accesso ai dati abilitato nell'organizzazione padre del progetto.

  • Progetti: puoi configurare gli audit log di accesso ai dati per un singolo Google Cloud progetto. Non puoi disabilitare un audit log di accesso ai dati che è stato 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 saperne di più sull'utilizzo di gcloud CLI con gli audit log di accesso ai dati e gli account di fatturazione, consulta la documentazione 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 che si applica ai servizi futuri che iniziano a produrre audit log di accesso ai dati. Google Cloud Google Cloud Per istruzioni, vedi Impostare la configurazione predefinita.

  • Tipi di autorizzazione: puoi specificare che le API che controllano solo un determinato tipo di autorizzazione generino un audit log. Google Cloud Per ulteriori informazioni, consulta la sezione Tipi di autorizzazioni di questa pagina.

  • Entità esenti: puoi esentare entità specifiche dalla registrazione dei loro accessi ai dati. Ad esempio, puoi esentare i tuoi account di test interni dalla registrazione delle operazioni di Cloud Monitoring. Per un elenco dei principal validi, inclusi utenti e gruppi, consulta il riferimento al tipo Binding.

Puoi configurare gli audit log di accesso ai dati tramite la pagina Audit log di IAM della console Google Cloud o utilizzando l'API. Questi metodi sono spiegati nelle sezioni seguenti.

Tipi di autorizzazioni

I metodi API controllano le autorizzazioni IAM. Ogni autorizzazione IAM ha un tipo di autorizzazione, definito dalla proprietà type. I tipi di autorizzazione sono classificati come tipo di autorizzazione di accesso ai dati o come tipo di autorizzazione di attività amministrativa:

  • Tipi di autorizzazioni di accesso ai dati:

    • ADMIN_READ: le autorizzazioni IAM di questo tipo vengono controllate per i metodi APIGoogle Cloud che leggono i metadati o le informazioni di configurazione. In genere, gli audit log ADMIN_READ sono disabilitati per impostazione predefinita e devono essere abilitati.

    • DATA_READ: le autorizzazioni IAM di questo tipo vengono controllate per i metodi APIGoogle Cloud che leggono i dati forniti dall'utente. In genere, gli audit log DATA_READ sono disabilitati per impostazione predefinita e devono essere abilitati.

    • DATA_WRITE: le autorizzazioni IAM di questo tipo vengono controllate per i metodi APIGoogle Cloud che scrivono i dati forniti dall'utente. In genere, gli audit log DATA_WRITE sono disabilitati per impostazione predefinita e devono essere abilitati.

  • Tipo di autorizzazione Attività amministratore:

    • ADMIN_WRITE: le autorizzazioni IAM di questo tipo vengono controllate per i metodi dell'APIGoogle Cloud che scrivono metadati o informazioni di configurazione. Gli audit log associati a questo tipo, ovvero gli audit log Attività di amministrazione, sono attivi per impostazione predefinita e non possono essere disattivati.

Puoi abilitare o disabilitare i tipi di autorizzazione per i servizi utilizzando la Google Cloud console o richiamando l'API.

La maggior parte delle API Google Cloud controlla solo se il chiamante dispone di una singola autorizzazione IAM. Se il tipo di autorizzazione associato a questa autorizzazione è abilitato per il servizio la cui API viene chiamata, l'API genera un audit log.

Le sezioni seguenti descrivono in generale altri modi in cui Google Cloud i metodi API verificano le autorizzazioni IAM. Per informazioni specifiche del servizio sui metodi controllati per i tipi di autorizzazione, consulta la documentazione relativa alla registrazione degli audit del servizio.

Controllo delle autorizzazioni IAM per i tipi di autorizzazione di accesso ai dati

Alcuni metodi API Google Cloud verificano se il chiamante dispone di più autorizzazioni IAM con diversi tipi di autorizzazione Accesso ai dati. Un audit log viene scritto quando uno di questi tipi di autorizzazione di accesso ai dati è abilitato nel progetto.

Ad esempio, un metodo API potrebbe verificare che il principal che invia una richiesta API disponga delle autorizzazioni example.resource.get (DATA_READ) e example.resource.write (DATA_WRITE). Il progetto deve avere abilitato solo DATA_WRITE o DATA_READ affinché il servizio emetta il log di controllo quando viene effettuata la chiamata.

Tipi di autorizzazione IAM per l'attività amministrativa e l'accesso ai dati selezionati

Alcuni metodi dell'API Google Cloud verificano sia un'autorizzazione IAM con il tipo di autorizzazione ADMIN_WRITE sia una o più autorizzazioni con un tipo di autorizzazione di accesso ai dati.

Questi tipi di chiamate API generano audit log per le attività di amministrazione, che sono attivi per impostazione predefinita e non possono essere disattivati.

Il metodo API verifica le autorizzazioni IAM non di proprietà del servizio

Alcuni servizi Google Cloud hanno metodi API che generano un audit log solo quando un tipo di autorizzazione specifico è abilitato per un altro servizio.

Ad esempio, la fatturazione Cloud ha un metodo API che verifica la presenza di un tipo di autorizzazione ADMIN_READ di proprietà di Resource Manager. ADMIN_READ deve essere abilitato per il servizio cloudresourcemanager.googleapis.com per abilitare il log di controllo associato all'API Cloud Billing.

Lo stesso metodo API verifica autorizzazioni IAM diverse

Per alcune API Google Cloud , il modo in cui viene chiamato il metodo determina quali tipi di autorizzazioni IAM devono essere abilitati nel progetto per generare un audit log.

Ad esempio, Spanner ha un metodo API che a volte controlla un'autorizzazione IAM di tipo DATA_WRITE e a volte un'autorizzazione IAM di tipo DATA_READ, a seconda di come viene chiamato il metodo. In questo caso, l'abilitazione di DATA_WRITE per Spanner nel progetto in cui viene effettuata la chiamata API abilita solo il log di controllo associato all'API quando viene selezionata l'autorizzazione IAM con il tipo DATA_WRITE.

Configurazioni specifiche del servizio

Se sono presenti sia una configurazione a livello di servizio (allServices) sia una configurazione per un servizio Google Cloud specifico, la configurazione risultante per il servizio è l'unione delle due configurazioni. Google Cloud In altre parole:

  • Puoi attivare gli audit log di accesso ai dati per servizi Google Cloudspecifici, ma non puoi disattivarli per i serviziGoogle Cloud abilitati nella configurazione più ampia.

  • Puoi aggiungere ulteriori tipi di informazioni a un audit log di accesso ai dati di un servizio, ma non puoi rimuovere i tipi di informazioni specificati nella configurazione più ampia. Google Cloud

  • Puoi aggiungere i principal agli elenchi di esenzione, ma non puoi rimuoverli dagli elenchi di esenzione 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.

Google Cloud configurazioni delle risorse

Puoi configurare gli audit log di accesso ai dati per Google Cloud progetti, account di fatturazione, cartelle e organizzazioni. Se esiste una configurazione per un servizioGoogle Cloud nell'intera gerarchia, la configurazione risultante è l'unione delle configurazioni. In altre parole, a livello di progettoGoogle Cloud :

  • Puoi attivare i log per un servizio Google Cloud , ma non puoi disattivarli per un servizio Google Cloud attivato in un'organizzazione o una cartella principale.

  • Puoi attivare i tipi di informazioni, ma non puoi disattivare quelli attivati in un'organizzazione o una cartella principale.

  • Puoi aggiungere principal agli elenchi di esenzione, ma non puoi rimuoverli dagli elenchi di esenzione in un'organizzazione o una cartella principale.

  • A livello di organizzazione o cartella padre, puoi attivare gli audit log di accesso ai dati per un progetto all'interno di quell'organizzazione o cartella, anche se gli audit log di accesso ai dati non sono stati configurati nel progetto. Google Cloud Google Cloud

Controllo degli accessi

Ruoli e autorizzazioni di Identity and Access Management regolano l'accesso ai dati di Logging, inclusa la visualizzazione e la gestione delle policy IAM sottostanti alle configurazioni di logging dell'audit log 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 sulla concessione di questi ruoli a livello di risorsa, consulta Gestisci l'accesso a Google Cloud progetti, cartelle e organizzazioni.

  • Per impostare i criteri IAM, devi disporre di un ruolo con l'autorizzazione resourcemanager.RESOURCE_TYPE.setIamPolicy.

  • Per visualizzare le policy IAM, devi disporre di 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 i log di controllo dell'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 dei log di controllo nella console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina dei log di controllo.

    Vai agli audit log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.

  2. Seleziona un progetto, una cartella o un'organizzazione Google Cloud esistente.

Abilita audit log

Per abilitare gli audit log di accesso ai dati:

  1. Nella tabella Configurazione degli audit log di accesso ai dati, seleziona uno o più serviziGoogle Cloud dalla colonna Servizio.

  2. Nella scheda Tipi di autorizzazioni, seleziona i tipi di audit log di accesso ai dati che vuoi attivare per i servizi selezionati.

  3. Fai clic su Salva.

Se hai attivato correttamente i log di controllo, la tabella include un'icona Segno di spunta.

Nell'esempio seguente, puoi vedere che per il servizio Access Approval è abilitato il tipo di audit log Lettura dati:

Configurazione audit log

Puoi anche attivare i log di controllo 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 Google Cloud servizi disponibili per la tua risorsa. Se viene aggiunto un nuovo servizioGoogle Cloud , questo eredita la tua configurazione di controllo predefinita.

Disabilita gli audit log di accesso ai dati

Per disattivare gli audit log di accesso ai dati:

  1. Nella tabella Configurazione degli audit log di accesso ai dati, seleziona uno o più Google Cloud servizi.

  2. Nella scheda Tipi di log del riquadro delle informazioni, seleziona i tipi di audit log di accesso ai dati che vuoi disattivare per i servizi selezionati.

  3. Fai clic su Salva.

Nei casi in cui hai disattivato correttamente gli audit log di accesso ai dati, la tabella lo indica con un trattino. Gli audit log di accesso ai dati abilitati sono indicati con un'icona segno di spunta.

Impostare esenzioni

Puoi impostare esenzioni per controllare quali entità generano audit log di accesso ai dati per servizi particolari. Quando aggiungi un'entità esente, non vengono creati audit log per i tipi di log selezionati.

Per impostare le esenzioni:

  1. Nella tabella Configurazione degli audit log di accesso ai dati, seleziona un servizioGoogle Cloud dalla colonna Servizio.

  2. Seleziona la scheda Soggetti esenti nel riquadro delle informazioni.

  3. In Aggiungi entità esente, inserisci l'entità che vuoi esentare dalla generazione degli audit log di accesso ai dati per il servizio selezionato.

    Puoi aggiungere più soggetti facendo clic sul pulsante Aggiungi soggetto esentato tutte le volte che vuoi.

    Per un elenco dei principal validi, inclusi utenti e gruppi, consulta il riferimento al tipo Binding.

  4. In Tipi di log disabilitati, seleziona i tipi di audit log di accesso ai dati che vuoi disabilitare.

  5. Fai clic su Salva.

Se hai aggiunto correttamente le 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 principal dall'elenco delle esenzioni:

  1. Nella tabella Configurazione degli audit log di accesso ai dati, seleziona un servizioGoogle Cloud dalla colonna Servizio.

  2. Seleziona la scheda Soggetti esenti nel riquadro delle informazioni.

  3. Tieni il puntatore del mouse sopra il nome di un principal, quindi seleziona Elimina.

  4. Dopo che il nome del mandante viene visualizzato con testo barrato, fai clic su Salva.

Per modificare le informazioni di un'entità esentata:

  1. Nella tabella Configurazione degli audit log di accesso ai dati, seleziona un servizioGoogle Cloud dalla colonna Servizio.

  2. Seleziona la scheda Soggetti esenti nel riquadro delle informazioni.

  3. Individua il principale e seleziona Espandi Mostra altro.

  4. Seleziona o deseleziona i tipi di audit log di accesso ai dati in base all'entità.

  5. Fai clic su Salva.

Impostare la configurazione predefinita

Puoi impostare una configurazione che tutti i servizi Google Cloudnuovi ed esistenti nel tuo progetto, nella tua cartella o nella tua organizzazione Google Cloud ereditino. L'impostazione di questa configurazione predefinita viene applicata se un nuovo servizio Google Cloud diventa disponibile e i principal della tua organizzazione iniziano a utilizzarlo: il servizio eredita il criterio di audit logging che hai già impostato per altri serviziGoogle Cloud , garantendo l'acquisizione dei log di controllo dell'accesso ai dati.

Per impostare o modificare la configurazione predefinita:

  1. Fai clic su Imposta configurazione predefinita.

  2. Nella scheda Tipi di log del riquadro delle informazioni, seleziona i tipi di log di controllo dell'accesso ai dati che vuoi attivare o disattivare.

  3. Fai clic su Salva.

  4. Seleziona la scheda Soggetti esenti nel riquadro delle informazioni.

  5. In Aggiungi entità esente, inserisci l'entità che vuoi esentare dalla generazione degli audit log di accesso ai dati per il servizio selezionato.

    Puoi aggiungere più soggetti facendo clic sul pulsante Aggiungi soggetto esentato tutte le volte che vuoi.

    Per un elenco dei principal validi, inclusi utenti e gruppi, consulta il riferimento al tipo Binding.

  6. In Tipi di log disabilitati, seleziona i tipi di audit log di accesso ai dati che vuoi disabilitare.

  7. Fai clic su Salva.

Configurare gli audit log di accesso ai dati con l'API

Questa sezione spiega come utilizzare l'API e la 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 istruzioni, vedi Configurare i log di controllo dell'accesso ai dati con la console Google Cloud in questa pagina.

Oggetti policy IAM

Per configurare gli audit log di accesso ai dati utilizzando l'API, devi modificare il criterio IAM associato al tuo progetto, alla tua cartella o alla tua organizzazione. Google Cloud La configurazione dell'audit log si trova nella sezione auditConfigs del criterio:

"auditConfigs": [
  {
    object(AuditConfig)
  }
]

Per i dettagli, vedi il tipo Policy IAM.

Le sezioni seguenti descrivono l'oggetto AuditConfig in modo più dettagliato. Per i comandi API e gcloud CLI utilizzati per modificare la configurazione, consulta la sezione intitolata getIamPolicy e setIamPolicy.

AuditConfig oggetti

La configurazione dell'audit log è costituita 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 come "appengine.googleapis.com" oppure è il valore speciale "allServices". Se una configurazione non menziona un servizio specifico, viene utilizzata la configurazione più ampia per quel servizio. Se non è presente alcuna configurazione, gli audit log di accesso ai dati non sono abilitati per il servizio. Per un elenco dei nomi dei servizi, vedi Servizi di log.

La sezione auditLogConfigs dell'oggetto AuditConfig è un elenco da 0 a 3 oggetti, ognuno dei quali configura un tipo di informazioni del log di controllo. Se ometti uno dei tipi dall'elenco, quel tipo di informazioni non viene attivato per il servizio.

PRINCIPAL è un utente per il quale non vengono raccolti audit log di accesso ai dati. Il tipo Binding descrive diversi tipi di entità, tra cui utenti e gruppi, ma non tutti possono essere utilizzati per configurare i log di controllo dell'accesso ai dati.

Di seguito è riportato un esempio di configurazione di controllo 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 comuni dei log di controllo 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 servizio e un tipo di informazioni

La seguente configurazione abilita gli audit log di accesso ai dati per Cloud SQL:DATA_WRITE

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 per l'accesso ai dati (tranne BigQuery) in un progettoGoogle Cloud , includi una sezione auditConfigs: vuota nella nuova policy IAM:

JSON

"auditConfigs": [],

YAML

auditConfigs:

Se rimuovi completamente la sezione auditConfigs dalle nuove norme, setIamPolicy non modifica la configurazione esistente degli audit log di accesso ai dati. Per ulteriori informazioni, consulta la sezione La maschera di aggiornamento setIamPolicy.

Gli audit log per l'accesso ai dati di BigQuery non possono essere disattivati.

getIamPolicy e setIamPolicy

Utilizzi i metodi getIamPolicy e setIamPolicy dell'API Cloud Resource Manager per leggere e scrivere i criteri IAM. Hai diverse opzioni per i metodi specifici da utilizzare:

  • L'API Cloud Resource Manager ha i seguenti metodi:

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • Google Cloud CLI ha i seguenti comandi 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:

  1. Leggi la policy corrente utilizzando uno dei metodi getIamPolicy. Salva la policy in un file temporaneo.
  2. Modifica il criterio nel file temporaneo. Modifica (o aggiungi) solo la sezione auditConfigs.
  3. Scrivi la policy modificata 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

Gli esempi riportati di seguito mostrano come configurare i log di controllo dell'accesso ai dati del progetto utilizzando il comando gcloud e l'API Cloud Resource Manager.

Per configurare gli audit log dell'accesso ai dati dell'organizzazione, sostituisci la versione "projects" dei comandi e dei metodi API con la versione "organizations".

gcloud

Per configurare gli audit log di accesso ai dati utilizzando il comando gcloud projects, esegui le seguenti operazioni:

  1. Leggi la policy IAM del tuo progetto e archiviala in un file:

    gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yaml
    

    Di seguito è riportata la policy restituita. Questo criterio non ha 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
    
  2. Modifica la policy in /tmp/policy.yaml, aggiungendo o modificando solo la configurazione degli audit log di accesso ai dati.

    Un esempio del criterio modificato, che attiva gli audit log di accesso ai dati di scrittura di Cloud SQL:

    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
    

    Come mostrato nell'esempio precedente, sono state aggiunte quattro righe all'inizio delle norme.

  3. 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.

JSON

Per lavorare con il criterio 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:

  1. Leggi la policy IAM del tuo progetto specificando i seguenti parametri per il metodo API getIamPolicy:

    • resource: projects/PROJECT_ID
    • Corpo della richiesta: vuoto

    Il metodo restituisce l'oggetto policy corrente:

    {
      "version": 1,
      "etag": "BwXqwxkr40M=",
      "bindings": [
        {
          "role": "roles/owner",
          "members": [
            "user:myself@example.com"
          ]
        }
      ]
    }
    

    L'esempio precedente mostra che la policy del progetto non ha una sezione auditConfigs.

  2. Modifica le norme attuali:

    • Modifica o aggiungi la sezione auditConfigs.

      Per disabilitare gli audit log di accesso ai dati, includi un valore vuoto per la sezione: auditConfigs:[].

    • Conserva il valore di etag.

    Puoi anche rimuovere tutte le altre informazioni dal nuovo oggetto policy, purché tu faccia attenzione a impostare updateMask nel passaggio successivo. Di seguito è riportata la policy modificata, che attiva i log di controllo di Cloud SQL DATA_WRITE:

    {
      "policy": {
        "auditConfigs": [
          {
            "auditLogConfigs": [
              {
                "logType": "DATA_WRITE"
              }
            ],
            "service": "cloudsql.googleapis.com"
          }
        ],
        "etag": "BwXqwxkr40M="
      },
      "updateMask": "auditConfigs,etag"
    }
    
  3. Scrivi la nuova policy utilizzando il metodo API setIamPolicy, specificando i seguenti parametri:

    • resource: projects/PROJECT_ID
    • Corpo della richiesta: includi la policy modificata.

La maschera di aggiornamento setIamPolicy

Questa sezione spiega l'importanza del parametro updateMask nel metodo setIamPolicy e perché devi prestare attenzione al comando set-iam-policy di gcloud CLI per non causare danni accidentali al tuo progetto o alla tua organizzazione. Google Cloud

Il metodo API setIamPolicy utilizza un parametro updateMask per controllare quali campi della policy vengono aggiornati. Ad esempio, se la maschera non contiene bindings, non puoi modificare accidentalmente questa sezione delle norme. 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 dalle norme.

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 campi bindings e etag.
  • Se l'oggetto policy fornito in set-iam-policy contiene altri campi di primo livello, ad esempio auditConfigs, questi campi vengono aggiunti a updateMask.

Di conseguenza, il comando set-iam-policy ha i seguenti comportamenti:

  • Se ometti la sezione auditConfigs nella nuova norma, il valore precedente della sezione auditConfigs (se presente) non viene modificato perché la sezione non è nella maschera di aggiornamento. Si tratta di un comportamento innocuo, ma che potrebbe creare confusione.

  • Se ometti bindings nel nuovo oggetto policy, la sezione bindings viene rimossa dalla policy, poiché questa sezione viene visualizzata nella maschera di aggiornamento. Questa azione è molto dannosa e comporta la perdita dell'accesso al tuo progetto Google Cloud per tutte le entità.

  • Se ometti etag nel nuovo oggetto delle norme, il controllo delle modifiche simultanee alle norme viene disattivato e le tue modifiche potrebbero sovrascrivere accidentalmente quelle di un altro utente.