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

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çã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 especificado no campo logName.

  • 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:

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

  2. 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:

    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.

  3. Instale o Google Cloud CLI.

  4. Determine quais registros você quer incluir na visualização. Use essas informações para especificar o filtro da visualização de registros.

  5. 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 que PRINCIPAL_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

  1. 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"
    
  2. 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
    
  3. 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 que PRINCIPAL_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:

  1. No console do Google Cloud, abra a página IAM.

    Acessar o IAM

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.

  2. Clique em CONCEDER ACESSO.

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

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

    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.

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.

Acessar o 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:

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

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