Controllo dell'accesso con IAM

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questo documento descrive come utilizzare i ruoli e le autorizzazioni di Identity and Access Management (IAM) per controllare l'accesso ai dati dei log nell'API Logging, in Esplora log e in Google Cloud CLI.

Panoramica

Le autorizzazioni e i ruoli IAM determinano la tua capacità di accedere ai dati dei log nell'API Logging, in Esplora log e in Google Cloud CLI.

Un ruolo è una raccolta di autorizzazioni. Non puoi concedere direttamente un'entità entità, ma piuttosto un ruolo. Quando concedi un ruolo a un'entità, concedi tutte le autorizzazioni che contiene. Puoi concedere più ruoli alla stessa entità.

Per utilizzare Logging in una risorsa Google Cloud, ad esempio un progetto, una cartella, un bucket o un'organizzazione Google Cloud, un'entità deve avere un ruolo IAM contenente le autorizzazioni appropriate.

Ruoli predefiniti

IAM fornisce ruoli predefiniti per concedere l'accesso granulare a risorse Google Cloud specifiche e impedire accessi indesiderati ad altre risorse. Google Cloud crea e mantiene questi ruoli e aggiorna automaticamente le relative autorizzazioni in base alle necessità, ad esempio quando Logging aggiunge nuove funzionalità.

Nella tabella seguente sono elencati i ruoli predefiniti per Logging. Per ciascun ruolo, la tabella mostra il titolo, la descrizione, le autorizzazioni contenute e il tipo di risorsa di livello più basso in cui è possibile concedere i ruoli. Puoi concedere i ruoli predefiniti a livello di progetto Cloud o, nella maggior parte dei casi, di qualsiasi tipo al livello più alto nella gerarchia Google Cloud. Per definire l'ambito dei ruoli Writer bucket di log o Logging dell'accesso log a livello di bucket più completo, utilizza gli attributi delle risorse per le condizioni IAM.

Per un elenco di tutte le singole autorizzazioni contenute in un ruolo, consulta Ottenere i metadati del ruolo.

Ruolo Autorizzazioni

(roles/logging.admin)

Fornisce tutte le autorizzazioni necessarie per utilizzare tutte le funzionalità di Cloud Logging.

Le risorse di livello più basso in cui puoi concedere questo ruolo:

  • Progetto

Contiene 15 autorizzazioni di proprietario

logging.buckets.copyLogEntries

logging.buckets.create

logging.buckets.delete

logging.bucket.get

logging.buckets.list

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.fields.access

logging.links.*

  • logging.link.create
  • logging.link.delete
  • logging.link.get
  • logging.link.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.*

  • logging.logEntries.create
  • logging.logEntries.download
  • logging.logEntries.list
  • logging.logEntries.route

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.*

  • logging.logs.delete
  • logging.logs.list

logging.notificationRegole.*

  • logging.notificationRegole.creare
  • logging.notificationRegole.elimina
  • logging.notificationRegole.get
  • logging.notificationRegole.list
  • logging.notificationRegole.aggiornamento

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operazioni.list

logging.privateLogEntries.list

logging.queries.*

  • logging.queries.create
  • logging.queries.delete
  • logging.queries.get
  • logging.queries.list
  • logging.queries.listcondivisa
  • logging.queries.share
  • logging.queries.aggiornamento
  • logging.queries.updateShared

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sink.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.utilizzo.get

logging.views.*

  • logging.views.access
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.list
  • Logging.views.listLogs
  • logging.views.listResourceKeys
  • logging.views.listResourceValues
  • logging.views.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.bucketWriter)

Possibilità di scrivere log in un bucket di log.

Le risorse di livello più basso in cui puoi concedere questo ruolo:

  • Progetto

logging.bucket.scrittura

(roles/logging.configWriter)

Fornisce le autorizzazioni per leggere e scrivere le configurazioni delle metriche e dei sink basati su log per l'esportazione dei log.

Le risorse di livello più basso in cui puoi concedere questo ruolo:

  • Progetto

Contiene 10 autorizzazioni del proprietario

logging.buckets.create

logging.buckets.delete

logging.bucket.get

logging.buckets.list

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.links.*

  • logging.link.create
  • logging.link.delete
  • logging.link.get
  • logging.link.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.notificationRegole.*

  • logging.notificationRegole.creare
  • logging.notificationRegole.elimina
  • logging.notificationRegole.get
  • logging.notificationRegole.list
  • logging.notificationRegole.aggiornamento

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operazioni.list

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sink.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.views.create

logging.views.delete

logging.views.get

logging.views.list

logging.views.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.fieldAccessor)

Possibilità di leggere campi con restrizioni in un bucket di log.

Le risorse di livello più basso in cui puoi concedere questo ruolo:

  • Progetto

Contiene 1 autorizzazione di proprietario

logging.fields.access

(roles/logging.linkViewer)

Possibilità di visualizzare i link di un bucket.

logging.link.get

logging.link.list

(roles/logging.logWriter)

Fornisce le autorizzazioni per scrivere voci di log.

Le risorse di livello più basso in cui puoi concedere questo ruolo:

  • Progetto

logging.logEntries.create

logging.logEntries.route

(roles/logging.privateLogViewer)

Fornisce le autorizzazioni del ruolo Visualizzatore log e inoltre fornisce l'accesso di sola lettura alle voci di log nei log privati.

Le risorse di livello più basso in cui puoi concedere questo ruolo:

  • Progetto

Contiene due autorizzazioni di proprietario

logging.bucket.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.link.get

logging.link.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.privateLogEntries.list

logging.queries.create

logging.queries.delete

logging.queries.get

logging.queries.list

logging.queries.listcondivisa

logging.queries.aggiornamento

logging.sinks.get

logging.sinks.list

logging.utilizzo.get

logging.views.access

logging.views.get

logging.views.list

resourcemanager.projects.get

(roles/logging.viewAccessor)

Possibilità di leggere i log in una visualizzazione.

Le risorse di livello più basso in cui puoi concedere questo ruolo:

  • Progetto

Contiene 1 autorizzazione di proprietario

logging.logEntries.download

logging.views.access

Logging.views.listLogs

logging.views.listResourceKeys

logging.views.listResourceValues

(roles/logging.viewer)

Fornisce l'accesso per visualizzare i log.

Le risorse di livello più basso in cui puoi concedere questo ruolo:

  • Progetto

logging.bucket.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.link.get

logging.link.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operazioni.list

logging.queries.create

logging.queries.delete

logging.queries.get

logging.queries.list

logging.queries.listcondivisa

logging.queries.aggiornamento

logging.sinks.get

logging.sinks.list

logging.utilizzo.get

logging.views.get

logging.views.list

resourcemanager.projects.get

Le seguenti sezioni forniscono ulteriori informazioni per aiutarti a decidere quali ruoli si applicano ai casi d'uso delle entità.

Ruoli di logging

  • Per consentire a un utente di eseguire tutte le azioni in Logging, devi concedere il ruolo Amministratore Logging (roles/logging.admin).

  • Per consentire a un utente di creare e modificare le configurazioni di logging, ad esempio sink, bucket, viste, link, metriche basate su log o esclusioni, concedi il ruolo Writer configurazione log (roles/logging.configWriter).

  • Per consentire a un utente di leggere i log nei bucket _Required e _Default, utilizza Esplora log e la pagina Analisi dei log, concedi uno dei seguenti ruoli:

    • Per accedere a tutti i log nel bucket _Required e alla visualizzazione _Default nel bucket _Default, concedi il ruolo Visualizzatore log (roles/logging.viewer).
    • Per accedere a tutti i log nei bucket _Required e _Default, inclusi i log di accesso ai dati, concedi il ruolo Visualizzatore log privati (roles/logging.privateLogViewer).
  • Per consentire a un utente di leggere i log utilizzando una vista dei log in un bucket definito dall'utente, concedi il ruolo Accesso alla visualizzazione log (roles/logging.viewAccessor). Puoi limitare l'autorizzazione a una visualizzazione specifica di un bucket specifico utilizzando una condizione IAM; per un esempio, consulta Log di lettura di un bucket.

  • Per concedere a un utente l'accesso a campi LogEntry con limitazioni, se presenti, in un determinato bucket, concedi il ruolo Funzione di accesso ai campi dei log (roles/logging.fieldAccessor). Per ulteriori informazioni, consulta Configurare l'accesso a livello di campo.

  • Per consentire a un utente di scrivere log utilizzando l'API Logging, concedi il ruolo Writer log (roles/logging.logWriter). Questo ruolo non concede autorizzazioni di visualizzazione.

  • Per consentire all'account di servizio di una route sink di accedere a un bucket in un altro progetto Google Cloud, concedi all'account di servizio il ruolo Writer bucket di log (roles/logging.bucketWriter). Per istruzioni su come concedere le autorizzazioni a un account di servizio, vedi Impostare le autorizzazioni di destinazione.

Ruoli a livello di progetto

  • Per concedere l'accesso in visualizzazione alla maggior parte dei servizi Google Cloud, concedi il ruolo Visualizzatore (roles/viewer).

    Questo ruolo include tutte le autorizzazioni concesse dal ruolo Visualizzatore log (roles/logging.viewer).

  • Per concedere l'accesso come editor alla maggior parte dei servizi Google Cloud, concedi il ruolo Editor (roles/editor).

    Questo ruolo include tutte le autorizzazioni concesse dal ruolo Visualizzatore log (roles/logging.viewer) e le autorizzazioni per scrivere voci di log, eliminare log e creare metriche basate su log. Tuttavia, questo ruolo non consente agli utenti di creare sink o leggere gli audit log di accesso ai dati che si trovano nel bucket _Default.

  • Per concedere l'accesso completo alla maggior parte dei servizi Google Cloud, concedi il ruolo Proprietario (roles/owner).

Concessione dei ruoli in corso…

Per informazioni su come concedere un ruolo a un'entità, vedi Concedere, modificare e revocare l'accesso.

Puoi concedere più ruoli allo stesso utente. Per un elenco delle autorizzazioni contenute in un ruolo, vedi Ottenere i metadati del ruolo.

Se stai cercando di accedere a una risorsa di Google Cloud e non disponi delle autorizzazioni necessarie, contatta l'entità indicata come Proprietario della risorsa.

Ruoli personalizzati

Per creare un ruolo personalizzato con le autorizzazioni di Logging, segui questi passaggi:

Per saperne di più sui ruoli personalizzati, consulta Informazioni sui ruoli IAM personalizzati.

Autorizzazioni per l'API Logging

I metodi dell'API Logging richiedono autorizzazioni IAM specifiche. La tabella seguente elenca le autorizzazioni necessarie per i metodi API.

Se ti interessano i log contenuti nelle organizzazioni, negli account di fatturazione e nelle cartelle di Google Cloud, tieni presente che tali risorse hanno i propri metodi API per logs e sinks. Invece di ripetere tutti i metodi nella tabella, solo i metodi projects vengono mostrati singolarmente.

Metodo di registrazione Autorizzazione obbligatoria Tipo di risorsa
billingAccounts.logs.* logging.logs.* (vedi projects.logs.*) account di fatturazione
billingAccounts.sinks.* logging.sinks.* (vedi projects.sinks.*.) account di fatturazione
billingAccounts.locations.buckets.* logging.buckets.* (vedi projects.locations.buckets.*.) account di fatturazione
entries.list logging.logEntries.list oppure
logging.privateLogEntries.list
progetti, organizzazioni,
cartelle, account di fatturazione
entries.tail logging.logEntries.list oppure
logging.privateLogEntries.list
progetti, organizzazioni,
cartelle, account di fatturazione
entries.write logging.logEntries.create progetti, organizzazioni,
cartelle, account di fatturazione
folders.logs.* logging.logs.* (vedi projects.logs.*) folders
folders.sinks.* logging.sinks.* (vedi projects.sinks.*) folders
folders.locations.buckets.* logging.buckets.* (vedi projects.locations.buckets.*) folders
monitoredResourceDescriptors.list (nessuno) (nessuno)
organizations.logs.* logging.logs.* (vedi projects.logs.*) organizations
organizations.sinks.* logging.sinks.* (vedi projects.sinks.*) organizations
organizations.locations.buckets.* logging.buckets.* (vedi projects.locations.buckets.*) organizations
projects.exclusions.create logging.exclusions.create projects
projects.exclusions.delete logging.exclusions.delete projects
projects.exclusions.get logging.exclusions.get projects
projects.exclusions.list logging.exclusions.list projects
projects.exclusions.patch logging.exclusions.update projects
projects.logs.list logging.logs.list projects
projects.logs.delete logging.logs.delete projects
projects.sinks.list logging.sinks.list projects
projects.sinks.get logging.sinks.get projects
projects.sinks.create logging.sinks.create projects
projects.sinks.update logging.sinks.update projects
projects.sinks.delete logging.sinks.delete projects
projects.locations.buckets.list logging.buckets.list projects
projects.locations.buckets.get logging.buckets.get projects
projects.locations.buckets.patch logging.buckets.update projects
projects.locations.buckets.create logging.buckets.create projects
projects.locations.buckets.delete logging.buckets.delete projects
projects.locations.buckets.undelete logging.buckets.undelete projects
projects.metrics.list logging.logMetrics.list projects
projects.metrics.get logging.logMetrics.get projects
projects.metrics.create logging.logMetrics.create projects
projects.metrics.update logging.logMetrics.update projects
projects.metrics.delete logging.logMetrics.delete projects

Autorizzazioni per la console Google Cloud

Nella tabella seguente sono elencate le autorizzazioni necessarie per utilizzare Esplora log.

Nella tabella, a.b.{x,y} significa a.b.x e a.b.y.

Attività della console Autorizzazioni obbligatorie
Accesso minimo in sola lettura logging.logEntries.list
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
resourcemanager.projects.get
Aggiungi la possibilità di visualizzare gli audit log di accesso ai dati Aggiungi logging.privateLogEntries.list
Aggiungi la possibilità di visualizzare le metriche basate su log Aggiungi logging.logMetrics.{list, get}
Aggiungi la possibilità di visualizzare i sink Aggiungi logging.sinks.{list, get}
Aggiungi la possibilità di visualizzare l'utilizzo dei log Aggiungi logging.usage.get
Aggiungi la possibilità di escludere i log Aggiungi logging.exclusions.{list, create, get, update, delete}
Aggiungi la possibilità di utilizzare i sink Aggiungi logging.sinks.{list, create, get, update, delete}
Aggiungi la possibilità di creare metriche basate su log Aggiungi logging.logMetrics.{list, create, get, update, delete}
Aggiungi la possibilità di salvare le query Aggiungi logging.queries.{list, create, get, update, delete}
Aggiungi la possibilità di condividere le query Aggiungi logging.queries.share
Aggiungi la possibilità di utilizzare le query recenti Aggiungi logging.queries.{create, list}

Autorizzazioni per la riga di comando

I comandi gcloud logging sono controllati dalle autorizzazioni IAM.

Per utilizzare uno dei comandi gcloud logging, le entità devono avere l'autorizzazione serviceusage.services.use.

Un'entità deve anche avere il ruolo IAM corrispondente alla risorsa del log e al caso d'uso. Per i dettagli, consulta Autorizzazioni dell'interfaccia a riga di comando.

L'elenco seguente descrive i ruoli predefiniti e le autorizzazioni corrispondenti per la gestione dei set di dati BigQuery collegati:

I ruoli e le autorizzazioni elencati in precedenza si applicano solo alle pagine di logging, come la pagina di analisi dei log. Se utilizzi l'interfaccia BigQuery per gestire i tuoi set di dati, potrebbero essere necessari ruoli e autorizzazioni BigQuery separati. Per ulteriori informazioni, consulta Controllo dell'accesso con IAM per BigQuery.

Autorizzazioni per i log di routing

Per informazioni sull'impostazione dei controlli di accesso durante la creazione e la gestione dei sink per il routing dei log, consulta Impostare le autorizzazioni di destinazione.

Tieni presente che la gestione dei filtri di esclusione è integrata con la configurazione dei sink. Tutte le autorizzazioni relative alla gestione dei sink, inclusa l'impostazione di filtri di esclusione, sono incluse nelle autorizzazioni logging.sinks.*. Quando crei un ruolo personalizzato che include le autorizzazioni per gestire i filtri di esclusione, aggiungi le autorizzazioni logging.sinks.* al ruolo anziché aggiungere le autorizzazioni logging.exclusions.*.

Dopo che le voci di log sono state instradate a una destinazione supportata, l'accesso alle copie di log è controllato interamente dalle autorizzazioni e dai ruoli IAM sulle destinazioni: Cloud Storage, BigQuery o Pub/Sub.

Autorizzazioni per le metriche basate su log

Di seguito è riportato un riepilogo dei ruoli e delle autorizzazioni comuni di cui un'entità ha bisogno per accedere alle metriche basate su log:

  • Il ruolo Writer configurazione log (roles/logging.configWriter) consente alle entità di elencare, creare, ottenere, aggiornare ed eliminare metriche basate su log.

  • Il ruolo Visualizzatore log (roles/logging.viewer) contiene le autorizzazioni per visualizzare le metriche esistenti. In particolare, un'entità richiede le autorizzazioni logging.logMetrics.get e logging.logMetrics.list per visualizzare le metriche esistenti.

  • Il ruolo Visualizzatore Monitoring (roles/monitoring.viewer) contiene le autorizzazioni per leggere i dati di TimeSeries. Nello specifico, un'entità richiede l'autorizzazione monitoring.timeSeries.list per leggere i dati delle serie temporali.

  • I ruoli Amministratore Logging (roles/logging.admin), Editor progetto (roles/editor) e Proprietario progetto (roles/owner) contengono le autorizzazioni per creare metriche basate su log. In particolare, un entità ha bisogno dell'autorizzazione logging.logMetrics.create per creare metriche basate su log.

Autorizzazioni per gli avvisi basati su log

Di seguito è riportato un riepilogo dei ruoli e delle autorizzazioni comuni di cui un'entità ha bisogno per creare e gestire gli avvisi basati su log:

  • L'amministratore Logging (roles/logging.admin) contiene le autorizzazioni per creare e gestire gli avvisi basati su log.

    In particolare, un'entità richiede le seguenti autorizzazioni per leggere i log e gestire le regole di notifica di Logging:

    • logging.logs.list
    • logging.logEntries.list
    • logging.notificationRules.create
    • logging.notificationRules.update

    Se non vuoi concedere questo ruolo:

  • I ruoli MonitorPolicy Editor Editor (roles/monitoring.alertPolicyEditor) e Monitoring NotificationChannel Editor (roles/monitoring.notificationChannelEditor) includono le autorizzazioni necessarie per gestire i criteri di avviso e i canali di notifica utilizzati dagli avvisi basati su log:

    • monitoring.alertPolicies.{create, delete, get, list, update}
    • monitoring.notificationChannelDescriptors.{get, list}
    • monitoring.notificationChannels.{create, delete, get, list, sendVerificationCode, update, verify}

    Le autorizzazioni necessarie sono incluse anche nei ruoli Editor Monitoring (roles/monitoring.editor) e Amministratore Monitoring (roles/monitoring.admin).

    Se non vuoi concedere nessuno di questi ruoli, crea un ruolo personalizzato e includi le autorizzazioni nei ruoli Monitoring Monitoring AlertPolicy (roles/monitoring.alertPolicyEditor) e Editor NotificationChannel Monitoring (roles/monitoring.notificationChannelEditor).

Ambiti di accesso di Logging

Gli ambiti di accesso sono il metodo legacy per specificare le autorizzazioni per gli account di servizio nelle istanze VM di Compute Engine.

I seguenti ambiti di accesso si applicano all'API Logging:

Ambito dell'accesso Autorizzazioni concesse
https://www.googleapis.com/auth/logging.read roles/logging.viewer
https://www.googleapis.com/auth/logging.write roles/logging.logWriter
https://www.googleapis.com/auth/logging.admin Accesso completo all'API Logging.
https://www.googleapis.com/auth/cloud-platform Accesso completo all'API Logging e a tutte le altre API Google Cloud abilitate.

Per informazioni sull'utilizzo di questo metodo precedente per impostare i livelli di accesso degli account di servizio, consulta Autorizzazioni account di servizio.