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 fatturazione, cartelle e organizzazioni utilizzando la Google Cloud console o l'API.

Prima di iniziare

Prima di procedere con la configurazione degli audit log di accesso ai dati, tieni presente 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 Google Cloud servizi 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 dei log di controllo.

  • Gli audit log degli accessi 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 di log privati (roles/logging.privateLogViewer) nel 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 ulteriori informazioni sui ruoli e sulle autorizzazioni IAM applicati 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 tueGoogle Cloud risorse e i tuoi servizi:

  • 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 attivare 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 Google Cloud progetto. Non puoi disattivare un audit log di accesso ai dati che è stato attivato 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 della 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 Google Cloud progetto che si applica ai servizi Google Cloud futuri che iniziano a produrre audit log di accesso ai dati. Per le istruzioni, consulta Impostare la configurazione predefinita.

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

  • Principali esenti: puoi esentare entità specifiche dall'essere registrate per gli accessi ai dati. Ad esempio, puoi esentare i tuoi account di test interni dalla registrazione delle operazioni di Cloud Monitoring. Per un elenco di principali validi, inclusi utenti e gruppi, consulta il riferimento ai tipi Binding.

Puoi configurare gli audit log di accesso ai dati tramite la pagina Audit log di IAM della Google Cloud console o utilizzando l'API. Questi metodi sono descritti 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 Attività amministratore:

  • Tipi di autorizzazioni di accesso ai dati:

    • ADMIN_READ: per le autorizzazioni IAM di questo tipo vengono controllati i metodi dell'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 verificare se sono presenti metodiGoogle Cloud API che leggono i dati forniti dall'utente. In genere, gli audit log di DATA_READ sono disabilitati per impostazione predefinita e devono essere abilitati.

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

  • Tipo di autorizzazione Attività amministratore:

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

Puoi attivare o disattivare i tipi di autorizzazione per i servizi utilizzando la Google Cloud console o invocando l'API.

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

Le sezioni seguenti descrivono in generale altri modi in cui i metodi dell'API controllano le autorizzazioni IAM. Google CloudPer informazioni specifiche del servizio sui metodi controllati per i tipi di autorizzazione, consulta la documentazione relativa ai log di controllo del servizio.

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

Alcuni Google Cloud metodi dell'API controllano se chi chiama ha più autorizzazioni IAM con diversi tipi di autorizzazioni di accesso ai dati. 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 il principale che emette una richiesta API abbia le autorizzazioni example.resource.get (DATA_READ) e example.resource.write (DATA_WRITE). Per consentire al servizio di emettere il log di controllo al momento dell'emissione della chiamata, è sufficiente che nel progetto sia attivata solo DATA_WRITE o DATA_READ.

Tipi di autorizzazioni IAM per Attività amministratore e Accesso ai dati selezionati

Alcuni metodi dell' Google Cloud API controllano 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 emettono audit log per le attività di amministrazione, che sono attivi per impostazione predefinita e non possono essere disattivati.

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

Alcuni Google Cloud servizi dispongono di metodi API che generano un log di controllo solo quando è abilitato un tipo di autorizzazione specifico per un servizio diverso.

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

Lo stesso metodo API controlla autorizzazioni IAM diverse

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

Ad esempio, Spanner ha un metodo API che a volte controlla la presenza di un'autorizzazione IAM con il tipo DATA_WRITE e a volte 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 attiva il log di controllo associato all'API solo quando è selezionata l'autorizzazione IAM con il tipo DATA_WRITE.

Configurazioni specifiche per i servizi

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

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

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

  • Puoi aggiungere i principali 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 Google Cloud servizio nella gerarchia, la configurazione risultante è l'unione delle configurazioni. In altre parole, a livello di Google Cloud progetto:

  • Puoi attivare i log per un Google Cloud servizio, ma non puoi disattivare i log per un Google Cloud servizio attivato in un'organizzazione o una cartella di primo livello. Google Cloud

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

  • Puoi aggiungere i principali 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 principale, puoi attivare i log di controllo dell'accesso ai dati per un Google Cloud progetto all'interno di quell'organizzazione o cartella, anche se i log di controllo dell'accesso ai dati non sono stati configurati nelGoogle Cloud progetto.

Controllo degli accessi

I ruoli e le autorizzazioni di Identity and Access Management regolano l'accesso ai dati di Logging, tra cui la visualizzazione e la gestione dei criteri IAM alla base delle configurazioni di logging degli audit dell'accesso ai dati.

Per visualizzare o impostare i criteri associati alla configurazione di Accesso ai dati, devi avere un ruolo con autorizzazioni a livello di risorsa appropriato. Per istruzioni su come concedere questi ruoli a livello di risorsa, consulta Gestire l'accesso a progetti, cartelle e organizzazioni. Google Cloud

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

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

Per l'elenco delle autorizzazioni e dei ruoli necessari per visualizzare i log di controllo dell'accesso ai dati, consulta Controllo dell'accesso con IAM.

Configurare gli audit log di accesso ai dati con la Google Cloud console

Questa sezione spiega come utilizzare la Google Cloud console per configurare i log di controllo di Data Access.

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 Google Cloud console, segui questi passaggi:

  1. Nella Google Cloud console, vai alla pagina Audit log:

    Vai ad 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 attivare 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 dalla colonna Servizio.

  2. Nella scheda Tipi di autorizzazione, 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 Controlla.

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 Google Cloud servizi che producono log di controllo dell'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 Google Cloud servizio, eredita la configurazione di controllo predefinita.

Disattivare gli audit log di accesso ai dati

Per disattivare gli audit log di accesso ai dati, segui questi passaggi:

  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.

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

Impostare le esenzioni

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

Per impostare le esenzioni:

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

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

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

    Puoi aggiungere più principali facendo clic sul pulsante Aggiungi principale esente tutte le volte che è necessario.

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

  4. In Disabled Log Types (Tipi di log disattivati), seleziona i tipi di audit log di accesso ai dati che vuoi disattivare.

  5. Fai clic su Salva.

Se hai aggiunto correttamente entità esenti a un servizio, la tabella Configurazione degli audit log di accesso ai dati lo indica con un numero nella colonna Enti esenti.

Per rimuovere un principale dall'elenco delle esenzioni:

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

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

  3. Tieni premuto il puntatore del mouse sopra un nome principale e seleziona Elimina.

  4. Dopo che il nome del preside viene visualizzato 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 Google Cloud servizio dalla colonna Servizio.

  2. Seleziona la scheda Principali 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 alle esigenze dell'entità.

  5. Fai clic su Salva.

Impostare la configurazione predefinita

Puoi impostare una configurazione che tutti i servizi Google Cloud Google Cloud nuovi ed esistenti nel progetto, nella cartella o nell'organizzazione possano ereditare. L'impostazione di questa configurazione predefinita si applica se diventa disponibile un nuovo Google Cloud servizio e le entità della tua organizzazione iniziano a utilizzarlo: il servizio eredita il criterio di audit logging che hai già impostato per altri Google Cloud servizi, garantendo la registrazione degli audit log di 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 Principali esenti nel riquadro delle informazioni.

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

    Puoi aggiungere più principali facendo clic sul pulsante Aggiungi principale esente tutte le volte che è necessario.

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

  6. In Disabled Log Types (Tipi di log disattivati), seleziona i tipi di audit log di accesso ai dati che vuoi disattivare.

  7. Fai clic su Salva.

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

Questa sezione spiega come utilizzare l'API e l'interfaccia alla gcloud CLI per configurare gli audit log di accesso ai dati in modo programmatico.

Molte di queste attività possono essere eseguite anche utilizzando la Google Cloud console. Per istruzioni, consulta Configurare i log di controllo dell'accesso ai dati con la Google Cloud console 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 tuo Google Cloud progetto, alla tua cartella o alla tua organizzazione. La configurazione degli audit log si trova nella sezione auditConfigs del criterio:

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

Per maggiori dettagli, consulta il tipo di criterio 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 getIamPolicy e setIamPolicy.

AuditConfig oggetti

La configurazione dei log di controllo è 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 determinato servizio, per quel servizio viene utilizzata la configurazione più ampia. Se non è presente alcuna configurazione, significa che 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 da 0 a 3 oggetti, ognuno dei quali configura un tipo di informazioni del log di controllo. Se ometti uno dei tipi dall'elenco, questo tipo di informazioni non viene attivato per il servizio.

PRINCIPAL è un utente per cui non vengono raccolti i log di controllo dell'accesso ai dati. Il tipo Binding descrive diversi tipi di principali, tra cui utenti e gruppi, ma non tutti possono essere utilizzati per configurare i log di controllo 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 Google Cloud progetti.

Abilita tutti gli audit log di accesso ai dati

La sezione auditConfigs che segue attiva 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

Attivare un servizio e un tipo di informazioni

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

JSON

"auditConfigs": [
  {
    "service": "cloudsql.googleapis.com",
    "auditLogConfigs": [
      { "logType": "DATA_WRITE" },
    ]
  },
]

YAML

auditConfigs:
- auditLogConfigs:
  - logType: DATA_WRITE
  service: cloudsql.googleapis.com

Disattivare tutti gli audit log di accesso ai dati

Per disattivare tutti gli audit log per l'accesso ai dati (tranne quelli di BigQuery) in un Google Cloud progetto, includi una sezione auditConfigs: vuota nel nuovo Google Cloud regolamento IAM:

JSON

"auditConfigs": [],

YAML

auditConfigs:

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

I log di controllo 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 il criterio IAM. Hai a disposizione diverse opzioni per i metodi specifici da utilizzare:

  • L'API Cloud Resource Manager dispone dei seguenti metodi:

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • Google Cloud CLI dispone dei 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 il criterio corrente utilizzando uno dei metodi getIamPolicy. Salva il criterio in un file temporaneo.
  2. Modifica il criterio nel file temporaneo. Modifica (o aggiungi) solo la sezione auditConfigs.
  3. Scrive il criterio modificato nel file temporaneo utilizzando uno dei metodi setIamPolicy.

setIamPolicy non va a buon fine 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 di 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:

  1. Leggi il criterio IAM del progetto e salvalo in un file:

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

    Di seguito è riportata la norma restituita. Questa norma 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 il criterio 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 per le operazioni di scrittura dei dati 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, iniziando dal primo.

JSON

Per utilizzare 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, procedi nel seguente modo:

  1. Leggi il criterio IAM del progetto specificando i seguenti parametri al metodo dell'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 le norme del progetto non contengono una sezione auditConfigs.

  2. Modifica il criterio corrente:

    • Modifica o aggiungi la sezione auditConfigs.

      Per disattivare 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 dall'oggetto del nuovo criterio, a condizione che tu abbia cura di impostare updateMask nel passaggio successivo. Di seguito è riportato il criterio modificato, che attiva i log di controllo DATA_WRITE di Cloud SQL:

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

    • resource: projects/PROJECT_ID
    • Corpo della richiesta: includi il criterio modificato.

La maschera di aggiornamento setIamPolicy

Questa sezione spiega l'importanza del parametro updateMask nel metodosetIamPolicy e spiega perché devi fare attenzione con il comandoset-iam-policy gcloud CLI per non causare danni accidentali al tuo Google Cloud progetto o alla tua organizzazione.

Il metodo dell'API setIamPolicy utilizza un parametro updateMask per controllare i campi delle norme da aggiornare. Ad esempio, se la maschera non contiene bindings, non puoi modificare accidentalmente quella sezione delle norme. Invece, se la maschera contiene bindings, la sezione viene aggiornata sempre. 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 ti 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 criterio fornito in set-iam-policy contiene altri campi di primo livello, ad esempio auditConfigs, questi campi vengono aggiunti a updateMask.

In base a queste regole, il comando set-iam-policy ha i seguenti comportamenti:

  • Se ometti la sezione auditConfigs nel nuovo criterio, il valore precedente della sezione auditConfigs (se presente) non viene modificato, in quanto questa sezione non è presente nella maschera di aggiornamento. Non è dannoso, ma potrebbe creare confusione.

  • Se ometti bindings nel nuovo oggetto criterio, la sezione bindings viene rimossa dal criterio, poiché viene visualizzata nella maschera di aggiornamento. Questo è molto dannoso e fa sì che tutte le entità perdano l'accesso al tuo Google Cloud progetto.

  • Se ometti etag nel nuovo oggetto criterio, viene disattivato il controllo delle modifiche simultanee al criterio e le modifiche potrebbero sovrascrivere accidentalmente quelle di qualcun altro.