Abilita gli audit log di accesso ai dati

Gli audit log di accesso ai dati consentono di registrare le chiamate API che leggono le configurazioni o i metadati delle risorse, nonché le chiamate API effettuate dagli utenti che creano, modificano o leggono i dati delle risorse forniti dall'utente. Poiché questi log sono disabilitati per impostazione predefinita per la maggior parte dei servizi, puoi abilitare, configurare o disabilitare esplicitamente i log per i tuoi 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 dei log di controllo dell'accesso ai dati, tieni presente le seguenti informazioni:

  • Gli audit log di accesso ai dati sono disattivati per impostazione predefinita per tutti i servizi, ad eccezione di alcuni servizi BigQuery. Se vuoi che gli audit log di controllo dell'accesso ai dati vengano scritti per i servizi in cui questi log sono disabilitati per impostazione predefinita, devi abilitarli esplicitamente nella console Google Cloud o utilizzando l'API.

  • Gli audit log di accesso ai dati vengono archiviati nel bucket _Default, a meno che non li abbia indirizzati altrove. Per saperne di più, 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. Pertanto, ti consigliamo di attivare gli audit log di accesso ai dati, se 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 i log di controllo dell'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ù sui ruoli e sulle autorizzazioni IAM che si applicano ai dati degli audit log, consulta Controllo dell'accesso con IAM.

Panoramica configurazione

Puoi configurare il modo in cui gli audit log di accesso ai dati vengono abilitati 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 controllo dell'accesso ai dati in una cartella, che si applicano 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 i log di controllo dell'accesso ai dati per un singolo progettoGoogle Cloud . Non puoi disabilitare un log di controllo dell'accesso ai dati che è stato abilitato in un'organizzazione o una cartella principale.

  • Account di fatturazione: per configurare i log di controllo dell'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 di 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 servizi Google Cloud futuri che iniziano a produrre audit log di accesso ai dati. Per istruzioni, consulta Imposta la configurazione predefinita.

  • Tipi di autorizzazioni: puoi specificare che le API Google Cloud che controllano solo un determinato tipo di autorizzazione generino un audit log. 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 di entità valide, inclusi utenti e gruppi, consulta il riferimento del 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à di amministrazione:

  • 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 disattivati per impostazione predefinita e devono essere attivati.

    • DATA_READ: le autorizzazioni IAM di questo tipo vengono controllate per i metodi APIGoogle Cloud che leggono i dati forniti dagli utenti. In genere, gli audit log DATA_READ sono disattivati per impostazione predefinita e devono essere attivati.

    • DATA_WRITE: le autorizzazioni IAM di questo tipo vengono controllate per i metodi APIGoogle Cloud che scrivono i dati forniti dagli utenti. In genere, gli audit log DATA_WRITE sono disattivati per impostazione predefinita e devono essere attivati.

  • Tipo di autorizzazione Attività amministratore:

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

Puoi attivare o disattivare i tipi di autorizzazioni per i servizi utilizzando la consoleGoogle Cloud o richiamando l'API.

La maggior parte delle API Google Cloud verifica 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 i metodi dell'API Google Cloud controllano le autorizzazioni IAM. Per informazioni specifiche sul servizio relative ai metodi controllati per i tipi di autorizzazione, consulta la documentazione sull'audit logging del servizio.

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

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

Ad esempio, un metodo API potrebbe verificare che l'entità 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 l'audit log quando viene inviata la chiamata.

Tipi di autorizzazioni IAM per l'attività di amministrazione e l'accesso ai dati controllati

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 delle 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 è abilitato un tipo di autorizzazione specifico per un servizio diverso.

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

Lo stesso metodo API controlla autorizzazioni IAM diverse

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

Ad esempio, Spanner ha un metodo API che a volte verifica la presenza di un'autorizzazione IAM con il tipo DATA_WRITE e a volte verifica la presenza di un'autorizzazione IAM con il tipo DATA_READ, a seconda di come viene chiamato il metodo. In questo caso, l'abilitazione di DATA_WRITE per Spanner nel progetto della chiamata API abilita l'audit log associato all'API solo quando viene controllata l'autorizzazione IAM con il tipo DATA_WRITE.

Configurazioni specifiche del servizio

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

  • Puoi attivare i log di controllo dell'accesso ai dati per servizi Google Cloudspecifici, ma non puoi disattivarli per i serviziGoogle Cloud attivati nella configurazione più ampia.

  • Puoi aggiungere altri tipi di informazioni al log di controllo dell'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 degli audit log di accesso ai dati viene ereditata dalla configurazione predefinita degli audit log.

I server MCP di Google Cloud scrivono log di controllo dell'accesso ai dati specifici del servizio e utilizzano il formato SERVICE_NAME.googleapis.com/mcp. Puoi abilitare questi log di accesso ai dati attivando l'audit logging per mcp.googleapis.com nell'oggetto IAM AuditConfig. Per saperne di più sull'audit logging per i server MCP di Google Cloud, consulta Audit logging dei server MCP di Google Cloud.

Google Cloud configurazioni delle risorse

Puoi configurare i log di controllo dell'accesso ai dati per progetti, account di fatturazione, cartelle e organizzazioni Google Cloud . Se esiste una configurazione per un servizioGoogle Cloud nella 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 disattivare i log per un servizio Google Cloud attivato in un'organizzazione o cartella principale.

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

  • Puoi aggiungere entità agli elenchi di esenzione, ma non puoi rimuoverle dagli elenchi di esenzione in un'organizzazione o cartella principale.

  • A livello di organizzazione o cartella principale, puoi attivare i log di controllo dell'accesso ai dati per un progetto Google Cloud all'interno di quell'organizzazione o cartella, anche se i log di controllo dell'accesso ai dati non sono stati configurati nel progettoGoogle Cloud .

Controllo degli accessi

I ruoli e le autorizzazioni di Identity and Access Management regolano l'accesso ai dati di Logging, inclusa la visualizzazione e la gestione delle policy IAM alla base delle configurazioni del controllo dell'accesso ai dati.

Per visualizzare o impostare le policy associate alla configurazione dell'accesso ai dati, devi disporre di un ruolo con autorizzazioni a livello di risorsa appropriato. Per istruzioni sulla concessione di questi ruoli a livello di risorsa, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni Google Cloud .

  • Per impostare le policy 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 i log di controllo dell'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 Configura gli audit log di controllo dell'accesso ai dati con l'API.

Per accedere alle opzioni di configurazione degli audit log 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, segui questi passaggi:

  1. Nella tabella Configurazione dei log di controllo dell'accesso ai dati, seleziona uno o più serviziGoogle Cloud dalla colonna Servizio.

  2. Nella scheda Tipi di autorizzazione, seleziona i tipi di log di controllo dell'accesso ai dati che vuoi attivare per i servizi selezionati.

  3. Fai clic su Salva.

Se hai attivato correttamente gli audit log, la tabella include un'icona Verifica.

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

Configurazione degli audit log

Puoi anche attivare i log di controllo per tutti i servizi Google Cloud che producono log di controllo dell'accesso ai dati. Nella tabella Configurazione dei log di controllo dell'accesso ai dati, seleziona tutti i servizi Google Cloud .

Tieni presente che questo metodo di configurazione collettiva si applica solo ai servizi Google Cloud disponibili per la tua risorsa. Se viene aggiunto un nuovo servizioGoogle Cloud , questo eredita la configurazione di controllo predefinita.

Disabilita i log di controllo dell'accesso ai dati

Per disabilitare i log di controllo dell'accesso ai dati, procedi come segue:

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

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

  3. Fai clic su Salva.

Se hai disattivato correttamente i log di controllo dell'accesso ai dati, la tabella lo indica con un trattino. Gli audit log di controllo dell'accesso ai dati abilitati sono contrassegnati con un'icona di controllo.

Imposta esenzioni

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

Per impostare le esenzioni:

  1. Nella tabella Configurazione dei log di controllo dell'accesso ai dati, seleziona un servizioGoogle Cloud dalla colonna Servizio.

  2. Seleziona la scheda Entità esentate nel riquadro delle informazioni.

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

    Puoi aggiungere più entità facendo clic sul pulsante Aggiungi entità esentata tutte le volte che vuoi.

    Per un elenco di entità valide, inclusi utenti e gruppi, consulta il riferimento del tipo Binding.

  4. In Tipi di log disabilitati, seleziona i tipi di log di controllo dell'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'entità dall'elenco di esenzione:

  1. Nella tabella Configurazione dei log di controllo dell'accesso ai dati, seleziona un servizioGoogle Cloud dalla colonna Servizio.

  2. Seleziona la scheda Entità esentate nel riquadro delle informazioni.

  3. Tieni il puntatore sul nome di un'entità, quindi seleziona Elimina.

  4. Dopo che il nome dell'entità viene visualizzato in testo barrato, fai clic su Salva.

Per modificare le informazioni di un'entità esentata:

  1. Nella tabella Configurazione dei log di controllo dell'accesso ai dati, seleziona un servizioGoogle Cloud dalla colonna Servizio.

  2. Seleziona la scheda Entità esentate nel riquadro delle informazioni.

  3. Individua l'entità e seleziona Espandi Mostra altro.

  4. Seleziona o deseleziona i tipi di audit log di accesso ai dati appropriati per l'entità.

  5. Fai clic su Salva.

Imposta 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 possano ereditare. 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 la policy 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 informazioni, seleziona i tipi di audit log di accesso ai dati che vuoi attivare o disattivare.

  3. Fai clic su Salva.

  4. Seleziona la scheda Entità esentate nel riquadro delle informazioni.

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

    Puoi aggiungere più entità facendo clic sul pulsante Aggiungi entità esentata tutte le volte che vuoi.

    Per un elenco di entità valide, inclusi utenti e gruppi, consulta il riferimento del tipo Binding.

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

  7. Fai clic su Salva.

Configura i log di controllo dell'accesso ai dati con l'API

Questa sezione spiega come utilizzare l'API e gcloud CLI per configurare i log di controllo dell'accesso ai dati in modo programmatico.

Molte di queste attività possono essere eseguite anche utilizzando la console Google Cloud ; per istruzioni, consulta Configura i log di controllo dell'accesso ai dati con la console Google Cloud in questa pagina.

Alcuni servizi BigQuery, come l'API BigQuery Reservation, richiedono l'abilitazione esplicita dei log di controllo dell'accesso ai dati. Per abilitare i log di controllo dell'accesso ai dati per l'API BigQuery Reservation, devi modificare la configurazione in modo da abilitare gli audit log ADMIN_READ per bigquery.googleapis.com.

Oggetti delle policy IAM

Per configurare gli audit log di controllo dell'accesso ai dati utilizzando l'API, devi modificare la policy IAM associata al progetto, alla cartella o all'organizzazione Google Cloud . La configurazione dell'audit log si trova nella sezione auditConfigs della policy:

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

Per maggiori dettagli, consulta il tipo Policy di IAM.

Le sezioni seguenti descrivono l'oggetto AuditConfig in maggiore dettaglio. Per i comandi dell'API e di gcloud CLI utilizzati per modificare la configurazione, consulta la sezione 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" o è il valore speciale "allServices". Se una configurazione non menziona un servizio specifico, per quel servizio viene utilizzata la configurazione più ampia. Se non esiste una 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 di oggetti da 0 a 3, ognuno dei quali configura un tipo di informazioni di audit log. 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 i log di controllo dell'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 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@"
        ],
        "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@
    logType: ADMIN_READ
  service: cloudsql.googleapis.com

Configurazioni comuni

Di seguito sono riportate alcune configurazioni comuni degli audit log per i progetti Google Cloud .

Abilita tutti i log di controllo dell'accesso ai dati

La seguente sezione auditConfigs attiva i log di controllo dell'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 attiva gli audit log di accesso ai dati 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 i log di controllo dell'accesso ai dati

Per disattivare tutti gli audit log per il controllo dell'accesso ai dati (ad eccezione di alcuni log di BigQuery) in un progetto Google Cloud , includi una sezione auditConfigs: vuota nella nuova policy IAM:

JSON

"auditConfigs": [],

YAML

auditConfigs:

Se rimuovi completamente la sezione auditConfigs dalla nuova policy, setIamPolicy non modifica la configurazione degli audit log di accesso ai dati esistente. Per saperne di più, consulta la sezione Maschera di aggiornamento setIamPolicy.

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

getIamPolicy e setIamPolicy

Utilizza i metodi getIamPolicy e setIamPolicy dell'API Cloud Resource Manager per leggere e scrivere la policy IAM. Hai 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 dispone dei 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:

  1. Leggi la policy attuale utilizzando uno dei metodi getIamPolicy. Salva la policy in un file temporaneo.
  2. Modifica la policy 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 va a buon fine se Resource Manager rileva che qualcun altro ha modificato la policy dopo che l'hai letta nel primo passaggio. In questo caso, ripeti i tre passaggi.

Esempi

Gli esempi seguenti 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 "projects" dei comandi e dei metodi API con la versione "organizations".

gcloud

Per configurare i log di controllo dell'accesso ai dati utilizzando il comando gcloud projects, segui questi passaggi:

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

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

    Di seguito sono riportate le norme sui resi. Queste norme non contengono 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 dei log di controllo dell'accesso ai dati.

    Ecco un esempio della policy modificata, che abilita i log di controllo dell'accesso ai dati di scrittura dei dati 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, all'inizio della policy sono state aggiunte quattro righe.

  3. Scrivi la nuova policy 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, iniziando dal primo.

JSON

Per utilizzare la policy 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 al metodo API getIamPolicy:

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

    Il metodo restituisce l'oggetto della 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 la politica attuale:

    • Modifica o aggiungi la sezione auditConfigs.

      Per disattivare i log di controllo dell'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é presti attenzione a impostare updateMask nel passaggio successivo. Di seguito è riportata la policy modificata, che attiva gli audit log 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 e 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 gcloud CLI set-iam-policy per evitare di 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 quella sezione della policy. D'altra parte, se la maschera contiene bindings, quella sezione viene sempre aggiornata. Se non includi un valore aggiornato per bindings, la sezione viene rimossa completamente dalla policy.

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.

Come conseguenza di queste regole, il comando set-iam-policy ha i seguenti comportamenti:

  • Se ometti la sezione auditConfigs nella nuova policy, il valore precedente della sezione auditConfigs (se presente) non viene modificato, perché questa sezione non è presente nella maschera di aggiornamento. Questo è innocuo, ma potrebbe creare confusione.

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

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