Questo documento descrive come utilizzi i ruoli e le autorizzazioni di Identity and Access Management (IAM) per controllare l'accesso ai dati di log nell'API Logging, in Logs Explorer e nell'interfaccia a riga di comando di Google Cloud.
Panoramica
Le autorizzazioni e i ruoli IAM determinano la tua possibilità di accedere ai dati dei log nell'API Logging, nell'Explorer Logs e nell'interfaccia a riga di comando di Google Cloud.
Un ruolo è una raccolta di autorizzazioni. Non puoi concedere direttamente un'autorizzazione a entità, ma solo assegnare un ruolo. Quando concedi un ruolo a un'entità, gli concedi tutte le autorizzazioni contenute nel ruolo. Puoi concedere più ruoli alla stessa entità.
Per utilizzare Logging in una risorsa di Google Cloud, ad esempio un progetto, una cartella, un bucket o un'organizzazione di Google Cloud, l'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 l'accesso indesiderato ad altre risorse. Google Cloud crea e mantiene questi ruoli e ne aggiorna automaticamente le autorizzazioni in base alle esigenze, ad esempio quando Logging aggiunge nuove funzionalità.
Nella tabella seguente sono elencati i ruoli predefiniti per Logging. Per ogni 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 a un livello superiore nella gerarchia Google Cloud. Per definire meglio l'ambito del ruolo Writer bucket di log o di accesso tramite visualizzazione log a livello di bucket, utilizza gli attributi della risorsa per le condizioni IAM.
Per visualizzare un elenco di ogni singola autorizzazione contenuta in un ruolo, vedi Ottenere i metadati del ruolo.
Ruolo | Autorizzazioni |
---|---|
Amministratore di logging
Fornisce tutte le autorizzazioni necessarie per utilizzare tutte le funzionalità di Cloud Logging. Risorse di livello inferiore in cui puoi concedere questo ruolo:
|
|
Writer bucket di log
Possibilità di scrivere log in un bucket di log. Risorse di livello inferiore in cui puoi concedere questo ruolo:
|
|
Writer configurazione log
Fornisce le autorizzazioni per leggere e scrivere le configurazioni di metriche e sink basati su log per l'esportazione dei log. Risorse di livello inferiore in cui puoi concedere questo ruolo:
|
|
Funzione di accesso al campo Log
Possibilità di leggere campi con restrizioni in un bucket di log. Risorse di livello inferiore in cui puoi concedere questo ruolo:
|
|
Writer log
Fornisce le autorizzazioni per scrivere le voci di log. Risorse di livello inferiore in cui puoi concedere questo ruolo:
|
|
Visualizzatore log privati
Fornisce le autorizzazioni del ruolo Visualizzatore log e, inoltre, fornisce l'accesso in sola lettura alle voci di log nei log privati. Risorse di livello inferiore in cui puoi concedere questo ruolo:
|
|
Funzione di accesso alla visualizzazione dei log
Possibilità di leggere i log in una visualizzazione. Risorse di livello inferiore in cui puoi concedere questo ruolo:
|
|
Visualizzatore log
Fornisce l'accesso per visualizzare i log. Risorse di livello inferiore in cui puoi concedere questo ruolo:
|
|
Ulteriori considerazioni
Quando decidi quali autorizzazioni e ruoli si applicano alle tue entità, puoi prendere in considerazione i seguenti casi d'uso:
roles/logging.admin
(amministratore di logging) ti concede tutte le autorizzazioni relative a Logging.roles/logging.viewer
(Visualizzatore log) concede alle entità l'accesso in sola lettura alla maggior parte delle funzionalità di Logging.Il ruolo Visualizzatore log concede alle entità l'accesso sia alla
_AllLogs
visualizzazione del log nel bucket_Required
che alla vista_Default
nel bucket_Default
.Il ruolo Visualizzatore log non consente alle entità di leggere i log di controllo dell'accesso ai dati presenti nel bucket
_Default
. Per leggere questi log di controllo di accesso ai dati, le entità devono avere il ruolo Visualizzatore log privati (roles/logging.privateLogViewer
) per la vista log appropriata.Il ruolo Visualizzatore log non consente alle entità di leggere i log archiviati in bucket definiti dall'utente. Per leggere i log nei bucket definiti dall'utente, le entità devono disporre del ruolo Access Visualizzatore log (
roles/logging.viewAccessor
) per la vista log appropriata.roles/logging.privateLogViewer
(Visualizzatore log privati) include tutte le autorizzazioni contenute inroles/logging.viewer
e offre la possibilità di leggere gli audit log di accesso ai dati nel bucket_Default
.Il ruolo Visualizzatore log privati non consente alle entità di leggere i log di controllo dell'accesso ai dati se sono archiviati in bucket definiti dall'utente; per leggere questi log nei bucket definiti dall'utente, le entità devono avere il ruolo Visualizzatore log (
roles/logging.viewAccessor
) per la vista log appropriata.roles/logging.viewAccessor
(Logs View Accessor) concede alle entità le autorizzazioni per leggere log, chiavi delle risorse e valori utilizzando una vista log e per scaricare i log. Per limitare questo ruolo a una visualizzazione in un bucket specifico, utilizza una condizione IAM; per un esempio, consulta Lettura dei log da un bucket.roles/logging.fieldAccessor
(Logs Field Accessor) concede alle entità le autorizzazioni per accedere ai campi con restrizioni diLogEntry
, se presenti, in un determinato bucket. Per ulteriori dettagli, consulta Controllo dell'accesso a livello di campo.roles/logging.logWriter
(Writer log) concede alle entità le autorizzazioni minime necessarie per scrivere i log nell'API Logging. Questo ruolo non concede le autorizzazioni di visualizzazione.roles/logging.bucketWriter
(Writer bucket di log) concede a un account di servizio sink, impostando le autorizzazioni minime richieste per instradare i log a un bucket specifico. Per istruzioni sulla concessione delle autorizzazioni a un account di servizio di sink, vedi Impostare le autorizzazioni di destinazione.roles/logging.configWriter
(Logs Configuration Writer) concede ai privilegi le autorizzazioni per creare o modificare le configurazioni di logging, come sink, bucket, viste, metriche basate su log o esclusioni. Per utilizzare lo strumento Esplora log per queste azioni, aggiungiroles/logging.viewer
.
roles/viewer
(Visualizzatore progetto) equivale aroles/logging.viewer
. Il ruolo concede alle entità l'accesso in sola lettura a tutte le funzionalità di Logging, ad eccezione della visualizzazione degli audit log di Data Access che si trovano nel bucket_Default
.roles/editor
(Project Editor) include le autorizzazioni diroles/logging.viewer
, oltre alle autorizzazioni per scrivere voci di log, eliminare i log e creare metriche basate su log. Il ruolo non consente alle entità di creare sink o leggere gli audit log di accesso ai dati che si trovano nel bucket_Default
.roles/owner
(Proprietario progetto) concede alle entità l'accesso completo alla registrazione, come i log di controllo di accesso ai dati.
Concessione dei ruoli in corso…
Per informazioni su come concedere un ruolo a un'entità, vedi Concedere, modificare e revocare l'accesso.
Puoi assegnare più ruoli allo stesso utente. Per un elenco delle autorizzazioni contenute in un ruolo, consulta Acquisizione dei metadati del ruolo.
Se stai tentando di accedere a una risorsa di Google Cloud e non hai le autorizzazioni necessarie, contatta l'entità indicata come Proprietario della risorsa.
Ruoli personalizzati
Per creare un ruolo personalizzato con le autorizzazioni di Logging, procedi come segue:
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 a utilizzare Esplora log, scegli uno dei gruppi di autorizzazioni nella sezione Autorizzazioni console e poi segui le istruzioni per creare un ruolo personalizzato.
Per un ruolo che concede le autorizzazioni per utilizzare
gcloud logging
, consulta la sezione Autorizzazioni dalla riga di comando in questa pagina, quindi segui le istruzioni per creare un ruolo personalizzato.
Per ulteriori informazioni sui ruoli personalizzati, consulta Comprendere i ruoli personalizzati IAM.
Autorizzazioni API
I metodi dell'API Logging richiedono autorizzazioni IAM specifiche. La tabella riportata di seguito elenca le autorizzazioni necessarie per i metodi API.
Se ti interessano i log contenuti in organizzazioni, account di fatturazione e 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 o logging.privateLogEntries.list |
progetti, organizzazioni, cartelle, account di fatturazione |
entries.tail |
logging.logEntries.list o 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 della console
La tabella seguente contiene 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 |
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 funzionalità per 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 possibilità di condivisione di query | Aggiungi logging.queries.share |
Aggiungi la possibilità di utilizzare le query recenti | Aggiungi logging.queries. {create , list } |
Autorizzazioni dalla riga di comando
I comandi gcloud logging
sono
controllati dalle autorizzazioni IAM.
Per utilizzare uno qualsiasi dei comandi gcloud logging
, le entità devono disporre dell'autorizzazione
serviceusage.services.use
.
Un'entità deve avere anche il ruolo IAM corrispondente alla risorsa log e al caso d'uso. Per maggiori dettagli, consulta le autorizzazioni dell'interfaccia a riga di comando.
Autorizzazioni di routing dei log
Per informazioni sull'impostazione dei controlli di accesso durante la creazione e la gestione dei sink per i log di routing, consulta la sezione Configurare i sink: 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 autorizzazioni per gestire i filtri di esclusione, aggiungi le autorizzazioni logging.sinks.*
al ruolo anziché aggiungere le autorizzazioni logging.exclusions.*
.
Una volta che le voci di log sono state instradate a una destinazione supportata, l'accesso alle copie di log è controllato interamente dalle autorizzazioni IAM e dai ruoli nelle destinazioni: Cloud Storage, BigQuery o Pub/Sub.
Autorizzazioni delle 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:
Logs Configuration Writer (
roles/logging.configWriter
) consente alle entità di elencare, creare, ottenere, aggiornare ed eliminare metriche basate su log.Visualizzatore log (
roles/logging.viewer
) consente alle entità di visualizzare le metriche esistenti. Puoi anche aggiungere le autorizzazionilogging.logMetrics.get
elogging.logMetrics.list
a un ruolo personalizzato.Monitoring Monitoring (
roles/monitoring.viewer
) consente alle entità di leggere i dati di TimeSeries. Puoi anche aggiungere l'autorizzazionemonitoring.timeSeries.list
a un ruolo personalizzato.Gli amministratori di logging (
roles/logging.admin
), l'editor del progetto (roles/editor
) e il proprietario del progetto (roles/owner
) consentono ai criteri di creare metriche basate su log (logging.logMetrics.create
).
Autorizzazioni avvisi basate su log
Di seguito è riportato un riepilogo dei ruoli e delle autorizzazioni comuni di cui un'entità ha bisogno per creare e gestire avvisi basati su log:
Amministratore log (
roles/logging.admin
). In particolare, un'entità deve disporre delle 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
Queste autorizzazioni sono incluse nel ruolo Amministratore di Logging. 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 la sezione Creare e gestire ruoli personalizzati.
Monitoring AlertPolicy Editor (
roles/monitoring.alertPolicyEditor
) e Monitoring NotificationChannel Editor (roles/monitoring.notificationChannelEditor
) include 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 e Monitoring NotificationChannel.
- Per ulteriori informazioni sui ruoli personalizzati, consulta la sezione Creare e gestire ruoli personalizzati.
- Per ulteriori informazioni sui ruoli e sulle autorizzazioni di Monitoring, vedi Controllo dell'accesso.
Ambiti di accesso ai log
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 di 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 la pagina relativa alle autorizzazioni dell'account di servizio.