Neste documento, descrevemos como usar papéis e permissões do gerenciamento de identidade e acesso (IAM) para controlar o acesso a dados de registros na API Logging, no Explorador de registros e na Google Cloud CLI.
Informações gerais
As permissões e os papéis do IAM determinam sua capacidade de acessar dados de registros na API Logging, no Explorador 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 para envolvidos no projeto do Google Cloud ou, na maioria dos casos, em qualquer tipo acima da hierarquia do Google Cloud. Para definir os papéis de gravador de buckets de registros ou de acesso de visualização de registros com mais precisão para o nível do bucket, use atributos de recurso para condições do IAM.
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( 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:
|
logging.buckets.copyLogEntries logging.buckets.create logging.buckets.delete logging.buckets.get logging.buckets.list logging.buckets.undelete logging.buckets.update logging.exclusions.*
logging.fields.access logging.links.*
logging.locations.*
logging.logEntries.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.*
logging.notificationRules.*
logging.operations.*
logging.privateLogEntries.list logging.queries.*
logging.settings.*
logging.sinks.*
logging.usage.get logging.views.*
resourcemanager.projects.get resourcemanager.projects.list |
Gravador de bucket de registros( Capacidade de gravar registros em um bucket. Recursos de nível mais baixo em que você pode conceder esse papel:
|
logging.buckets.write |
Gravador de configuração de registros( 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:
|
logging.buckets.create logging.buckets.delete logging.buckets.get logging.buckets.list logging.buckets.undelete logging.buckets.update logging.exclusions.*
logging.links.*
logging.locations.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.notificationRules.*
logging.operations.*
logging.settings.*
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( Capacidade de ler campos restritos em um bucket de registros. Recursos de nível mais baixo em que você pode conceder esse papel:
|
logging.fields.access |
Acessador de links do registro( Capacidade de ver links de um bucket. |
logging.links.get logging.links.list |
Gravador de registros( Concede permissões para gravar entradas de registro. Recursos de nível mais baixo em que você pode conceder esse papel:
|
logging.logEntries.create logging.logEntries.route |
Visualizador de registros particulares( 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:
|
logging.buckets.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.links.get logging.links.list logging.locations.*
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.list logging.queries.listShared logging.queries.update logging.sinks.get logging.sinks.list logging.usage.get logging.views.access logging.views.get logging.views.list resourcemanager.projects.get |
Acessador de exibição de registros( Capacidade de ler registros em uma visualização. Recursos de nível mais baixo em que você pode conceder esse papel:
|
logging.logEntries.download logging.views.access logging.views.listLogs logging.views.listResourceKeys logging. |
Visualizador de registros( Dá acesso para visualizar registros. Recursos de nível mais baixo em que você pode conceder esse papel:
|
logging.buckets.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.links.get logging.links.list logging.locations.*
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.list logging.queries.listShared logging.queries.update logging.sinks.get logging.sinks.list logging.usage.get logging.views.get logging.views.list 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 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 Gravador de configuração de registros (
roles/logging.configWriter
).Para permitir que um usuário leia registros nos buckets
_Required
e_Default
, use o Explorador de registros e a página 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 Visualizador de registros (roles/logging.viewer
). - Para ter acesso a 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 ter acesso a todos os registros no bucket
Para permitir que um usuário leia registros armazenados em um bucket definido pelo usuário, conceda o papel Acesso 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 específico usando uma condição do IAM. Consulte Como ler registros de um bucket para ver um exemplo.Para conceder a um usuário acesso a campos
LogEntry
restritos, se houver, em um determinado bucket, conceda o papel Acesso 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 faça o roteamento para um bucket em outro projeto do Google Cloud, conceda à conta de serviço o papel de gravador de buckets 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 visualização à maioria dos serviços do Google Cloud, conceda o papel 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 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 ou leiam os registros de auditoria de acesso a dados que estão no bucket_Default
.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 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ê 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 o Proprietário do recurso.
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 as permissões de permissões da API e siga as instruções para criar um papel personalizado.
Para um papel que conceda permissões para usar o Explorador de registros, escolha entre os grupos de permissões em Permissões do console e siga as instruções para criar um papel personalizado.
Para um papel que concede permissões para usar
gcloud logging
, consulte a seção Permissões de linha de comando nesta página e siga as instruções para criar um personalizado papel.
Para ver mais informações sobre papéis personalizados, consulte Noções básicas sobre os papéis personalizados do IAM.
Permissões para a API Logging
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ê estiver interessado em registros mantidos em organizações, contas de faturamento e pastas do Google Cloud, observe que esses recursos têm seus 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 para o 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 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 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 participantes 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.
Permissões para conjuntos de dados do BigQuery vinculados
A lista a seguir descreve os papéis predefinidos e as permissões correspondentes para gerenciar os conjuntos de dados do BigQuery vinculados:
Os papéis Administrador do Logging (
roles/logging.admin
) e Gravador de configuração de registros (roles/logging.configWriter
) contêm as seguintes permissões:logging.links.list
logging.links.create
logging.links.get
logging.links.delete
Os papéis Access Link Accesser (
roles/logging.linkViewer
), Private Logs Viewer (roles/logging.privateLogViewer
) e Logs Viewer (roles/logging.viewer
) contêm as seguintes permissões:logging.links.list
logging.links.get
Os papéis e permissões listados anteriormente se aplicam somente às páginas do Logging, como a página "Análise de registros". Se você usa a interface do BigQuery para gerenciar seus conjuntos de dados, talvez precise de papéis e permissões separados do BigQuery. Consulte Controle de acesso com o IAM para o BigQuery para mais informações.
Permissões para registros de roteamento
Para informações sobre como configurar 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 participantes 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 existentes. Especificamente, um principal precisa das permissõeslogging.logMetrics.get
elogging.logMetrics.list
para visualizar métricas existentes.O papel Leitor do Monitoring (
roles/monitoring.viewer
) contém as permissões para ler dados do TimeSeries. Especificamente, um principal precisa da permissãomonitoring.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, um principal precisa da permissãologging.logMetrics.create
para criar métricas com base em registros.
Permissões para alertas baseados em registros
Veja a seguir um resumo das funções e permissões comuns que o principal precisa para criar e gerenciar alertas com base em registros:
O Administrador do Logging (
roles/logging.admin
) contém as permissões para criar e gerenciar alertas com base em registros.Especificamente, um principal precisa das seguintes permissões para ler registros e gerenciar regras de notificação do Logging:
logging.logs.list
logging.logEntries.list
logging.notificationRules.create
logging.notificationRules.update
Se você não quiser conceder esse papel, faça o seguinte:
- Conceda os papéis Gravador de configuração de registros (
roles/logging.configWriter
) e Visualizador de registros (roles/logging.viewer
). - Crie um papel personalizado e inclua essas permissões. Para mais informações, consulte Como criar e gerenciar papéis personalizados.
Os papéis Editor de AlertPolicy do Monitoring (
roles/monitoring.alertPolicyEditor
) e Editor do NotificationChannel (roles/monitoring.notificationChannelEditor
) incluem as permissões necessárias para gerenciar as políticas e os canais de notificação usados pelos alertas baseados em registros:monitoring.alertPolicies.{create, delete, get, list, update}
monitoring.notificationChannelDescriptors.{get, list}
monitoring.notificationChannels.{create, delete, get, list, sendVerificationCode, update, verify}
As permissões necessárias também estão incluídas nos papéis Editor do Monitoring (
roles/monitoring.editor
) e Administrador do Monitoring (roles/monitoring.admin
).Se você não quiser conceder nenhum desses papéis, crie um papel personalizado e inclua as permissões nos editores do AlertPolicy do Monitoring (
roles/monitoring.alertPolicyEditor
) e do Editor do canal de notificação (roles/monitoring.notificationChannelEditor
).- Para informações sobre papéis personalizados, consulte Como criar e gerenciar papéis personalizados.
- Para mais informações sobre papéis e permissões do Monitoring, consulte Controle de acesso com o IAM.
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.