Neste documento, descrevemos como criar e gerenciar visualizações de registros nos buckets do Cloud Logging usando a CLI gcloud. As visualizações de registros oferecem controle avançado e granular sobre quem tem acesso aos registros nos buckets.
Para informações gerais sobre o modelo de armazenamento do Logging, consulte Visão geral de roteamento e armazenamento.
Sobre as visualizações de registros
As visualizações de registros permitem conceder a um usuário acesso apenas a um subconjunto dos registros armazenados em um bucket de registros. Por exemplo, imagine um cenário em que você armazena os registros da organização em um projeto central. É possível criar uma visualização de registro para cada projeto que contribui com registros para o bucket de registros. Em seguida, conceda a cada usuário acesso a uma ou mais visualizações e, assim, restrinja quais registros eles podem ver.
É possível criar no máximo 30 visualizações de registros por bucket.
Controlar o acesso a uma visualização de registros
O Cloud Logging usa políticas do IAM para controlar quem tem acesso às visualizações de registros. As políticas do IAM podem existir nos níveis do recurso, do projeto, da pasta e da organização. Para o Cloud Logging, é possível criar uma política do IAM para cada visualização de registro. Para determinar se um principal está autorizado para uma ação, o IAM avalia todas as políticas aplicáveis, com a primeira avaliação no nível do recurso.
Os principais com o papel roles/logging.viewAccessor
em um projeto do Google Cloud podem acessar visualizações e registros em qualquer bucket de registros no projeto.
Para restringir uma principal a uma visualização de registro específica, siga um destes procedimentos:
Crie uma política do IAM para a visualização de registros e, em seguida, adicione uma vinculação do IAM a essa política que conceda o acesso principal à visualização de registros.
Se você cria um grande número de visualizações de registros, recomendamos essa abordagem.
Conceda ao principal o papel do IAM de
roles/logging.viewAccessor
, mas anexe uma condição do IAM à concessão. Há um limite de 20 vinculações de papéis no arquivo de política para um projeto do Google Cloud que incluem o mesmo papel e a mesma conta principal, mas expressões de condição diferentes.
Para mais informações, consulte a seção Conceder acesso a uma visualização de registro do documento.
Visualizações de registros criadas automaticamente
O Cloud Logging cria automaticamente uma visualização _AllLogs
para cada
bucket de registros e uma visualização _Default
para o bucket de registros _Default
:
- Visualização
_AllLogs
: é possível visualizar todos os registros no bucket de registros. - Visualização
_Default
: é possível visualizar todos os registros de auditoria que não sejam de acesso a dados no bucket de registros.
Não é possível modificar visualizações criadas automaticamente pelo Cloud Logging.
No entanto, é possível excluir a visualização _AllLogs
.
Filtro da visualização de registro
Cada visualização de registro contém um filtro que determina quais entradas de registro ficam visíveis na visualização. Os filtros podem conter operadores lógicos AND
e NOT
.
No entanto, eles não podem incluir operadores lógicos OR
.
Os filtros podem comparar qualquer um dos seguintes valores:
Uma fonte de dados usando a função
source
. A funçãosource
retorna entradas de registro de um recurso específico nas organizações, pastas e hierarquia de projetos do Google Cloud.Um ID de registro usando a função
log_id
. A funçãolog_id
retorna entradas de registro que correspondem ao argumentoLOG_ID
especificado no campologName
.Um tipo de recurso válido usando a comparação
resource.type=
FIELD_NAME.
Por exemplo, o filtro a seguir captura as entradas de registro stdout
do Compute Engine de um projeto do Google Cloud chamado myproject
:
source("projects/myproject") AND resource.type = "gce_instance" AND log_id("stdout")
Para detalhes sobre a sintaxe de filtragem, consulte Comparações.
Antes de começar
Antes de criar ou atualizar uma visualização de registro, conclua as seguintes etapas:
No projeto apropriado do Google Cloud, crie um bucket do Logging em que você quer configurar uma visualização de registros personalizada, caso ainda não tenha feito isso.
-
Para ter as permissões necessárias para criar e gerenciar visualizações de registros e conceder acesso a elas, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Gravador de configuração de registros (
roles/logging.configWriter
) -
Para adicionar uma vinculação de papel a um projeto:
Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin
) -
Para adicionar uma vinculação de papel a uma visualização de registros:
Administrador do Logging (
roles/logging.admin
)
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível receber as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
-
Gravador de configuração de registros (
Instale o Google Cloud CLI.
Determine quais registros você quer incluir na visualização. Use essas informações para especificar o filtro da visualização de registros.
Determine quem deve ter acesso à visualização de registro e se você quer adicionar vinculações à política de IAM da visualização de registro ou do projeto do Google Cloud. Para mais informações, consulte Controlar o acesso a uma visualização de registros.
Criar uma visualização de registros
Para criar uma visualização de registros, use o comando gcloud logging views update
.
É possível criar no máximo 30 visualizações de registros por bucket.
Antes de usar os dados do comando abaixo, faça estas substituições:
- VIEW_ID: o identificador da visualização de registros.
- BUCKET_NAME: o nome do bucket de registros.
- LOCATION: o local do bucket de registros.
- FILTER: um filtro que define a visualização de registros. Quando estiver vazia, a visualização de registros vai incluir todos os registros. Por exemplo, para filtrar por registros de instâncias de VM do Compute Engine, digite
"resource.type=gce_instance"
. - DESCRIPTION: uma descrição da visualização de registros. Por exemplo, é possível inserir o seguinte para a descrição
"Compute logs"
.
Execute o
comando
gcloud logging views create
:
Linux, macOS ou Cloud Shell
gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Windows (PowerShell)
gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Windows (cmd.exe)
gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Esse comando não fornece uma resposta. Para confirmar as mudanças, execute o
comando gcloud logging views list
.
Em seguida, conceda aos principais acesso à visualização de registros.
Conceder acesso a uma visualização de registros
Para restringir um principal a uma visualização de registro específica em um bucket de registro definido pelo usuário, adicione uma vinculação de papel à visualização de registros ou ao projeto do Google Cloud que armazena o bucket de registros. Ao criar um grande número de visualizações de registros, recomendamos que você adicione vinculações a ela.
Visualização de registro: adicionar vinculações de papéis
Esta seção descreve como adicionar uma vinculação de papel a uma visualização de registro e como listar as vinculações anexadas a uma visualização de registro.
Adicionar uma vinculação de papel a uma visualização de registros
Para atualizar o arquivo de política do IAM de uma visualização de registro, siga as etapas a seguir.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- VIEW_ID: o identificador da visualização de registros.
- PRINCIPAL: um identificador do principal a que você quer
conceder o papel. Os identificadores principais geralmente têm o seguinte formato:
PRINCIPAL-TYPE:ID
. Por exemplo,user:my-user@example.com
. Para ver uma lista completa dos formatos quePRINCIPAL_ID
pode ter, consulte Identificadores principais. - BUCKET_NAME: o nome do bucket de registros.
- LOCATION: o local do bucket de registros.
Execute o
comando
gcloud logging views add-iam-policy-binding
:
Linux, macOS ou Cloud Shell
gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION
Windows (PowerShell)
gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION
Windows (cmd.exe)
gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION
Veja a seguir a resposta quando uma única vinculação é adicionada:
Updated IAM policy for logging view [projects/PROJECT_ID/locations/global/buckets/BUCKET_NAME/views/VIEW_ID]. bindings: - members: - PRINCIPAL role: roles/logging.viewAccessor etag: BwYXfSd9-Gw= version: 1
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform. Para mais informações, consulte a documentação de referência do provedor Terraform.
Para provisionar associações do IAM para uma visualização de registro usando o Terraform, vários recursos diferentes estão disponíveis:
google_logging_log_view_iam_policy
google_logging_log_view_iam_binding
google_logging_log_view_iam_member
Para mais informações, consulte Política do IAM para LogView do Cloud Logging.
Console
Incompatível. Para adicionar vinculações a uma visualização de registro, use a Google Cloud CLI.
Listar vinculações de papéis em uma visualização de registros
Para listar as vinculações do IAM para uma visualização de registro, conclua as etapas a seguir.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- VIEW_ID: o identificador da visualização de registros.
- BUCKET_NAME: o nome do bucket de registros.
- LOCATION: o local do bucket de registros.
Execute o
comando
gcloud logging views get-iam-policy
:
Linux, macOS ou Cloud Shell
gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (PowerShell)
gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (cmd.exe)
gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Quando uma visualização de registro não tem vinculações, a resposta inclui apenas um campo
etag
. Veja a seguir a resposta quando uma visualização de registro contém uma única vinculação:
bindings: - members: - PRINCIPAL role: roles/logging.viewAccessor etag: BwYXfSd9-Gw= version: 1
Terraform
Para listar associações do IAM para visualizações de registros usando o Terraform,
use a fonte de dados
google_logging_log_view_iam_policy
.
Console
Incompatível. Para listar as vinculações de uma visualização de registro, use a Google Cloud CLI.
Projeto do Google Cloud: adicionar vinculações de papéis
Esta seção descreve como adicionar uma vinculação de papel a um projeto do Google Cloud e como listar as vinculações anexadas a um projeto.
Adicionar uma vinculação de papel a um projeto
Para adicionar uma vinculação de papel ao arquivo de política do IAM de um projeto do Google Cloud, conclua as etapas a seguir.
gcloud
Crie um arquivo JSON ou yaml com a condição.
Por exemplo, é possível criar um arquivo chamado
condition.yaml
com o seguinte conteúdo:expression: "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\"" title: "My title" description: "My description"
Opcional: para verificar se o arquivo JSON ou yaml está formatado corretamente, execute o seguinte comando:
gcloud alpha iam policies lint-condition --condition-from-file=condition.yaml
Atualize a política do IAM no projeto do Google Cloud chamando o método
gcloud projects add-iam-policy-binding
.Antes de usar o comando a seguir, faça as seguintes substituições:
- PROJECT_ID: o identificador do projeto.
- PRINCIPAL: um identificador do principal a que você quer
conceder o papel. Os identificadores principais geralmente têm o seguinte formato:
PRINCIPAL-TYPE:ID
. Por exemplo,user:my-user@example.com
. Para ver uma lista completa dos formatos quePRINCIPAL_ID
pode ter, consulte Identificadores principais.
Execute o comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --condition-from-file=condition.yaml
A resposta ao comando anterior inclui todas as vinculações de papéis.
- condition: description: My description expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID" title: My title members: - PRINCIPAL role: roles/logging.viewAccessor
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform. Para mais informações, consulte a documentação de referência do provedor Terraform.
Para provisionar associações do IAM para projetos usando o Terraform, vários recursos diferentes estão disponíveis:
google_project_iam_policy
google_project_iam_binding
google_project_iam_member
Para mais informações, consulte a política do IAM para projetos.
Console
No projeto em que você criou o bucket de registros, faça o seguinte:
-
No console do Google Cloud, abra a página IAM.
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.
Clique em
CONCEDER ACESSO.No campo Novos principais, adicione a conta de e-mail do usuário.
No menu suspenso Selecionar papel, selecione Acessor de visualização de registros.
Este papel fornece aos usuários acesso de leitura a todas as visualizações. Para limitar o acesso do usuário a uma visualização específica, adicione uma condição com base no nome do recurso.
Clique em Adicionar condição do IAM.
Insira um Título e uma Descrição para a condição.
No menu suspenso Tipo de condição, selecione Recurso > Nome.
No menu suspenso Operador, selecione é.
No campo Valor, insira o ID da visualização de registros, incluindo o caminho completo da visualização.
Exemplo:
projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
Clique em Salvar para adicionar a condição.
Clique em Salvar para definir as permissões.
Listar vinculação de papel em um projeto
Para listar as vinculações de papéis em um projeto do Google Cloud, conclua as etapas a seguir.
gcloud
Antes de usar o comando a seguir, faça as seguintes substituições:
- PROJECT_ID: o identificador do projeto.
Execute o
comando
gcloud projects get-iam-policy
:
gcloud projects get-iam-policy PROJECT_ID
A resposta ao comando anterior inclui todas as vinculações de papéis.
- condition:
description: My description
expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
title: My title
members:
- PRINCIPAL
role: roles/logging.viewAccessor
Terraform
Para listar as associações do IAM para projetos usando o Terraform,
use a fonte de dados
google_project_iam_policy
.
Console
No console do Google Cloud, abra a página IAM.
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.
A página IAM lista todos os principais, os papéis do IAM e todas as condições anexadas a esses papéis.
Listar visualizações de registros em um bucket de registros
Para listar as visualizações de registros criadas para um bucket de registros, use o comando gcloud logging views list
.
Antes de usar os dados do comando abaixo, faça estas substituições:
- BUCKET_NAME: o nome do bucket de registros.
- LOCATION: o local do bucket de registros.
Execute o
comando
gcloud logging views list
:
Linux, macOS ou Cloud Shell
gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION
Windows (PowerShell)
gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION
Windows (cmd.exe)
gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION
Os dados de resposta são uma lista de visualizações de registro. Para cada visualização de registro, o filtro é mostrado junto com as datas de criação e última atualização. Quando as datas de criação e atualização estão vazias, a visualização de registros foi criada no momento da criação do projeto do Google Cloud. O exemplo de saída a seguir mostra que há dois IDs de visualização, _AllLogs
e compute
, no bucket de registros que foi consultado:
VIEW_ID: _AllLogs FILTER: CREATE_TIME: UPDATE_TIME: VIEW_ID: compute FILTER: resource.type="gce_instance" CREATE_TIME: 2024-02-20T17:41:17.405162921Z UPDATE_TIME: 2024-02-20T17:41:17.405162921Z
Atualizar uma visualização de registros
Para atualizar ou modificar uma visualização de registros, use o comando gcloud logging views update
.
Se você não souber o ID, consulte Listar visualizações de registros.
Antes de usar os dados do comando abaixo, faça estas substituições:
- VIEW_ID: o identificador da visualização de registros.
- BUCKET_NAME: o nome do bucket de registros.
- LOCATION: o local do bucket de registros.
- FILTER: um filtro que define a visualização de registros. Quando estiver vazia, a visualização de registros vai incluir todos os registros. Por exemplo, para filtrar por registros de instâncias de VM do Compute Engine, digite
"resource.type=gce_instance"
. - DESCRIPTION: uma descrição da visualização de registros. Por exemplo, é possível inserir o seguinte para a descrição
"New description for the log view"
.
Execute o
comando
gcloud logging views update
:
Linux, macOS ou Cloud Shell
gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Windows (PowerShell)
gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Windows (cmd.exe)
gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Esse comando não fornece uma resposta. Para confirmar as mudanças, execute o
comando gcloud logging views describe
.
Excluir uma visualização de registros
Para excluir uma visualização de registros, use o comando gcloud logging views delete
.
Se você não souber o ID, consulte Listar visualizações de registros.
Antes de usar os dados do comando abaixo, faça estas substituições:
- VIEW_ID: o identificador da visualização de registros.
- BUCKET_NAME: o nome do bucket de registros.
- LOCATION: o local do bucket de registros.
Execute o
comando
gcloud logging views delete
:
Linux, macOS ou Cloud Shell
gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (PowerShell)
gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (cmd.exe)
gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
A resposta confirma a exclusão. Por exemplo, o exemplo a seguir mostra a resposta à exclusão de uma visualização de registros chamada tester
:
Deleted [tester].
Descrever uma visualização de registros
Para recuperar informações detalhadas sobre uma visualização de registros, use o comando gcloud logging views describe
.
Se você não souber o ID, consulte Listar visualizações de registros.
Antes de usar os dados do comando abaixo, faça estas substituições:
- VIEW_ID: o identificador da visualização de registros.
- BUCKET_NAME: o nome do bucket de registros.
- LOCATION: o local do bucket de registros.
Execute o
comando
gcloud logging views describe
:
Linux, macOS ou Cloud Shell
gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (PowerShell)
gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (cmd.exe)
gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
A resposta sempre inclui a descrição e o nome totalmente qualificado da visualização do registro. Ele também inclui o filtro quando o campo de filtro não está vazio. Veja a seguir um exemplo de resposta:
createTime: '2024-02-20T17:41:17.405162921Z' filter: resource.type="gce_instance" name: projects/my-project/locations/global/buckets/my-bucket/views/compute updateTime: '2024-02-20T17:41:17.405162921Z'
Mostrar registros associados a uma visualização de registros
Para exibir os registros em uma visualização de registro, verifique se você tem o papel
Acessador de visualização de registros (roles/logging.viewAccessor
)
para essa visualização:
-
No console do Google Cloud, acesse a página Análise de registros:
Acessar a Análise de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Geração de registros.
Clique em Refinar escopo para exibir o painel Refinar escopo. Aqui, é possível selecionar o bucket e a visualização de registros que você quer usar para ver os registros.
Para mais informações, consulte a documentação da Análise de registros.
A seguir
Configurar o acesso no nível do campo.