Controle de acesso com o IAM

O Cloud Logging usa papéis e permissões do Identity and Access Management (IAM) para que você controle quem pode visualizar, gravar e gerenciar recursos do Logging. Os papéis do IAM determinam se você pode criar coletores ou buckets de registros, ler dados de registros armazenados em um bucket de registros ou acessar páginas como a Análise de registros. Quando você emite um comando da API Cloud Logging ou da Google Cloud CLI, seus papéis do IAM também determinam se você tem permissão para executar o comando.

Visão geral

Seus papéis do IAM determinam as ações que você pode realizar no Logging. Um papel é um conjunto de permissões. Quando você faz isso, concede ao principal todas as permissões contidas no papel. É possível atribuir vários papéis ao mesmo principal.

Os papéis do IAM são concedidos em um recurso, como um projeto, uma pasta, um bucket ou uma organização do Google Cloud . Por exemplo, é possível conceder a um principal o papel de Visualizador de registros (roles/logging.viewer) em um projeto específico do Google Cloud .

As seções Papéis predefinidos e Papéis do Logging desta página fornecem informações abrangentes sobre papéis e permissões do Logging. Outras seções desta página fornecem informações sobre papéis ou permissões para casos de uso específicos.

O restante desta seção resume como conceder a um principal acesso a buckets de registro ou a apenas algumas das entradas de registro em um bucket de registros. Ele também descreve como restringir o acesso a alguns campos do LogEntry.

Conceder acesso a buckets de registros

O papel de Leitor de Registros (roles/logging.viewer) permite que um principal acesse todos os dados de registro armazenados nos buckets de registro _Required e _Default, exceto os registros de acesso a dados. Se um principal precisar de acesso aos registros de acesso a dados, conceda o papel de Visualizador de registros particulares (roles/logging.privateLogViewer).

Para buckets de registros personalizados, é possível conceder acesso à visualização _AllLogs ou a uma visualização de registros personalizada. O Logging cria automaticamente a visualização _AllLogs, que inclui todas as entradas de registro no bucket de registros. Para conceder acesso a uma visualização de registro, adicione uma vinculação do IAM à política do IAM anexada à visualização de registro ou ao projeto. Para saber mais, consulte Controlar o acesso a uma visualização de registro.

O Logging também oferece suporte a tags em buckets de registro, o que pode ajudar você a entender seus custos. Também é possível usar tags para impedir que um usuário exclua um bucket de registros. Para saber mais, consulte Usar tags para gerenciar o acesso a buckets de registros.

Conceder acesso a algumas entradas de registro em um bucket de registros

Para conceder a um principal acesso a apenas algumas das entradas de registro armazenadas em um bucket de registros, crie uma visualização de registros e conceda ao principal acesso a ela. Por exemplo, é possível criar uma visualização de registro no bucket de registros _Default que inclua apenas entradas de registro com o tipo de recurso de uma instância do Compute Engine. Para saber mais sobre como criar visualizações de registros e as diferentes estratégias que podem ser usadas para conceder acesso à visualização, consulte Configurar visualizações de registros em um bucket de registros.

Restringir o acesso a campos específicos do LogEntry

Para restringir o acesso a campos específicos na estrutura de dados LogEntry, configure controles de acesso no nível do campo no bucket de registros que armazena seus dados. Por exemplo, para o bucket de registros _Default, é possível colocar uma restrição no jsonPayload da estrutura de dados LogEntry e, em seguida, conceder aos administradores acesso a esse campo. Para saber mais, consulte Configurar controles de acesso no nível do campo.

Não é possível restringir campos em um bucket de registros que foi atualizado para usar a Análise de Observabilidade. Da mesma forma, se um bucket de registros tiver um campo restrito, não será possível fazer upgrade dele para usar a Análise de Observabilidade.

Papéis predefinidos

O IAM fornece papéis predefinidos para conceder acesso granular a recursos específicos do Google Cloud e impedir o acesso indesejado a outros recursos. O Google Cloud cria e mantém esses papéis e atualiza automaticamente as permissões deles conforme necessário, como quando o Logging adiciona novos recursos.

A tabela a seguir lista os papéis predefinidos do Logging. Para cada papel, a tabela mostra o título, a descrição, as permissões contidas e o tipo de recurso de nível mais baixo em que os papéis podem ser concedidos. É possível conceder os papéis predefinidos no nível do projeto do Google Cloud ou, na maioria dos casos, em qualquer tipo superior na hierarquia de recursos. Para restringir o papel de acessador de visualização de registros a uma visualização de registros em um bucket, use atributos de recurso para condições do IAM.

Para ver uma lista de todas as permissões individuais contidas em um papel, consulte Como receber os metadados do papel.

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:

  • View

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.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:

  • View

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

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.notificationRules.get

logging.notificationRules.list

logging.operations.get

logging.operations.list

logging.privateLogEntries.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.settings.get

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.access

logging.views.get

logging.views.getIamPolicy

logging.views.list

observability.scopes.get

resourcemanager.projects.get

(roles/logging.viewer)

Provides access to view logs.

Lowest-level resources where you can grant this role:

  • View

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

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.notificationRules.get

logging.notificationRules.list

logging.operations.get

logging.operations.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.settings.get

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.getIamPolicy

logging.views.list

observability.scopes.get

resourcemanager.projects.get

(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:

  • View

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.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:

  • View

logging.logEntries.download

logging.views.access

logging.views.listLogs

logging.views.listResourceKeys

logging.views.listResourceValues

Service agent roles

Service agent roles should only be granted to service agents.

Role Permissions

(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

As seções a seguir fornecem mais informações para ajudar você a decidir quais papéis se aplicam aos casos de uso dos seus principais.

Papéis do Logging

  • Para permitir que um usuário execute todas as ações no Logging, conceda o papel de Administrador do Logging (roles/logging.admin).

  • Para permitir que um usuário crie e modifique configurações de geração de registros, conceda o papel de Gravador de Configuração de Registros (roles/logging.configWriter). Com esse papel, é possível criar ou modificar qualquer um dos seguintes itens:

    Esse papel não é suficiente para criar métricas com base em registros ou políticas de alertas com base em registros. Para informações sobre os papéis necessários para essas tarefas, consulte Permissões para métricas com base em registros e Permissões para políticas de alertas com base em registros.

  • Para permitir que um usuário leia os registros nos buckets _Required e _Default ou use as páginas Análise de registros e Análise de observabilidade, conceda um dos seguintes papéis:

    • Para acessar todos os registros no bucket _Required e a visualização _Default no bucket _Default, conceda o papel de Visualizador de registros (roles/logging.viewer).
    • Para acessar todos os registros nos buckets _Required e _Default, incluindo os de acesso a dados, conceda o papel de Visualizador de registros particulares (roles/logging.privateLogViewer).
  • Para permitir que um usuário leia registros em todas as visualizações de registro de um projeto, conceda a ele o papel do IAM de roles/logging.viewAccessor no projeto.

  • Para permitir que um usuário leia apenas logs em uma visualização específica, você tem duas opções:

    • Crie uma política do IAM para a visualização de registros e adicione uma vinculação do IAM a essa política que conceda ao principal acesso à visualização de registros.

    • Conceda ao principal o papel do IAM de roles/logging.viewAccessor no projeto que contém a visualização de registros, mas anexe uma condição do IAM para restringir a concessão à visualização de registros específica.

    Para saber como criar visualizações de registros e conceder acesso, consulte Configurar visualizações de registros em um bucket de registros.

  • Para conceder a um usuário acesso a campos restritos de LogEntry, se houver, em um determinado bucket de registros, conceda o papel de Acessador de campos de registros (roles/logging.fieldAccessor). Para mais informações, consulte Configurar o acesso no nível do campo.
  • Para permitir que um usuário grave registros usando a API Logging, conceda o papel de Gravador de registros (roles/logging.logWriter). Este papel não concede permissões de visualização.

  • Para permitir que a conta de serviço de um coletor encaminhe registros para um bucket em um projeto do Google Cloud diferente, conceda à conta de serviço o papel de Gravador de bucket de registros (roles/logging.bucketWriter). Para instruções sobre como conceder permissões a uma conta de serviço, consulte Definir permissões de destino.

Papéis para envolvidos no projeto

  • Para conceder acesso de visualização à maioria dos serviços do Google Cloud , conceda o papel de Leitor (roles/viewer).

    Esse papel inclui todas as permissões concedidas pelo papel de Visualizador de registros (roles/logging.viewer).

  • Para dar acesso de edição à maioria dos serviços do Google Cloud , conceda o papel de Editor (roles/editor).

    Esse papel inclui todas as permissões concedidas pelo papel de Visualizador de registros (roles/logging.viewer) e as permissões para gravar entradas de registro, excluir registros e criar métricas com base em registros. No entanto, esse papel não permite que os usuários criem coletores, leiam registros de auditoria de acesso a dados que estão no bucket _Default ou leiam registros que estão em buckets de registros definidos pelo usuário.

  • Para dar acesso total à maioria dos serviços do Google Cloud , conceda o papel de Proprietário (roles/owner).

Concedendo papéis

Para saber como conceder um papel a um principal, consulte Como conceder, alterar e revogar acesso.

É possível atribuir vários papéis ao mesmo usuário. Para ver uma lista das permissões contidas em um papel, consulte Como receber os metadados do papel.

Se você estiver tentando acessar um recurso do Google Cloud e não tiver as permissões necessárias, entre em contato com o principal listado como Proprietário do recurso.

Papéis personalizados

Para criar um papel personalizado com as permissões do Logging, siga estas etapas:

Para mais informações sobre papéis personalizados, consulte Noções básicas sobre papéis personalizados do IAM.

Permissões do Cloud Logging

A tabela a seguir é uma lista parcial das permissões necessárias para recursos específicos do Cloud Logging. Esta tabela pode ajudar você a identificar as permissões necessárias para usar páginas como a Análise de registros.

Na tabela, a.b.{x,y} significa a.b.x e a.b.y.

Atividade do console Permissões necessárias
Acesso mínimo somente de leitura logging.logEntries.list
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
resourcemanager.projects.get
Ver registros de auditoria de acesso a dados logging.privateLogEntries.list
Ver métricas com base em registros logging.logMetrics.{list, get}
Ver coletores logging.sinks.{list, get}
Ver o uso de registros logging.usage.get
Download de registros logging.logEntries.{list, download}

Apenas uma dessas permissões é necessária para fazer o download de registros. Os papéis que contêm as permissões para fazer o download de registros precisam ser concedidos para envolvidos no projeto. Não será possível fazer o download de registros se um papel que contém essas permissões for concedido no arquivo de política do IAM de uma visualização de registro.

Listar e visualizar escopos de registro logging.logScopes.{get, list}
Ver o escopo do registro padrão observability.scopes.get
Excluir registros logging.exclusions.{list, create, get, update, delete}

Ao criar um papel personalizado que inclua permissões para gerenciar filtros de exclusão, adicione as permissões logging.sinks.* ao papel em vez de adicionar as permissões logging.exclusions.*.

Criar e usar coletores logging.sinks.{list, create, get, update, delete}

Ao criar um coletor, você também precisa conceder à conta de serviço um papel do IAM que permita gravar entradas de registro no destino. Para mais informações, consulte Definir permissões de destino.

Depois que as entradas de registro forem roteadas para um destino compatível, o acesso a elas será controlado inteiramente por permissões e papéis do IAM no destino.

Criar alertas baseados em registros Consulte Papéis necessários para criar e usar políticas de alertas com base em registros.
Criar métricas com base em registros logging.logMetrics.{list, create, get, update, delete}

Para informações sobre outros papéis do IAM necessários para criar e usar métricas com base em registros, consulte Papéis necessários para criar e usar métricas com base em registros.

Salvar e usar consultas particulares logging.queries.usePrivate
logging.queries.{listShared,getShared}
Salvar e usar consultas compartilhadas logging.queries.{share, getShared, updateShared, deleteShared, listShared}
Criar e gerenciar escopos do registro logging.logScopes.{create, delete, get, list, update}
Definir e gerenciar o escopo do registro padrão observability.scopes.{get, update}
Criar e gerenciar visualizações de análise observability.analyticsViews.{create, delete, get, list, update}

Permissões para a linha de comando

Os comandos gcloud logging são controlados pelas permissões do IAM.

Para usar qualquer um dos comandos gcloud logging, os principais precisam ter a permissão serviceusage.services.use.

Um principal também precisa ter o papel do IAM que corresponde ao recurso do registro e ao caso de uso. Para mais detalhes, consulte permissões da interface de linha de comando.

Papéis necessários para criar e usar métricas com base em registros

Veja a seguir um resumo das permissões e dos papéis comuns necessários ao principal para acessar métricas com base em registros:

  • O papel de Gravador de configuração de registros (roles/logging.configWriter) permite que os principais listem, criem, acessem, atualizem e excluam métricas com base em registros.

  • O papel Visualizador de registros (roles/logging.viewer) contém permissões para visualizar as métricas atuais. Especificamente, um principal precisa das permissões logging.logMetrics.get e logging.logMetrics.list para visualizar as métricas atuais.

  • O papel Leitor do Monitoring (roles/monitoring.viewer) contém as permissões para ler dados de TimeSeries. Especificamente, um principal precisa da permissão monitoring.timeSeries.list para ler dados de série temporal.

  • Os papéis de Administrador do Logging (roles/logging.admin), Editor do projeto (roles/editor) e Proprietário do projeto (roles/owner) contêm as permissões para criar métricas com base em registros. Especificamente, um principal precisa da permissão logging.logMetrics.create para criar métricas com base em registros.

Papéis necessários para criar e usar políticas de alertas com base em registros

Nesta seção, descrevemos os papéis necessários para criar políticas de alertas com base em registros, canais de notificação e regras de notificação. Os canais de notificação especificam como o Cloud Monitoring notifica você. Uma regra de notificação descreve como corresponder as entradas de registro recebidas à política de alertas.

Funções exigidas

Para receber as permissões necessárias para criar políticas de alertas baseadas em registros, canais de notificação e as regras de notificação do Logging associadas, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para criar políticas de alertas com base em registros, canais de notificação e as regras de notificação do Logging associadas. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para criar políticas de alertas com base em registros, canais de notificação e as regras de notificação do Logging associadas:

  • monitoring.alertPolicies.create
  • monitoring.notificationChannels.create
  • logging.notificationRules.create

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Outros papéis necessários para usuários da Google Cloud CLI

Para receber a permissão necessária para criar uma política de alertas usando a Google Cloud CLI, peça ao administrador para conceder a você o papel do IAM de Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a permissão serviceusage.services.use, necessária para criar uma política de alertas usando a Google Cloud CLI.

Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.

Permissões para políticas de alertas baseadas em SQL

As políticas de alertas baseadas em SQL avaliam os resultados de uma consulta SQL executada em dados de grupos de entradas de registro. Para informações sobre os papéis necessários para criar e gerenciar políticas de alertas baseadas em SQL, consulte a seção Antes de começar em Monitorar os resultados da consulta SQL com uma política de alertas.

Escopos de acesso do Logging

Escopos de acesso são o método legado de especificar permissões para as contas de serviço nas instâncias da VM do Compute Engine.

Os seguintes escopos de acesso se aplicam à API Logging:

Escopo de acesso Permissões concedidas
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 Acesso total à API Logging.
https://www.googleapis.com/auth/cloud-platform Acesso total à API Logging e a todas as outras APIs do Google Cloud ativadas.

Para informações sobre como usar esse método legado para definir os níveis de acesso das suas contas de serviço, consulte Escopos de acesso.