Controle de acesso com o IAM

Neste documento, descrevemos como usar os papéis e permissões do Identity and Access Management (IAM) para controlar o acesso aos dados de registros na API Logging, na Análise de registros e na Google Cloud CLI.

Visão geral

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

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 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 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 exibe 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, qualquer tipo superior na hierarquia do Google Cloud. Para definir o escopo do papel Acessador de visualização de registros com mais precisão no nível do bucket, use os atributos de recurso para condições do IAM.

Para ver uma lista de todas as permissões individuais contidas em um papel, consulte Como conseguir 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.delete

logging.buckets.get

logging.buckets.list

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.create
  • logging.queries.delete
  • logging.queries.deleteShared
  • logging.queries.get
  • logging.queries.getShared
  • logging.queries.list
  • logging.queries.listShared
  • logging.queries.share
  • logging.queries.update
  • 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.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

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

logging.buckets.get

logging.buckets.list

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.views.create

logging.views.delete

logging.views.get

logging.views.getIamPolicy

logging.views.list

logging.views.update

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

logging.queries.delete

logging.queries.get

logging.queries.getShared

logging.queries.list

logging.queries.listShared

logging.queries.update

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.access

logging.views.get

logging.views.list

resourcemanager.projects.get

(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.create

logging.queries.delete

logging.queries.get

logging.queries.getShared

logging.queries.list

logging.queries.listShared

logging.queries.update

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

resourcemanager.projects.get

As seções a seguir oferecem 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 execute todas as ações no Logging, conceda o papel Administrador do Logging (roles/logging.admin).

  • Para permitir que um usuário crie e modifique configurações de geração de registros, como coletores, buckets, visualizações, links, métricas com base em registros ou exclusões, conceda o papel de Gravador de configuração de registros (roles/logging.configWriter).

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

    • Para acessar todos os registros no bucket _Required e acesso à visualização _Default no bucket _Default, conceda o papel Visualizador de registros (roles/logging.viewer).
    • Para acessar todos os registros nos buckets _Required e _Default, incluindo registros de acesso a dados, conceda o papel Visualizador de registros particulares (roles/logging.privateLogViewer).
  • Para permitir que um usuário leia registros usando uma visualização de registro em um bucket de registros, conceda o papel Acessador de visualização de registros (roles/logging.viewAccessor). É possível restringir a autorização a uma visualização de registro específica em um bucket de registros específico. Para informações sobre 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 LogEntry restritos, se houver, em um determinado bucket, conceda o papel 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 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 direcione os registros para um bucket em um projeto diferente do Google Cloud, 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 no nível do projeto

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

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

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

    Esse papel inclui todas as permissões concedidas pelo papel 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 estejam no bucket _Default ou leiam registros que estão em buckets de registros definidos pelo usuário.

  • Para conceder 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 ver mais informações sobre papéis personalizados, consulte Noções básicas sobre os papéis personalizados do IAM.

Permissões do console do Google 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 Inserir logging.privateLogEntries.list
Adicionar permissão para ver 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 permissão para criar métricas com base em registros Adicionar logging.logMetrics.{list, create, get, update, delete}
Adicionar a capacidade de usar consultas salvas particulares Adicionar logging.queries.{list, create, get, update, delete}
Adicionar a capacidade de usar consultas salvas compartilhadas Adicionar logging.queries.{share, getShared, updateShared, deleteShared, listShared}
Adicionar a capacidade de usar consultas recentes Adicionar 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 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 as permissões da interface de linha de comando.

A lista a seguir descreve os papéis predefinidos e as permissões correspondentes para gerenciar os conjuntos de dados vinculados do BigQuery:

Os papéis e permissões listados anteriormente só se aplicam às páginas de observabilidade do Google Cloud, como a página Análise de dados de registros. Se você usa a interface do BigQuery para gerenciar os conjuntos de dados, talvez precise de permissões e papéis separados do BigQuery. Para mais informações, consulte Controle de acesso com o IAM para o BigQuery.

Permissões para salvar consultas

Nesta seção, descrevemos os papéis predefinidos e as permissões para salvar, compartilhar e usar consultas nas páginas Análise de registros ou Análise de registros. O uso de consultas salvas particulares que são visíveis apenas para você e o uso de consultas salvas compartilhadas com outros membros do projeto do Google Cloud exigem permissões diferentes:

  • Para receber as permissões necessárias para usar consultas salvas particulares, peça ao administrador para conceder a você o papel do IAM de Visualizador de registros (roles/logging.viewer) no projeto.

    Esse papel predefinido contém as permissões necessárias para usar as consultas salvas particulares. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

    Permissões necessárias

    As seguintes permissões são necessárias para usar as consultas salvas particulares:

    • logging.queries.list
    • logging.queries.create
    • logging.queries.get
    • logging.queries.update
    • logging.queries.delete
  • Para ter as permissões necessárias para criar, atualizar e excluir consultas compartilhadas, peça ao administrador para conceder a você o papel do IAM Administrador do Logging (roles/logging.admin) no projeto.

    Esse papel predefinido contém as permissões necessárias para criar, atualizar e excluir consultas compartilhadas. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

    Permissões necessárias

    As seguintes permissões são necessárias para criar, atualizar e excluir consultas compartilhadas:

    • logging.queries.share
    • logging.queries.updateShared
    • logging.queries.deleteShared
  • Para receber as permissões necessárias para listar e receber consultas compartilhadas, peça ao administrador para conceder a você o papel do IAM Visualizador de registros (roles/logging.viewer) no projeto.

    Esse papel predefinido contém as permissões necessárias para listar e receber consultas compartilhadas. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

    Permissões necessárias

    As seguintes permissões são necessárias para listar e receber consultas compartilhadas:

    • logging.queries.listShared
    • logging.queries.getShared

Permissões para registros de roteamento

Para informações sobre como definir controles de acesso ao criar e gerenciar coletores para rotear registros, consulte 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 para 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 Gravador de configuração de registros (roles/logging.configWriter) permite que os principais listem, criem, recebam, 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 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, uma principal precisa da permissão logging.logMetrics.create para criar métricas com base em registros.

Permissões para políticas de alertas com base em registros

Para criar e gerenciar políticas de alertas com base em registros, um principal precisa dos seguintes papéis e permissões do Logging e do Monitoring:

  • Para ter as permissões necessárias para ler registros e gerenciar regras de notificação do Logging, peça ao administrador para conceder a você o papel do IAM Administrador do Logging (roles/logging.admin) no projeto.

    Esse papel predefinido contém as permissões necessárias para ler registros e gerenciar regras de notificação do Logging. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

    Permissões necessárias

    As seguintes permissões são necessárias para ler registros e gerenciar regras de notificação do Logging:

    • logging.queries.listShared
    • logging.queries.getShared
  • Para receber as permissões necessárias para gerenciar políticas de alertas com base em registros e os canais de notificação delas, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

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

    Permissões necessárias

    As seguintes permissões são necessárias para gerenciar políticas de alertas com base em registros e os respectivos canais de notificação:

    • logging.queries.listShared
    • logging.queries.getShared
  • Para receber as permissões necessárias para criar uma política de alertas na Google Cloud CLI, peça ao administrador para conceder a você o papel do IAM Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer) no seu projeto.

    Esse papel predefinido contém as permissões necessárias para criar uma política de alertas na Google Cloud CLI. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

    Permissões necessárias

    As seguintes permissões são necessárias para criar uma política de alertas na Google Cloud CLI:

    • logging.queries.listShared
    • logging.queries.getShared

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.