Guia de controle de acesso

Esta página descreve como usar papéis e permissões do gerenciamento de identidade e acesso (IAM) para controlar o acesso aos dados do Cloud Logging nos recursos do Google Cloud.

Visão geral

As permissões e os papéis do IAM determinam sua capacidade de acessar os dados dos registros na API Logging, o Explorador de registros e a ferramenta de linha de comandogcloud.

Um papel é um conjunto de permissões. Não é possível conceder uma permissão principal diretamente. em vez disso, você concede a eles um papel. Quando você faz isso, concede ao usuário todas as permissões contidas no papel. É possível conceder vários papéis ao mesmo principal.

Para usar o Logging em um recurso do Google Cloud, como um projeto, uma pasta, um bucket ou uma organização do Google Cloud, é preciso ter um papel do IAM que contenha as permissões apropriadas.

Papéis predefinidos

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

A tabela a seguir lista os papéis do Logging, os títulos dos papéis, as descrições deles, as permissões contidas e o tipo de recurso de menor nível em que os papéis são configurados. Um papel específico pode ser concedido nesse tipo de recurso ou, na maioria dos casos, em qualquer tipo acima dele na hierarquia do Google Cloud.

Para ver uma lista de cada permissão individual contida em um papel, consulte Como obter os metadados do papel.

Papel Permissões

Administrador do Logging
(roles/logging.admin)

Concede as permissões necessárias para usar todos os recursos do Cloud Logging.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • logging.buckets.copyLogEntries
  • logging.buckets.create
  • logging.buckets.delete
  • logging.buckets.get
  • logging.buckets.list
  • logging.buckets.undelete
  • logging.buckets.update
  • logging.cmekSettings.*
  • logging.exclusions.*
  • logging.fields.*
  • logging.locations.*
  • logging.logEntries.*
  • logging.logMetrics.*
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.*
  • logging.notificationRules.*
  • logging.operations.*
  • logging.privateLogEntries.*
  • logging.queries.*
  • logging.sinks.*
  • logging.usage.*
  • logging.views.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Gravador de bucket de registros
(roles/logging.bucketWriter)

Capacidade de gravar registros em um bucket.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Bucket
  • logging.buckets.write

Gravador de configuração de registros
(roles/logging.configWriter)

Concede permissões para ler e gravar as configurações de métricas com base em registros e de coletores para exportação de registros.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • logging.buckets.create
  • logging.buckets.delete
  • logging.buckets.get
  • logging.buckets.list
  • logging.buckets.undelete
  • logging.buckets.update
  • logging.cmekSettings.*
  • logging.exclusions.*
  • logging.locations.*
  • logging.logMetrics.*
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.operations.*
  • logging.sinks.*
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.list
  • logging.views.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Acessador de campo de registro
(roles/logging.fieldAccessor)

Capacidade de ler campos restritos em um bucket de registros.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Bucket
  • logging.fields.*

Gravador de registros
(roles/logging.logWriter)

Concede permissões para gravar entradas de registro.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • logging.logEntries.create

Visualizador de registros particulares
(roles/logging.privateLogViewer)

Concede permissões do papel visualizador de registros e dá acesso somente leitura a entradas em registros particulares.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • logging.buckets.get
  • logging.buckets.list
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.locations.*
  • logging.logEntries.list
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.privateLogEntries.*
  • 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.*
  • logging.views.access
  • logging.views.get
  • logging.views.list
  • resourcemanager.projects.get

Acessador de exibição de registros
(roles/logging.viewAccessor)

Capacidade de ler registros em uma visualização.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • logging.logEntries.download
  • logging.views.access
  • logging.views.listLogs
  • logging.views.listResourceKeys
  • logging.views.listResourceValues

Visualizador de registros
(roles/logging.viewer)

Dá acesso para visualizar registros.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • logging.buckets.get
  • logging.buckets.list
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.locations.*
  • logging.logEntries.list
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • 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.*
  • logging.views.get
  • logging.views.list
  • resourcemanager.projects.get

Outras considerações

Ao decidir quais permissões e papéis se aplicam aos casos de uso dos seus principais, considere o seguinte:

  • O roles/logging.viewer (Visualizador de registros) oferece acesso somente leitura a todos os recursos do Logging, exceto registros de transparência no acesso e registros de auditoria de acesso a dados que estão nos buckets _Required e _Default de dados.

  • O roles/logging.privateLogViewer (Visualizador de registros particular) inclui roles/logging.viewer, além da capacidade de ler registros de transparência no acesso e de auditoria de acesso a dados nos buckets _Required e _Default.

    Observe que, se esses registros privados forem armazenados em intervalos definidos pelo usuário, qualquer usuário que tenha permissões para ler registros nesses intervalos poderá ler os registros privados. Para mais informações sobre intervalos de registro, consulte Visão geral de roteamento e armazenamento.

  • roles/logging.logWriter (Gravador de registros) pode ser concedido a contas de serviço para dar aos aplicativos apenas permissões suficientes para gravar registros. Este papel não concede permissões de visualização.

  • roles/logging.bucketWriter (Gravador de buckets de registros) pode ser concedido a contas de serviço para dar ao Cloud Logging apenas permissões suficientes para gravar registros em um bucket de registro. Para restringir esse papel a um bucket específico, use uma condição do IAM. Consulte o artigo sobre como rotear registros de um projeto para outro bucket em um projeto diferente para ver um exemplo.

  • O roles/logging.configWriter (Gravador de configuração de registros) concede as permissões para você criar métricas, exclusões, buckets e visualizações com base em registros e usar coletores. Para usar o Explorador de registros (console) para essas ações, adicione roles/logging.viewer.

  • roles/logging.admin (administrador do Logging) concede a você todas as permissões relacionadas ao Logging.

  • roles/logging.viewAccessorO {0}Visualizador de visualizações de registros{/1} oferece permissões para fazer o download de registros e ler registros, chaves de recursos e valores em umavisualização do registro de dados. Para restringir esse papel a uma visualização em um bucket específico, use uma condição do IAM: Consulte Como ler registros de um bucket para ver um exemplo.

  • O roles/logging.fieldAccessor (Acesso ao campo de registros) concede permissões para ler registros, chaves de recursos e valores de um subconjunto de campos LogEntry em um determinado bucket de registro. Consulte detalhes sobre Controle de acesso no nível do campo.

  • roles/viewer (visualizador do projeto) é igual a roles/logging.viewer. O papel concede acesso somente leitura a todos os recursos do Logging, exceto registros de transparência no acesso e acesso a dados que estejam nos buckets _Required e _Default.

  • roles/editor (Editor do projeto) inclui as permissões de roles/logging.viewer, além de permissões para gravar entradas de registro, excluir registros e criar métricas com base em registros. O papel não permite criar coletores ou ler registros de transparência no acesso ou auditorias de acesso a dados que estejam nos buckets _Required e _Default.

  • roles/owner (Proprietário do projeto) oferece acesso total ao Logging, incluindo leitura de registros de transparência no acesso e de auditoria de acesso a dados.

Concedendo papéis

Para saber como conceder um papel a um principal, consulte Como conceder, alterar e revogar o 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ê está tentando acessar um recurso do Google Cloud e não tem 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 ver mais informações sobre papéis personalizados, consulte Noções básicas sobre os papéis personalizados do IAM.

Permissões da API

Os métodos da API Logging exigem permissões específicas do IAM. A tabela a seguir lista as permissões exigidas pelos métodos da API.

Se você tiver interesse em registros mantidos em organizações, contas e pastas de faturamento do Google Cloud, lembre-se de que esses recursos têm os próprios métodos de API para logs e sinks. Em vez de repetir todos os métodos na tabela, apenas os métodos projects são mostrados individualmente.

Método de geração de registro Permissão necessária Tipo de recurso
billingAccounts.logs.* logging.logs.* (Consulte projects.logs.*) contas de faturamento
billingAccounts.sinks.* logging.sinks.* (Consulte projects.sinks.*.) contas de faturamento
billingAccounts.locations.buckets.* logging.buckets.* (Consulte projects.locations.buckets.*.) contas de faturamento
entries.list logging.logEntries.list ou
logging.privateLogEntries.list
projetos, organizações,
pastas, contas de faturamento
entries.tail logging.logEntries.list ou
logging.privateLogEntries.list
projetos, organizações,
pastas, contas de faturamento
entries.write logging.logEntries.create projetos, organizações,
pastas, contas de faturamento
folders.logs.* logging.logs.* (Consulte projects.logs.*) pastas
folders.sinks.* logging.sinks.* (Consulte projects.sinks.*) pastas
folders.locations.buckets.* logging.buckets.* (Consulte projects.locations.buckets.*) pastas
monitoredResourceDescriptors.list (nenhum) (nenhum)
organizations.logs.* logging.logs.* (Consulte projects.logs.*) organizações
organizations.sinks.* logging.sinks.* (Consulte projects.sinks.*) organizações
organizations.locations.buckets.* logging.buckets.* (Consulte projects.locations.buckets.*) organizações
projects.exclusions.create logging.exclusions.create projetos
projects.exclusions.delete logging.exclusions.delete projetos
projects.exclusions.get logging.exclusions.get projetos
projects.exclusions.list logging.exclusions.list projetos
projects.exclusions.patch logging.exclusions.update projetos
projects.logs.list logging.logs.list projetos
projects.logs.delete logging.logs.delete projetos
projects.sinks.list logging.sinks.list projetos
projects.sinks.get logging.sinks.get projetos
projects.sinks.create logging.sinks.create projetos
projects.sinks.update logging.sinks.update projetos
projects.sinks.delete logging.sinks.delete projetos
projects.locations.buckets.list logging.buckets.list projetos
projects.locations.buckets.get logging.buckets.get projetos
projects.locations.buckets.patch logging.buckets.update projetos
projects.locations.buckets.create logging.buckets.create projetos
projects.locations.buckets.delete logging.buckets.delete projetos
projects.locations.buckets.undelete logging.buckets.undelete projetos
projects.metrics.list logging.logMetrics.list projetos
projects.metrics.get logging.logMetrics.get projetos
projects.metrics.create logging.logMetrics.create projetos
projects.metrics.update logging.logMetrics.update projetos
projects.metrics.delete logging.logMetrics.delete projects

Permissões do Console do Cloud

A tabela a seguir lista as permissões necessárias para usar o Explorador 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
Adicionar capacidade de visualizar registros de auditoria de acesso a dados Insira logging.privateLogEntries.list
Adicionar capacidade de visualizar registros de transparência no acesso Inserir logging.privateLogEntries.list
Adicionar a capacidade de visualizar métricas com base em registros Adicionar logging.logMetrics.{list, get}
Adicionar permissão para exibir coletores Adicionar logging.sinks.{list, get}
Adicionar permissão para ver o uso de registros Adicionar logging.usage.get
Adicionar permissão para excluir registros Adicionar logging.exclusions.{list, create, get, update, delete}
Adicionar capacidade de usar coletores Adicionar logging.sinks.{list, create, get, update, delete}
Adicionar a capacidade de criar métricas com base em registros Adicionar logging.logMetrics.{list, create, get, update, delete}
Adicionar a capacidade de salvar consultas Adicionar logging.queries.{list, create, get, update, delete}
Adicionar capacidade de compartilhar consultas Inserir logging.queries.share
Adicionar a capacidade de usar consultas recentes Adicionar logging.queries.{create, list}

Permissões de linha de comando

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

Para usar qualquer um dos comandos gcloud logging, você precisa ter a permissão serviceusage.services.use.

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

Permissões de roteamento de registros

Para informações sobre como definir controles de acesso ao criar e gerenciar coletores para rotear registros, consulte Configurar coletores: definir permissões de destino.

O gerenciamento de filtros de exclusão é integrado à configuração de coletores. Todas as permissões relacionadas ao gerenciamento de coletores, incluindo a configuração de filtros de exclusão, estão incluídas nas permissões logging.sinks.*. 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.*.

Depois que suas entradas de registro forem roteadas para um destino compatível, o acesso às cópias de registro será controlado totalmente pelas permissões e papéis do IAM nos destinos: Cloud Storage, BigQuery ou Pub/Sub.

Permissões de métricas com base em registros

Veja a seguir um resumo das permissões e dos papéis comuns que um membro do projeto do Cloud precisa para acessar métricas com base em registros:

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 Permissões da conta de serviço.