Controle de acesso com o IAM

Este documento descreve como usar papéis e permissões do gerenciamento de identidade e acesso (IAM) para controlar o acesso aos dados de registros na API Logging, no Explorador de registros e na CLI do Google Cloud.

Visão geral

As permissões e os papéis do IAM determinam sua capacidade de acessar os dados de registros na API Logging, no Explorador de registros e na CLI do Google Cloud.

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 principal todas as permissões contidas no papel. É possível atribuir 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, um principal precisa ter um papel do IAM que contenha as permissões apropriadas.

Papéis predefinidos

O IAM oferece 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 predefinidos do Logging. Para de cada papel, a tabela exibe o título, a descrição, o título permissões 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, qualquer tipo superior hierarquia de recursos. Para restringir a função "Acesso à visualização de registros" a uma visualização de registros em um bucket, use os atributos de recursos para condições do IAM.

Para conferir 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:

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

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

Papéis do Logging

  • Para permitir que um usuário realize 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 registro, conceda o papel de Gravador de configuração de registros (roles/logging.configWriter). Esse papel permite criar ou modificar qualquer um dos seguintes itens:

    Esse papel não é suficiente para criar [métricas com base em registros][log-overview-lbm] ou [políticas de alertas com base em registros][log-overview-lba]. 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 registros nos buckets _Required e _Default ou use as páginas Explorador de registros e Análise de registros, conceda um dos seguintes papéis:

    • Para ter acesso a todos os registros no bucket _Required e à 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 registros de acesso a dados, conceda o papel de leitor de registros particulares (roles/logging.privateLogViewer).
  • Para permitir que um usuário leia registros em todas as visualizações de registros em um projeto, conceda a eles o papel de IAM de roles/logging.viewAccessor no projeto.

  • Para permitir que um usuário leia apenas registros 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 registro, mas anexe uma condição do IAM para restringir a concessão à visualização de registro específica.

    Para informações sobre como criar visualizações de registro e conceder acesso, consulte Configurar visualizações de registro em um bucket de registro.

  • Para conceder a um usuário acesso a campos restritos do LogEntry, se houver, faça o seguinte: em um determinado bucket de registros, conceda papel de Acessador de campo 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 a função 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 direcione os registros para um bucket projeto diferente do Google Cloud, conceda à conta de serviço papel de Gravador do 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 no nível do projeto

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

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

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

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

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

Concedendo papéis

Para saber como conceder um papel ao 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 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 uma API e os recursos do Cloud Logging. Esta tabela pode ajudar a identificar as permissões de que você precisa usar páginas como 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
Acessar registros de auditoria de acesso a dados logging.privateLogEntries.list
Exibir métricas com base em registros logging.logMetrics.[list, get]
Ver coletores logging.sinks.[list, get]
Mostrar uso de registros logging.usage.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, adicionar o logging.sinks.* as permissões ao papel em vez de adicionar 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 suas entradas de registro forem roteadas para um destino compatível, o acesso às entradas de registro será controlado totalmente pelas permissões e papéis do IAM no destino.

Criar alertas com base 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 saber mais sobre outros papéis do IAM que você precisa criar e usar métricas com base em registros, consulte Papéis necessários para criar e use 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]
Usar consultas recentes logging.queries.[create, list]

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 o serviceusage.services.use.

Um principal também precisa ter o papel do IAM que corresponde à recurso do log 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 Gravador de configuração de registros (roles/logging.configWriter) permite que os principais listem, criem, recebam atualizar e excluir métricas com base em registros.

  • O papel de 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 existentes.

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

  • O administrador do Logging (roles/logging.admin), Editor do projeto (roles/editor) Papéis de proprietário do projeto (roles/owner) que contêm as permissões para criar métricas com base em registros. Especificamente, uma o principal precisa da permissão logging.logMetrics.create para criar e métricas com base em registros.

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

Para criar e gerenciar políticas de alertas com base em registros, um principal precisa ter as seguintes funções e permissões de registro e monitoramento:

Se você criar uma política de alertas na Google Cloud CLI, os eventos um papel ou uma permissão também é necessário:

Caso seu projeto do Google Cloud já tenha canais de notificação, será possível configure sua política de alertas para usar um canal atual sem nenhum outros papéis ou permissões. No entanto, se você precisar criar um canal de notificação para política de alertas com base em registros, o papel ou permissão a seguir será obrigatório:

  • Para ter a permissão necessária para criar um canal de notificação para uma política de alertas com base em registros, peça ao administrador para conceder a você Papel do IAM Editor do canal de notificação do Monitoring (roles/monitoring.notificationChannelEditor) no projeto.

    Esse papel predefinido contém monitoring.notificationChannels.create permissão, que é necessário para criar um canal de notificação para uma política de alertas com base em registros;

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