Configurar visualizações de registros em um bucket de registros

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

Com as visualizações de registros, é possível conceder a um usuário acesso apenas a um subconjunto dos registros armazenados em um bucket de registros. Por exemplo, pense em um cenário em que você armazena os registros da sua organização em um projeto central. É possível criar uma visualização de registros para cada projeto que contribui com registros para obucket de registrost. Assim, é possível conceder a cada usuário acesso a uma ou mais visualizações de registros e, assim, restringir os registros que eles podem acessar.

O Cloud Logging cria automaticamente uma visualização _AllLogs para cada bucket de registro e uma visualização _Default para o bucket de registros _Default:

  • Visualização _AllLogs: é possível conferir todos os registros no bucket de registros.
  • Visualização _Default: é possível ver todos os registros de auditoria que não são de acesso a dados no bucket de registros.

Não é possível modificar visualizações criadas automaticamente pelo Cloud Logging. No entanto, você pode excluir a visualização _AllLogs.

É possível criar no máximo 30 visualizações de registros por bucket.

Cada visualização de registro contém um filtro, que restringe as entradas de registro 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 destes valores:

  • Uma fonte de dados usando a função source. A função source 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ção log_id retorna entradas de registro que correspondem ao argumento LOG_ID fornecido no campo logName.

  • Um tipo de recurso válido usando a comparação resource.type= FIELD_NAME.

Por exemplo, o filtro a seguir captura 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, siga estas etapas:

  1. No projeto apropriado do Google Cloud, crie um bucket do Logging para configurar uma visualização de registros personalizada, se ainda não tiver feito isso.

  2. Para receber as permissões necessárias para criar, visualizar, atualizar e excluir visualizações de registros, peça ao administrador para conceder a você o papel de IAM Gravador de configuração de registros (roles/logging.configWriter) no projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

    Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

  3. Instale o Google Cloud CLI.

  4. Determine quais registros você quer incluir na visualização. Essas informações são usadas para especificar o filtro da visualização do registro.

  5. Determine quem deve ter acesso à visualização de registro. Os principais com o papel roles/logging.viewAccessor podem ver os registros em qualquer visualização de registros. No entanto, o Cloud Logging é compatível com as condições do IAM. As condições permitem conceder a um principal acesso a uma visualização de registro específica. Para mais informações, consulte Conceder acesso a uma visualização de registro.

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 registro.
  • BUCKET_NAME: o nome do bucket de registros.
  • LOCATION: a localização do bucket de registros.
  • FILTER: um filtro que define a visualização de registro. Quando está vazia, a visualização de registros inclui 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 registro. Por exemplo, insira 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 alterações, execute o comando gcloud logging views list.

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: a localização 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 registros. Para cada visualização de registro, o filtro é mostrado 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 registro foi criada junto com o 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

Conceder acesso a uma visualização de registro

As principais com o papel roles/logging.viewAccessor em um projeto do Google Cloud podem ver os registros em qualquer visualização de registro. No entanto, o Cloud Logging é compatível com as condições do IAM. As condições permitem conceder a um principal acesso a uma visualização de registro específica.

As condições do IAM são especificadas na vinculação de papel de um projeto do Google Cloud. Há um limite de 20 vinculações de papéis em uma política de permissão que inclui o mesmo papel e o mesmo principal, mas expressões condicionais diferentes.

Para adicionar usuários a uma visualização para que eles possam acessar os registros, conclua as etapas a seguir.

gcloud

  1. Acesse a política do IAM do projeto e grave-a em um arquivo local no formato JSON. Antes de executar o comando a seguir, substitua PROJECT_ID pelo ID do projeto que contém o bucket de registros:

    gcloud projects get-iam-policy PROJECT_ID --format json > output.json
    
  2. Edite o arquivo JSON criado e adicione uma condição do IAM que permita ao usuário ler o bucket de registros criado.

    Por exemplo, o exemplo a seguir especifica uma vinculação que concede o papel de "roles/logging.viewAccessor" aos membros especificados, mas apenas para uma única visualização de registro:

    {
      "bindings": [
        {
          "members": [
            "user:username@gmail.com"
          ],
          "role": "roles/logging.viewAccessor",
          "condition": {
              "title": "Bucket reader condition example",
              "description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
              "expression":
                "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
          }
        }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
    }
  3. Atualize a política do IAM:

    gcloud projects set-iam-policy PROJECT_ID output.json
    

Console

No projeto em que você criou o bucket de registros, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione IAM:

    Acessar o IAM

  2. Clique em CONCEDER ACESSO.

  3. No campo Novos principais, adicione a conta de e-mail do usuário.

  4. No menu suspenso Selecionar um papel, escolha Acessador 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.

    1. Clique em Adicionar condição do IAM.

    2. Insira um Título e uma Descrição para a condição.

    3. No menu suspenso Tipo de condição, selecione Recurso > Nome.

    4. No menu suspenso Operador, selecione é.

    5. 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
    6. Clique em Salvar para adicionar a condição.

  5. Clique em Salvar para definir as permissões.

Atualizar uma visualização de registro

Para atualizar ou modificar uma visualização de registro, use o comando gcloud logging views update. Se você não souber o ID da visualização, consulte Listar visualizações de registro.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • VIEW_ID: o identificador da visualização de registro.
  • BUCKET_NAME: o nome do bucket de registros.
  • LOCATION: a localização do bucket de registros.
  • FILTER: um filtro que define a visualização de registro. Quando está vazia, a visualização de registros inclui 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 registro. Por exemplo, insira 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 alterações, execute o comando gcloud logging views describe.

Excluir uma visualização de registro

Para excluir uma visualização de registro, use o comando gcloud logging views delete. Se você não souber o ID da visualização, consulte Listar visualizações de registro.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • VIEW_ID: o identificador da visualização de registro.
  • BUCKET_NAME: o nome do bucket de registros.
  • LOCATION: a localização 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, veja a seguir a resposta à exclusão de uma visualização de registro chamada tester:

Deleted [tester].

Descrever uma visualização de registro

Para recuperar informações detalhadas sobre uma visualização de registro, use o comando gcloud logging views describe. Se você não souber o ID da visualização, consulte Listar visualizações de registro.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • VIEW_ID: o identificador da visualização de registro.
  • BUCKET_NAME: o nome do bucket de registros.
  • LOCATION: a localização 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 de registro. Ele também inclui o filtro quando o campo dele 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'

Conferir registros associados a uma visualização de registro

Para acessar os registros em uma visualização, verifique se você tem o papel Acesso de visualização de registros (roles/logging.viewAccessor) para ela:

  1. No painel de navegação do console do Google Cloud, selecione Logging e clique em Análise de registros:

    Acessar a Análise de registros

  2. 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 seus registros.

O painel Refinar escopo

Para mais informações, consulte a documentação da Análise de registros.

A seguir

Configurar o acesso no nível do campo.