Noções básicas sobre registros de auditoria

Nesta página, descrevemos as entradas de registro de auditoria em detalhes: a estrutura delas, como lê-las e interpretá-las.

O Cloud Audit Logging mantém três registros de auditoria para cada projeto, pasta e organização do GCP:

  • Registros de auditoria de eventos do sistema
  • Registros de auditoria das atividades do administrador
  • Registros de auditoria de acesso a dados

Para uma visão geral dos registros do Cloud Audit, consulte Cloud Audit Logging.

Como ver registros de auditoria

Você tem várias opções para visualizar suas entradas de registro de auditoria:

Visualizador básico

É possível usar a interface básica do visualizador de registros no Console do GCP para recuperar entradas de registros de auditoria. Para isso, siga as etapas abaixo:

  1. Acesse Stackdriver Logging > Registros (página "visualizador de registros") no Console do GCP:

    Acessar a página "visualizador de registros"

  2. Selecione um projeto do GCP na parte superior da página ou crie um novo.

  3. No primeiro menu suspenso, selecione o tipo de recurso que tem os registros de auditoria que você quer ver. É possível selecionar um recurso específico ou Global para ver todos os recursos.

  4. No segundo menu suspenso, selecione o tipo de registro que você quer ver: activity para registros de auditoria das atividades do administrador, data_access para registros de auditoria de acesso a dados e system_events para registros de eventos do sistema.

    Se nenhuma dessas opções for exibida, isso indicará que não há registros de auditoria desse tipo disponíveis no projeto.

Visualizador avançado

É possível usar a interface avançada do visualizador de registros no Console do GCP para recuperar suas entradas de registros de auditoria. Para isso, siga as etapas abaixo:

  1. Acesse Stackdriver Logging > Registros (página "visualizador de registros") no Console do GCP:

    Acessar a página "visualizador de registros"

  2. Selecione um projeto do GCP na parte superior da página ou crie um novo.

  3. No primeiro menu suspenso, selecione o tipo de recurso que tem os registros de auditoria que você quer ver. É possível selecionar um recurso específico ou Global para ver todos os recursos.

  4. Clique na seta suspensa (▾) na extrema direita da caixa do filtro de pesquisa e selecione Converter para filtro avançado.

  5. Crie um filtro que especifique ainda mais as entradas de registros que você quer ver. Para recuperar todos os registros de auditoria do projeto, adicione o filtro a seguir. Insira um [PROJECT_ID] válido em cada um dos nomes de registro.

      logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events"
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access")
    

    Para mais detalhes sobre filtros, consulte Filtros de registros avançados.

API

Para ver suas entradas de registros de auditoria usando a API Stackdriver Logging, siga estas etapas:

  1. Acesse a seção Teste esta API na documentação do método entries.list.

  2. Digite o seguinte na parte do Corpo da solicitação do formulário Teste esta API. Ao clicar neste formulário pré-preenchido (em inglês), o corpo da solicitação será automaticamente preenchido. No entanto, será preciso fornecer um [PROJECT_ID] válido em cada um dos nomes de registro.

      {
        "resourceNames": [
          "projects/[PROJECT_ID]"
        ],
        "pageSize": 5,
        "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. Clique em Executar.

Para mais detalhes sobre filtros, consulte Filtros de registros avançados.

SDK

Para ler suas entradas de registros usando o SDK do Cloud, execute o comando abaixo. Insira um [PROJECT_ID] válido em cada um dos nomes de registro.

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)

Consulte Como ler entradas de registro para mais informações sobre como usar o SDK do Cloud.

Formato das entradas de registro de auditoria

Uma entrada de registro de auditoria é um tipo de entrada de registro do Stackdriver Logging. Assim como todas as entradas de registro do Logging, uma entrada de registro de auditoria é armazenada em um objeto LogEntry. O que distingue uma entrada de registro de auditoria de outras entradas de registro é o campo protoPayload. Em entradas de registro de auditoria, o campo protoPayload da entrada de registro contém um objeto AuditLog que armazena os dados de registro de auditoria.

O tipo AuditLog define um conjunto de campos específicos para registro de auditoria, como serviceName e authenticationInfo. Ele tem também um campo opcional, serviceData, que alguns serviços do Google Cloud Platform usam para listar informações específicas do serviço na entrada de registro de auditoria. Consulte Dados de auditoria específicos do serviço para ver uma lista de serviços do GCP que usam esse campo.

Exemplo de entrada de registro de auditoria

Nesta seção, usamos um exemplo de entrada de registro de auditoria para explicar como encontrar as informações mais importantes.

O exemplo a seguir é uma entrada de registro de auditoria das atividades do administrador escrita pelo Resource Manager para registrar uma alteração em uma política do Cloud Identity and Access Management em um projeto do Google Cloud Platform chamado my-gcp-project-id. Por praticidade, omitimos algumas partes da entrada de registro e destacamos os campos importantes.

    {
      protoPayload: {
        @type: "type.googleapis.com/google.cloud.audit.AuditLog",
        status: {},
        authenticationInfo: {
          principalEmail: "user@example.com"
        },
        serviceName: "cloudresourcemanager.googleapis.com",
        methodName: "SetIamPolicy",
        authorizationInfo: [...],
        serviceData: {
          @type: "type.googleapis.com/google.iam.v1.logging.AuditData",
          policyDelta: { bindingDeltas: [
              action: "ADD",
              role: "roles/logging.privateLogViewer",
              member: "user:user@example.com"
          ], }
        },
        request: {
          resource: "my-gcp-project-id",
          policy: { bindings: [...], }
        },
        response: {
          bindings: [
            {
              role: "roles/logging.privateLogViewer",
              members: [ "user:user@example.com" ]
            }
          ],
        }
      },
      insertId: "53179D9A9B559.AD6ACC7.B40604EF",
      resource: {
        type: "project",
        labels: { project_id: "my-gcp-project-id" }
      },
      timestamp: "2016-04-27T16:24:56.135Z",
      severity: "NOTICE",
      logName: "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity",
    }

Veja a seguir o filtro usado para selecionar o exemplo de entrada de registro de auditoria acima. Ele pode ser usado no Leitor avançado, na API do Stackdriver Logging ou no SDK do Cloud. O identificador do projeto é exibido no nome do registro, e o filtro é rápido porque o campo logName está indexado:

resource.type = "project"
logName = "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity"

Ao procurar registros de auditoria de uma única instância de um tipo de recurso, como gce_instance, inclua um qualificador de instância:

resource.type = "gce_instance"
resource.instance_id = "12345678901234567890"
logName = "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity"

Como interpretar o exemplo de entrada de registro de auditoria

No exemplo de entrada de registro de auditoria acima, os campos protoPayload, insertId, resource, timestamp, severity e logName são parte do objeto LogEntry. O valor do campo protoPayload é um objeto AuditLog, que armazena os dados do registro de auditoria.

Você poderá ter as seguintes dúvidas ao observar o exemplo de entrada de registro de auditoria acima:

  • Trata-se de uma entrada de registro de auditoria? Sim, e há duas maneiras de identificar isso.

    • O campo protoPayload.@type é type.googleapis.com/google.cloud.audit.AuditLog.

    • O campo logName inclui o domínio cloudaudit.googleapis.com.

  • Qual serviço gravou o registro de auditoria? O registro foi gravado pelo Resource Manager. Essa informação está listada no campo protoPayload.serviceName da entrada de registro de auditoria.

  • Qual operação está sendo auditada? O SetIamPolicy está sendo auditado, conforme especificado no campo protoPayload.methodName. É possível encontrar mais informações sobre a operação auditada no objeto AuditData em protoPayload.serviceData.

  • Qual recurso está sendo auditado? Um projeto do Google Cloud Platform, my-gcp-project-id, está sendo auditado. O campo resource especifica o tipo de recurso project e o identificador do projeto my-gcp-project-id. Procure project na lista de tipos de recursos monitorados (em inglês) para confirmar que se trata de um "projeto do Google".

Para mais informações, consulte os tipos (em inglês) de LogEntry, AuditLog e AuditData do IAM.

Entradas de registro de auditoria grandes ou de longa duração

Uma única operação auditada será dividida em várias entradas de registro se for executada de maneira assíncrona ou gerar um registro AuditLog grande. Quando uma única operação tem mais de uma entrada de registro, o objeto LogEntry contém um campo operation e as entradas têm o mesmo valor de LogEntry.operation.id e LogEntry.operation.producer.

No exemplo de entrada de registro de auditoria anterior, o campo operation não existe, o que significa que todas as informações de auditoria estão contidas em uma única entrada de registro.

Dados de auditoria específicos do serviço

Alguns serviços estendem as informações armazenadas no AuditLog, colocando uma estrutura de dados suplementar no campo serviceData do log de auditoria. Na tabela a seguir, você vê os serviços que usam o campo serviceData, com link para cada tipo AuditData correspondente.

Serviço Tipo de dados do serviço
App Engine type.googleapis.com/google.appengine.v1.AuditData
App Engine (legado) type.googleapis.com/google.appengine.legacy.AuditData
BigQuery type.googleapis.com/google.cloud.bigquery.logging.v1.AuditData
Cloud Identity e Access Management type.googleapis.com/google.iam.v1.logging.AuditData
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Stackdriver Logging
Precisa de ajuda? Acesse nossa página de suporte.