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 |
---|---|
Amministratore logging( 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:
Contiene 15 autorizzazioni di proprietario |
logging.buckets.copyLogEntries manage_accounts logging.buckets.create manage_accounts logging.buckets.delete logging.bucket.get logging.buckets.list manage_accounts logging.buckets.undelete manage_accounts logging.buckets.update logging.exclusions.*
manage_accounts logging.fields.access logging.links.*
logging.locations.*
logging.logEntries.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.*
logging.notificationRegole.*
logging.operations.*
manage_accounts logging.privateLogEntries.list logging.queries.*
logging.settings.*
logging.sink.*
logging.utilizzo.get logging.views.*
resourcemanager.projects.get resourcemanager.projects.list |
Writer bucket di log( Possibilità di scrivere log in un bucket di log. Le risorse di livello più basso in cui puoi concedere questo ruolo:
|
logging.bucket.scrittura |
Writer configurazione log( 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:
Contiene 10 autorizzazioni del proprietario |
manage_accounts logging.buckets.create manage_accounts logging.buckets.delete logging.bucket.get logging.buckets.list manage_accounts logging.buckets.undelete manage_accounts logging.buckets.update logging.exclusions.*
logging.links.*
logging.locations.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.notificationRegole.*
logging.operations.*
logging.settings.*
logging.sink.*
logging.views.create logging.views.delete logging.views.get logging.views.list logging.views.update resourcemanager.projects.get resourcemanager.projects.list |
Funzione di accesso campo log( Possibilità di leggere campi con restrizioni in un bucket di log. Le risorse di livello più basso in cui puoi concedere questo ruolo:
Contiene 1 autorizzazione di proprietario |
manage_accounts logging.fields.access |
Funzione di accesso ai link dei log( Possibilità di visualizzare i link di un bucket. |
logging.link.get logging.link.list |
Writer log( Fornisce le autorizzazioni per scrivere voci di log. Le risorse di livello più basso in cui puoi concedere questo ruolo:
|
logging.logEntries.create logging.logEntries.route |
Visualizzatore log privati( 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:
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.logEntries.list logging.logMetrics.get logging.logMetrics.list logging.logServiceIndexes.list logging.logServices.list logging.logs.list manage_accounts 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 manage_accounts logging.views.access logging.views.get logging.views.list resourcemanager.projects.get |
Accesso a visualizzazione log( Possibilità di leggere i log in una visualizzazione. Le risorse di livello più basso in cui puoi concedere questo ruolo:
Contiene 1 autorizzazione di proprietario |
logging.logEntries.download manage_accounts logging.views.access Logging.views.listLogs logging.views.listResourceKeys logging. |
Visualizzatore log( Fornisce l'accesso per visualizzare i log. Le risorse di livello più basso in cui puoi concedere questo ruolo:
|
logging.bucket.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.link.get logging.link.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.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 accedere a tutti i log nel bucket
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 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 autorizzazioni per l'utilizzo di
gcloud logging
, consulta la sezione Autorizzazioni dalla riga di comando in questa pagina, quindi segui le istruzioni per creare un ruolo personalizzato.
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.
Autorizzazioni per i set di dati BigQuery collegati
L'elenco seguente descrive 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 Configuration Log (roles/logging.configWriter
) contengono le seguenti autorizzazioni:logging.links.list
logging.links.create
logging.links.get
logging.links.delete
I ruoli Funzione di accesso ai link 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 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 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. Nello specifico, 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à ha bisogno dell'autorizzazionelogging.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:
- Concedi i ruoli Writer configurazione log
(
roles/logging.configWriter
) e Visualizzatore log (roles/logging.viewer
). - Crea un ruolo personalizzato e includi queste autorizzazioni. Per saperne di più, consulta Creazione e gestione dei ruoli personalizzati.
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
).- Per scoprire di più sui ruoli personalizzati, consulta Creazione e gestione dei ruoli personalizzati.
- Per ulteriori informazioni sui ruoli e sulle autorizzazioni di Monitoring, consulta Controllo dell'accesso con IAM.
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.