Guia de controle de acesso

Esta página descreve como o Cloud Logging usa o Cloud Identity and Access Management para controlar o acesso aos dados de geração de registros nos recursos do Google Cloud.

Visão geral

As permissões e papéis do Cloud IAM determinam como é possível usar a API Logging, o Visualizador de registros do Console do Google Cloud e a ferramenta de linha de comando gcloud.

Os registros residem em buckets de registro em projetos, organizações, pastas e contas de faturamento do Google Cloud. Cada um desses recursos do Google Cloud pode ter o próprio conjunto de membros, com conjuntos próprios de papéis e permissões do Cloud Logging.

Para usar o Logging com os dados de registro em um projeto do Google Cloud, é necessário ser membro e ter um papel do Cloud IAM que conceda permissão para usar o Logging. Os seguintes papéis do Cloud IAM se aplicam ao Logging:

  • roles/logging.viewer (Visualizador de registros) fornece acesso somente leitura a todos os recursos do Logging, exceto os registros de transparência no acesso e de auditoria de acesso a dados.

  • roles/logging.privateLogViewer (Visualizador de registros particulares) inclui roles/log.viewer, além da capacidade de ler registros de transparência no acesso e de auditoria de acesso a dados.

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

  • roles/logging.configWriter (Gravador de configuração de registros) concede permissões para criar exclusões e métricas com base em registros e para exportar coletores. Para usar o Visualizador 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/viewer (Visualizador do projeto) é o mesmo que roles/logging.viewer. O papel oferece acesso somente leitura a todos os recursos do Logging, exceto registros de transparência no acesso e de auditoria de acesso a dados.

  • roles/editor (Editor do projeto) inclui as permissões de roles/logging.viewer e permissões para gravar entradas de registro, excluir registros e criar métricas com base em registros. O papel não permite que você crie coletores de exportação ou leia os registros de transparência no acesso ou de auditoria de acesso a dados.

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

Para mais detalhes sobre os papéis e permissões do Logging, consulte Permissões e papéis, nesta página.

Atribuição de papéis

Para conceder um papel a um membro, é necessário ter o conjunto de permissões encontrado em roles/owner (Proprietário do projeto). Para mais informações sobre como conceder papéis, consulte Como conceder, alterar e revogar acesso a recursos.

Caso esteja tentando acessar um recurso do Google Cloud sem ter as permissões necessárias, entre em contato com o membro listado como o Proprietário do recurso.

Permissões e papéis

A tabela a seguir lista os papéis do Cloud IAM que concedem acesso ao Cloud Logging. Cada papel tem um conjunto específico de permissões de registro. Os papéis podem ser atribuídos aos membros dos tipos de recursos listados.

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

Nome do papel Título do papel Permissões de registro Tipo de recurso
roles/
logging.viewer
Visualizador de registros logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
logging.buckets.{list, get}
logging.usage.get
resourcemanager.projects.get
projeto, organização,
pasta, conta de faturamento
roles/
logging.privateLogViewer
Leitor de registros particulares roles/logging.viewer permissões, mais:
logging.privateLogEntries.list
projeto, organização,
pasta, conta de faturamento
roles/
logging.logWriter
Gravador de registros logging.logEntries.create projeto, organização,
pasta, conta de faturamento
roles/
logging.configWriter
Gravador de configuração de registros logging.buckets.{list, create, get, update, delete}
logging.exclusions.{list, create, get, update, delete}
logging.logMetrics.{list, create, get, update, delete}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, create, get, update, delete}
resourcemanager.projects.{get, list}
projeto, organização,
pasta, conta de faturamento
roles/
logging.admin
Administrador do Logging logging.exclusions.{list, create, get, update, delete}
logging.logEntries.{create, list}
logging.logMetrics.{list, create, get, update, delete}
logging.logs.{delete,list}
logging.logServiceIndexes.list
logging.logServices.list
logging.privateLogEntries.list
logging.sinks.{list, create, get, update, delete}
logging.buckets.{list, get, update}
resourcemanager.projects.get
logging.usage.get
projeto, organização,
pasta, conta de faturamento
roles/viewer Visualizador logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
resourcemanager.projects.get
projeto
roles/editor Editor roles/viewerPermissões do Logging, mais:
logging.logEntries.create
logging.logMetrics.{create, update, delete}
logging.logs.delete
projeto
roles/owner Proprietário roles/editorPermissões do Logging, mais:
logging.privateLogEntries.list
logging.sinks.{create, update, delete}`
projeto

Papéis personalizados

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

  • Para um papel que conceda permissões para a API Logging, escolha entre as permissões em Permissões da API.

  • Para um papel que conceda permissões para usar o Visualizador de registros, escolha entre os grupos de permissões em Permissões do Console.

  • Para um papel que conceda permissões para usar o gcloud logging, acesse a visão geral da ferramenta gcloud.

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

Permissões da API

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

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.buckets.*.) contas de faturamento
entries.list 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.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.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.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 projetos

Permissões do console

A tabela a seguir lista as permissões necessárias para usar o Visualizador 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 Adicionar logging.privateLogEntries.list
Adicionar capacidade de visualizar registros de transparência no acesso Adicionar logging.privateLogEntries.list
Adicionar permissão para ver métricas com base em registros Adicionar logging.logMetrics.{list, get}
Adicionar permissão para ver exportações 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 permissão para exportar registros Adicionar logging.sinks.{list, create, get, update, delete}
Adicionar permissão para criar métricas com base em registros Adicionar logging.logMetrics.{list, create, get, update, delete}

Permissões de linha de comando

Os comandos gcloud logging são controlados pelas permissões do Cloud Identity and Access Management.

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 Cloud IAM que corresponde ao local do registro e ao seu caso de uso. Para mais detalhes, acesse permissões da interface da linha de comando.

Acesso a registros exportados

Para criar um coletor para exportar registros, você precisa ter as permissões de roles/logging.configWriter, roles/logging.admin ou roles/owner.

Uma vez que um coletor começa a exportar registros, ele tem acesso total a todas as entradas de registro de entrada. Os coletores podem exportar entradas de registro particulares, incluindo registros de transparência no acesso e de auditoria de acesso a dados.

Depois que as entradas de registro forem exportadas, o acesso às cópias exportadas será totalmente controlado pelas permissões e papéis do Cloud IAM em qualquer um dos destinos: Cloud Storage, BigQuery ou Pub/Sub.

Escopos de acesso do Logging

Os escopos de acesso são o método legado de especificar permissões para as 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 role/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.

Práticas recomendadas

Agora que os papéis do Cloud IAM estão disponíveis, é recomendável conceder a todas as instâncias da VM o escopo "Acesso total a todas as APIs do Google Cloud ativadas":

https://www.googleapis.com/auth/cloud-platform
    

É possível conceder papéis específicos do Cloud IAM na conta do serviço da instância de VM para restringir o acesso a APIs específicas. Para mais detalhes, consulte Permissões da conta de serviço.