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, Esplora log e Google Cloud CLI.
Panoramica
Le autorizzazioni e i ruoli IAM determinano la tua possibilità 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 le autorizzazioni a un'entità, ma devi concederle un ruolo. Quando concedi un ruolo a un'entità, concedi tutte le autorizzazioni contenute nel ruolo. Puoi concedere più ruoli alla stessa entità.
Per utilizzare Logging all'interno di una risorsa Google Cloud, ad esempio un progetto, una cartella, un bucket o un'organizzazione Google Cloud, un'entità deve avere un ruolo IAM che contenga le autorizzazioni appropriate.
Ruoli predefiniti
IAM fornisce ruoli predefiniti per concedere un accesso granulare a risorse Google Cloud specifiche e impedire accessi indesiderati ad altre risorse. Google Cloud crea e gestisce questi ruoli e ne aggiorna automaticamente le autorizzazioni secondo necessità, ad esempio quando Logging aggiunge nuove funzionalità.
La tabella seguente elenca i ruoli predefiniti per Logging. Per ogni ruolo, la tabella visualizza il titolo, la descrizione, le autorizzazioni contenute e il tipo di risorsa di livello inferiore in cui è possibile concedere i ruoli. Puoi concedere i ruoli predefiniti a livello di progetto Google Cloud o, nella maggior parte dei casi, qualsiasi tipo di tipo superiore nella gerarchia di Google Cloud. Per definire l'ambito del ruolo Funzione di accesso alla visualizzazione log più strettamente a livello di bucket, utilizza gli attributi della risorsa per le condizioni IAM.
Per ottenere un elenco di ogni singola autorizzazione contenuta in un ruolo, vedi Recupero dei metadati dei ruoli.
Role | Permissions |
---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
logging.buckets.copyLogEntries logging.buckets.create logging.buckets.delete logging.buckets.get logging.buckets.list logging.buckets.undelete logging.buckets.update logging.exclusions.*
logging.fields.access logging.links.*
logging.locations.*
logging.logEntries.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.*
logging.notificationRules.*
logging.operations.*
logging.privateLogEntries.list logging.queries.*
logging.settings.*
logging.sinks.*
logging.usage.get logging.views.*
resourcemanager.projects.get resourcemanager.projects.list |
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
logging.buckets.write |
Logs Configuration Writer( Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs. Lowest-level resources where you can grant this role:
|
logging.buckets.create logging.buckets.delete logging.buckets.get logging.buckets.list logging.buckets.undelete logging.buckets.update logging.exclusions.*
logging.links.*
logging.locations.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.notificationRules.*
logging.operations.*
logging.settings.*
logging.sinks.*
logging.views.create logging.views.delete logging.views.get logging.views.list logging.views.update resourcemanager.projects.get resourcemanager.projects.list |
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
logging.fields.access |
Log Link Accessor( Ability to see links for a bucket. |
logging.links.get logging.links.list |
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
logging.logEntries.create logging.logEntries.route |
Private Logs Viewer( Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs. Lowest-level resources where you can grant this role:
|
logging.buckets.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.links.get logging.links.list logging.locations.*
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.listShared logging.queries.update logging.sinks.get logging.sinks.list logging.usage.get logging.views.access logging.views.get logging.views.list resourcemanager.projects.get |
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
logging.logEntries.download logging.views.access logging.views.listLogs logging.views.listResourceKeys logging. |
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
logging.buckets.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.links.get logging.links.list logging.locations.*
logging.logEntries.list logging.logMetrics.get logging.logMetrics.list logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.operations.get logging.operations.list logging.queries.create logging.queries.delete logging.queries.get logging.queries.list logging.queries.listShared logging.queries.update logging.sinks.get logging.sinks.list logging.usage.get logging.views.get logging.views.list resourcemanager.projects.get |
Le sezioni seguenti forniscono informazioni aggiuntive 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, concedi il ruolo Amministratore Logging (
roles/logging.admin
).Per consentire a un utente di creare e modificare configurazioni di logging, come 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 poi la pagina Analisi dei log, concedi uno dei seguenti ruoli:- Per l'accesso a tutti i log nel bucket
_Required
e alla visualizzazione_Default
nel bucket_Default
, concedi il ruolo Visualizzatore log (roles/logging.viewer
). - Per l'accesso 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 l'accesso a tutti i log nel bucket
Per consentire a un utente di leggere i log archiviati in un bucket definito dall'utente, concedi il ruolo Funzione di accesso alla visualizzazione dei log (
roles/logging.viewAccessor
). Puoi limitare l'autorizzazione a una visualizzazione log specifica su un bucket specifico utilizzando una condizione IAM. Per un esempio, consulta Lettura dei log da un bucket.Per concedere a un utente l'accesso a campi
LogEntry
limitati, se presenti, in un determinato bucket, concedi il ruolo Accessore ai campi dei log (roles/logging.fieldAccessor
). Per ulteriori informazioni, consulta la sezione Configurare l'accesso a livello di campo.Per consentire a un utente di scrivere i log utilizzando l'API Logging, concedi il ruolo Writer log (
roles/logging.logWriter
). Questo ruolo non concede le autorizzazioni di visualizzazione.Per consentire all'account di servizio di un sink di instradare i log 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 sulla concessione delle 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 in modifica 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 quelle per scrivere voci di log, eliminare log e creare metriche basate su log. Tuttavia, questo ruolo non consente agli utenti di creare sink, leggere gli audit log di accesso ai dati nel bucket_Default
o leggere i log nei bucket di log definiti dall'utente.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à, consulta Concessione, modifica e revoca dell'accesso.
Puoi concedere più ruoli allo stesso utente. Per ottenere un elenco delle autorizzazioni contenute in un ruolo, vedi Recupero dei metadati dei ruoli.
Se stai cercando di accedere a una risorsa Google Cloud e non hai le autorizzazioni necessarie, contatta l'entità indicata come Proprietario della risorsa.
Ruoli personalizzati
Per creare un ruolo personalizzato con autorizzazioni di Logging, segui questi passaggi:
Per un ruolo che concede autorizzazioni per l'API Logging, scegli le autorizzazioni da Autorizzazioni API, quindi segui le istruzioni per creare un ruolo personalizzato.
Per un ruolo che concede autorizzazioni per l'utilizzo di Esplora log, scegli tra i gruppi di autorizzazioni in Autorizzazioni della console, quindi segui le istruzioni per creare un ruolo personalizzato.
Per un ruolo che concede le autorizzazioni per utilizzare
gcloud logging
, consulta la sezione Autorizzazioni della riga di comando in questa pagina e segui le istruzioni per creare un ruolo personalizzato.
Per ulteriori informazioni sui ruoli personalizzati, consulta Informazioni sui ruoli IAM personalizzati.
Autorizzazioni per l'API Logging
I metodi dell'API Logging richiedono autorizzazioni IAM specifiche. Nella tabella seguente sono elencate le autorizzazioni necessarie dai metodi API.
Se ti interessano i log archiviati in organizzazioni, account di fatturazione e cartelle Google Cloud, tieni presente che queste risorse hanno metodi API propri per logs
e sinks
. Anziché 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 ologging.privateLogEntries.list |
progetti, organizzazioni, cartelle, account di fatturazione |
entries.tail |
logging.logEntries.list ologging.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 |
di progetti |
projects.exclusions.delete |
logging.exclusions.delete |
di progetti |
projects.exclusions.get |
logging.exclusions.get |
di progetti |
projects.exclusions.list |
logging.exclusions.list |
di progetti |
projects.exclusions.patch |
logging.exclusions.update |
di progetti |
projects.logs.list |
logging.logs.list |
di progetti |
projects.logs.delete |
logging.logs.delete |
di progetti |
projects.sinks.list |
logging.sinks.list |
di progetti |
projects.sinks.get |
logging.sinks.get |
di progetti |
projects.sinks.create |
logging.sinks.create |
di progetti |
projects.sinks.update |
logging.sinks.update |
di progetti |
projects.sinks.delete |
logging.sinks.delete |
di progetti |
projects.locations.buckets.list |
logging.buckets.list |
di progetti |
projects.locations.buckets.get |
logging.buckets.get |
di progetti |
projects.locations.buckets.patch |
logging.buckets.update |
di progetti |
projects.locations.buckets.create |
logging.buckets.create |
di progetti |
projects.locations.buckets.delete |
logging.buckets.delete |
di progetti |
projects.locations.buckets.undelete |
logging.buckets.undelete |
di progetti |
projects.metrics.list |
logging.logMetrics.list |
di progetti |
projects.metrics.get |
logging.logMetrics.get |
di progetti |
projects.metrics.create |
logging.logMetrics.create |
di progetti |
projects.metrics.update |
logging.logMetrics.update |
di progetti |
projects.metrics.delete |
logging.logMetrics.delete |
di progetti |
Autorizzazioni per la console Google Cloud
La tabella seguente elenca 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 di sola lettura | logging.logEntries.list logging.logs.list logging.logServiceIndexes.list logging.logServices.list resourcemanager.projects.get |
Aggiunta della possibilità di visualizzare gli audit log di accesso ai dati | Aggiungi logging.privateLogEntries.list |
Aggiunta della possibilità di visualizzare le metriche basate su log | Aggiungi logging.logMetrics. {list , get } |
Aggiunta la possibilità di visualizzare i sink | Aggiungi logging.sinks. {list , get } |
Aggiunta della possibilità di visualizzare l'utilizzo dei log | Aggiungi logging.usage.get |
Aggiunta della possibilità di escludere i log | Aggiungi logging.exclusions. {list , create , get , update , delete } |
Aggiunta della possibilità di utilizzare i sink | Aggiungi logging.sinks.{list , create , get , update , delete } |
Aggiunta della possibilità di creare metriche basate su log | Aggiungi logging.logMetrics. {list , create , get , update , delete } |
Aggiunta della possibilità di salvare le query | Aggiungi logging.queries. {list , create , get , update , delete } |
Aggiunta della possibilità di condividere query | Aggiungi logging.queries.share |
Aggiunta della 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 i 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 maggiori dettagli, consulta la sezione Autorizzazioni dell'interfaccia a riga di comando.
Autorizzazioni per i set di dati BigQuery collegati
Nell'elenco seguente sono descritti i ruoli predefiniti e le autorizzazioni corrispondenti per la gestione dei set di dati BigQuery collegati:
I ruoli Amministratore Logging (
roles/logging.admin
) e Writer configurazione log (roles/logging.configWriter
) contengono le seguenti autorizzazioni:logging.links.list
logging.links.create
logging.links.get
logging.links.delete
I ruoli Accesso alla funzione di accesso al link ai log (
roles/logging.linkViewer
), Visualizzatore log privati (roles/logging.privateLogViewer
) e Visualizzatore log (roles/logging.viewer
) contengono le seguenti autorizzazioni:logging.links.list
logging.links.get
I ruoli e le autorizzazioni elencati in precedenza si applicano solo alle pagine Logging, come la pagina 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 il routing dei log
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 dei filtri di esclusione, sono incluse nelle autorizzazioni logging.sinks.*
. Quando crei un ruolo personalizzato che includa 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 dei 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 necessarie a un'entità 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 le metriche basate su log.Il ruolo Visualizzatore log (
roles/logging.viewer
) contiene le autorizzazioni per visualizzare le metriche esistenti. In particolare, un'entità deve avere le autorizzazionilogging.logMetrics.get
elogging.logMetrics.list
per visualizzare le metriche esistenti.Il ruolo Visualizzatore Monitoring (
roles/monitoring.viewer
) contiene le autorizzazioni per leggere i dati di TimeSeries. In particolare, un'entità richiede l'autorizzazionemonitoring.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à richiede l'autorizzazionelogging.logMetrics.create
per creare metriche basate su log.
Autorizzazioni per gli avvisi basati su log
Per creare e gestire gli avvisi basati su log, un'entità deve avere i ruoli e le autorizzazioni di Logging e Monitoring.
L'amministratore di Logging (
roles/logging.admin
) contiene le autorizzazioni necessarie 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:
- Concedi i ruoli Writer configurazione log (
roles/logging.configWriter
) e Visualizzatore log (roles/logging.viewer
). - Crea un ruolo personalizzato e includi queste autorizzazioni. Per ulteriori informazioni, consulta Creazione e gestione di ruoli personalizzati.
I ruoli Monitoring AlertPolicy Editor (
roles/monitoring.alertPolicyEditor
) e Monitoring NotificationChannel Editor (roles/monitoring.notificationChannelEditor
) includono insieme 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}
I ruoli Editor di Monitoring (
roles/monitoring.editor
) e Amministratore di Monitoring (roles/monitoring.admin
) contengono ciascuno delle autorizzazioni necessarie per gestire anche i criteri di avviso e i canali di notifica.Se non vuoi concedere nessuno dei ruoli di Monitoring predefiniti, crea un ruolo personalizzato e includi le autorizzazioni dei ruoli Editor AlertPolicy Monitoring (
roles/monitoring.alertPolicyEditor
) ed Editor Monitoring NotificationChannel (roles/monitoring.notificationChannelEditor
).- Per saperne di più sui ruoli personalizzati, consulta Creazione e gestione di ruoli personalizzati.
- Per ulteriori informazioni sui ruoli e sulle autorizzazioni di Monitoring, consulta Controllo dell'accesso con IAM.
Ambiti di accesso a Logging
Gli ambiti di accesso sono il metodo legacy per specificare le autorizzazioni per gli account di servizio sulle istanze VM di Compute Engine.
All'API Logging si applicano i seguenti ambiti di accesso:
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 legacy per impostare i livelli di accesso degli account di servizio, consulta Autorizzazioni dell'account di servizio.