Esta página descreve como o Cloud Logging usa o gerenciamento de identidade e acesso (IAM) 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 IAM determinam como usar a
API Logging, o
Explorador de registros e a
ferramenta de linha de comando gcloud
.
Os registros residem em intervalos 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 IAM que conceda permissão para usar o Logging. Os papéis do IAM a seguir 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. Esse papel se aplica apenas aos buckets
_Required
e_Default
.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 para visualização.
roles/logging.bucketWriter (Gravador de buckets de registros) pode ser concedido a contas de serviço para dar ao Cloud Logging apenas as permissões necessárias para gravar registros em um bucket de registros. 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.
roles/logging.configWriter (Gravador de configuração de registros) concede permissões para criar métricas com base em registros, exclusões, buckets e visualizações, além de exportar 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.viewAccessor (Acessador de visualização de registros) fornece permissão para ler registros em uma visualização. Para restringir esse papel a uma visualização em um bucket específico, use uma condição do IAM. Consulte esse artigo sobre como ler registros de um bucket para ver um exemplo.
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. Esse papel se aplica apenas aos buckets
_Required
e_Default
.roles/editor (Editor do projeto) inclui as permissões de roles/logging.viewer e 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 ver mais detalhes sobre os papéis e permissões do Logging, consulte Permissões e papéis, nesta página.
Como conceder 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 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.exclusions. {list ,get }.logging.locations. {list ,get }.logging.logEntries.list logging.logMetrics. {list ,get }.logging.views. {list ,get }.logging.logs.list logging.logServiceIndexes.list logging.logServices.list logging.queries.listShared logging.sinks. {list ,get }.logging.buckets. {list ,get }.logging.usage.get resourcemanager.projects.get logging.queries. {get ,list ,update ,create ,delete }.
|
projeto, organização, pasta, conta de faturamento |
roles/ logging.privateLogViewer |
Visualizador 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 ,
undelete }logging.cmekSettings. {get ,
update }logging.exclusions. {list ,
create ,
get ,
update ,
delete }logging.locations. {list ,
get }logging.logMetrics. {list ,
create ,
get ,
update ,
delete }logging.logs.list logging.logServiceIndexes.list logging.logServices.list logging.sinks. {list ,
create ,
get ,
update ,
delete }logging.views. {list ,
create ,
get ,
update ,
delete }resourcemanager.projects. {get ,
list }
|
projeto, organização, pasta, conta de faturamento |
roles/ logging.bucketWriter |
Gravador de bucket de registros | logging.buckets.write |
projeto |
roles/ logging.viewAccessor |
Acessador de visualização de registros | logging.views. {access ,
listLogs ,
listResourceKeys ,
listResourceValues } |
projeto, organização, pasta, conta de faturamento |
roles/ logging.admin |
Administrador do Logging | logging.exclusions. {list ,create ,get ,update ,delete }.logging.locations. {list ,get }.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 ,create ,delete ,undelete }.logging.views. {list ,access ,create ,get ,update ,delete ,listLogs ,listResourceKeys ,listResourceValues }.logging.cmekSettings. {get ,update }.logging.usage.get resourcemanager.projects. {get ,list }.logging.queries. {get ,list ,update ,create ,delete ,share ,updateShared ,listShared }. |
projeto, organização, pasta, conta de faturamento |
roles/viewer |
Visualizador | logging.buckets. {list ,get }.logging.cmekSettings.get logging.exclusions. {list ,get }.logging.locations. {list ,get }.logging.logEntries. {list ,download }.logging.logMetrics. {list ,get }.logging.logs.list logging.logServiceIndexes.list logging.logServices.list logging.sinks. {list ,get }.logging.usage.get logging.views. {list ,get ,listLogs ,listResourceValues ,listResourceKeys }.resourcemanager.projects.get logging.queries. {get ,list ,update ,create ,delete ,listShared }. |
projeto, organização, pasta |
roles/editor |
Editor | roles/viewer Permissões de geração de registros, além de:logging.cmekSettings.update logging.logEntries.create logging.logMetrics. {create ,update ,delete }.logging.logs.delete logging.queries. {get ,list ,update ,create ,delete ,listShared }.logging.views. {create ,update ,delete }. |
projeto, organização, pasta |
roles/owner |
Proprietário | roles/editor Permissões de geração de registros, além de:logging.buckets. {create ,update ,delete ,undelete }.logging.exclusions. {create ,update ,delete }.logging.privateLogEntries.list logging.sinks. {create ,update ,delete }.logging.queries. {get ,list ,update ,create ,delete ,share ,updateShared ,listShared }.logging.views.access |
projeto, organização, pasta |
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 Explorador de registros, selecione um dos 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 ferramentagcloud
.
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.
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 |
projetos |
Permissões do console
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 | Insira 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 IAM.
Para usar qualquer um dos comandos gcloud logging
, você precisa ter a permissão serviceusage.services.use
.
Também é necessário ter o papel do 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 IAM nos 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 | 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. |
Práticas recomendadas
Agora que os papéis do 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 IAM na conta do serviço da instância de VM para restringir o acesso a APIs específicas. Para ver detalhes, consulte Permissões da conta de serviço.
Ao criar um papel personalizado que inclua permissões para gerenciar exclusões, recomendamos que você conceda permissões
logging.sinks.*
ao papel em vez de conceder permissõeslogging.exclusions.*
.Gerenciar exclusões faz parte de coletores de registros. Portanto, todas as permissões relacionadas ao gerenciamento de coletores, incluindo exclusões, são incluídas nas permissões
logging.sinks.*
.