Controllo dell'accesso con IAM

Questo documento ti aiuta a capire come Cloud Logging utilizza i ruoli e le autorizzazioni di Identity and Access Management (IAM) per controllare l'accesso alle risorse Logging. I tuoi ruoli IAM determinano se puoi eseguire azioni come creare sink di log o bucket di log, leggere i dati di log archiviati in un bucket di log o accedere a pagine come Esplora log. Se emetti un comando API Logging o Google Cloud CLI, i tuoi ruoli IAM determinano se disponi dell'autorizzazione per eseguire il comando.

Panoramica

I tuoi ruoli IAM determinano le azioni che puoi eseguire in Logging. Un ruolo è una raccolta di autorizzazioni. Se concedi un ruolo a un'entità, le concedi tutte le autorizzazioni incluse nel ruolo. Puoi concedere più ruoli alla stessa entità.

I ruoli IAM vengono concessi per una risorsa, ad esempio un progetto, una cartella, un bucket o un'organizzazione. Trusted Cloud Ad esempio, potresti concedere a un'entità il ruolo di Visualizzatore log (role/logging.viewer) su un determinato progetto Trusted Cloud .

Le sezioni Ruoli predefiniti e Ruoli di logging di questa pagina forniscono informazioni complete su ruoli e autorizzazioni di Logging. Altre sezioni di questa pagina forniscono informazioni su ruoli o autorizzazioni per casi d'uso specifici.

Il resto di questa sezione riassume come puoi concedere a un principal l'accesso ai bucket di log o solo ad alcune voci di log in un bucket di log.

Concedere l'accesso ai bucket di log

Il ruolo Visualizzatore log (role/logging.viewer) consente a un'entità di accedere a tutti i dati dei log archiviati nei bucket di log _Required e _Default, ad eccezione dei log di accesso ai dati. Se un'entità deve accedere ai log di accesso ai dati, concedi il ruolo Visualizzatore log privati (roles/logging.privateLogViewer).

Per i bucket log personalizzati, puoi concedere l'accesso alla visualizzazione _AllLogs o a una visualizzazione log personalizzata. La registrazione crea automaticamente la visualizzazione _AllLogs, che include tutte le voci di log nel bucket di log. Per concedere l'accesso a una visualizzazione dei log, aggiungi un'associazione IAM al criterio IAM collegato alla visualizzazione dei log o al progetto. Per scoprire di più, vedi Controllare l'accesso a una visualizzazione dei log.

La registrazione supporta anche i tag nei bucket log, che possono aiutarti a comprendere i costi. Puoi anche utilizzare i tag per impedire a un utente di eliminare un bucket di log. Per saperne di più, vedi Utilizzare i tag per gestire l'accesso ai bucket di log.

Concedere l'accesso ad alcune voci di log in un bucket di log

Per concedere a un'entità l'accesso solo ad alcune delle voci di log archiviate in un bucket di log, crea una visualizzazione dei log e poi concedi all'entità l'accesso alla visualizzazione dei log. Ad esempio, puoi creare una visualizzazione log nel bucket log _Default che includa solo le voci di log il cui tipo di risorsa è un'istanza Compute Engine. Per saperne di più sulla creazione di visualizzazioni dei log e sulle diverse strategie che puoi utilizzare per concedere l'accesso alla visualizzazione, consulta Configurare le visualizzazioni dei log in un bucket di log.

Ruoli predefiniti

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

La tabella seguente elenca 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 possono essere concessi i ruoli. Puoi concedere i ruoli predefiniti a livello di progetto o, nella maggior parte dei casi, a qualsiasi tipo di livello superiore nella gerarchia delle risorse. Trusted Cloud Per limitare il ruolo Visualizzatore log a una visualizzazione dei log in un bucket, utilizza gli attributi delle risorse per le condizioni IAM.

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

Role Permissions

(roles/logging.admin)

Provides all permissions necessary to use all features of Cloud Logging.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.copyLogEntries

logging.buckets.create

logging.buckets.createTagBinding

logging.buckets.delete

logging.buckets.deleteTagBinding

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

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.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.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.logScopes.*

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

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.*

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

logging.notificationRules.*

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

logging.operations.*

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

logging.privateLogEntries.list

logging.queries.*

  • logging.queries.deleteShared
  • logging.queries.getShared
  • logging.queries.listShared
  • logging.queries.share
  • logging.queries.updateShared
  • logging.queries.usePrivate

logging.settings.*

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

logging.sinks.*

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

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

logging.usage.get

logging.views.*

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

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.bucketWriter)

Ability to write logs to a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.write

(roles/logging.configWriter)

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:

  • Project

logging.buckets.create

logging.buckets.createTagBinding

logging.buckets.delete

logging.buckets.deleteTagBinding

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

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.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.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.logScopes.*

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

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.notificationRules.*

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

logging.operations.*

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

logging.settings.*

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

logging.sinks.*

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

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

logging.views.create

logging.views.delete

logging.views.get

logging.views.getIamPolicy

logging.views.list

logging.views.update

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.fieldAccessor)

Ability to read restricted fields in a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.fields.access

(roles/logging.linkViewer)

Ability to see links for a bucket.

logging.links.get

logging.links.list

(roles/logging.logWriter)

Provides the permissions to write log entries.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.create

logging.logEntries.route

(roles/logging.privateLogViewer)

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:

  • Project

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.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.operations.list

logging.privateLogEntries.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.access

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

(roles/logging.serviceAgent)

Grants a Cloud Logging Service Account the ability to create and link datasets.

bigquery.datasets.create

bigquery.datasets.get

bigquery.datasets.link

(roles/logging.sqlAlertWriter)

Ability to write SQL Alerts.

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

(roles/logging.viewAccessor)

Ability to read logs in a view.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.download

logging.views.access

logging.views.listLogs

logging.views.listResourceKeys

logging.views.listResourceValues

(roles/logging.viewer)

Provides access to view logs.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

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

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logScopes.get

logging.logScopes.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

Le sezioni seguenti forniscono ulteriori informazioni per aiutarti a decidere quali ruoli si applicano ai casi d'uso delle tue 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 le configurazioni di logging, assegna il ruolo Autore configurazione log (roles/logging.configWriter). Questo ruolo ti consente di creare o modificare uno dei seguenti elementi:

  • Per consentire a un utente di leggere i log nei bucket _Required e _Default o di utilizzare la pagina Esplora 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 in tutte le visualizzazioni log di un progetto, concedigli il ruolo IAM roles/logging.viewAccessor nel progetto.

  • Per consentire a un utente di leggere solo i log in una visualizzazione log specifica, hai due opzioni:

    • Crea un criterio IAM per la visualizzazione dei log, quindi aggiungi un'associazione IAM a questo criterio che conceda all'entità l'accesso alla visualizzazione dei log.

    • Concedi all'entità il ruolo IAM roles/logging.viewAccessor sul progetto che contiene la visualizzazione dei log, ma associa una condizione IAM per limitare la concessione alla visualizzazione dei log specifica.

    Per informazioni sulla creazione di visualizzazioni dei log e sulla concessione dell'accesso, consulta Configurare le visualizzazioni dei log in un bucket di log.

  • 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 al account di servizio di un sink di eseguire il routing dei log a un bucket in un progetto Trusted Cloud diverso, concedi al 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 Trusted Cloud by S3NS , concedi il ruolo Visualizzatore (roles/viewer).

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

  • Per concedere l'accesso di editor alla maggior parte dei Trusted Cloud by S3NS servizi, 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 ed eliminare i log. Tuttavia, questo ruolo non consente agli utenti di creare sink, leggere i log di controllo dell'accesso ai dati che si trovano nel bucket _Default o leggere i log che si trovano nei bucket di log definiti dall'utente.

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

Concessione dei ruoli in corso…

Per scoprire 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, consulta Recuperare i metadati del ruolo.

Se stai cercando di accedere a una risorsa Trusted Cloud e non disponi delle autorizzazioni necessarie, contatta il principal indicato come Proprietario della risorsa.

Ruoli personalizzati

Per creare un ruolo personalizzato con autorizzazioni Logging, procedi nel seguente modo:

Per ulteriori informazioni sui ruoli personalizzati, consulta la sezione Informazioni sui ruoli IAM personalizzati.

Autorizzazioni Cloud Logging

La seguente tabella è un elenco parziale delle autorizzazioni necessarie per funzionalità specifiche di Cloud Logging. Questa tabella può aiutarti a identificare le autorizzazioni necessarie per utilizzare pagine come Esplora log.

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

Attività della console Autorizzazioni obbligatorie
Accesso di sola lettura minimo logging.logEntries.list
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
resourcemanager.projects.get
Visualizzare gli audit log di accesso ai dati logging.privateLogEntries.list
Visualizza sink logging.sinks.{list, get}
Visualizzare l'utilizzo dei log logging.usage.get
Scarica i log logging.logEntries.{list, download}

Per scaricare i log è necessaria solo una di queste autorizzazioni. I ruoli contenenti le autorizzazioni per scaricare i log devono essere concessi a livello di progetto. Non puoi scaricare i log se un ruolo contenente queste autorizzazioni viene concesso nel file dei criteri IAM di una visualizzazione di log.

Elenca e visualizza gli ambiti dei log logging.logScopes.{get, list}
Visualizzare l'ambito dei log predefinito observability.scopes.get
Escludere i log logging.exclusions.{list, create, get, update, delete}

Quando crei un ruolo personalizzato che include le autorizzazioni per gestire i filtri di esclusione, aggiungi le autorizzazioni logging.sinks.* al ruolo anziché le autorizzazioni logging.exclusions.*.

Creare e utilizzare sink logging.sinks.{list, create, get, update, delete}

Quando crei un sink, devi anche concedere al account di servizio un ruolo IAM che gli consenta di scrivere voci di log nella destinazione. Per ulteriori informazioni, vedi Impostare le autorizzazioni della destinazione.

Una volta che le voci di log sono state indirizzate a una destinazione supportata, l'accesso alle voci di log è controllato interamente da ruoli e autorizzazioni IAM nella destinazione.

Salvare e utilizzare le query private logging.queries.usePrivate
logging.queries.{listShared,getShared}
Salvare e utilizzare le query condivise logging.queries.{share, getShared, updateShared, deleteShared, listShared}
Utilizzare le query recenti logging.queries.{create, list}
Creare e gestire gli ambiti dei log logging.logScopes.{create, delete, get, list, update}
Impostare e gestire l'ambito dei log predefinito observability.scopes.{get, update}

Autorizzazioni per la riga di comando

I comandi gcloud logging sono controllati dalle autorizzazioni IAM.

Per utilizzare uno dei comandi gcloud logging, i principal devono disporre dell'autorizzazione serviceusage.services.use.

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