Conferir os registros de auditoria gerados pelo pgAudit para o AlloyDB para PostgreSQL

Para monitorar a atividade do banco de dados e ajudar a atender aos requisitos de conformidade governamentais, financeiros e ISO, é possível visualizar e consultar os registros de auditoria de acesso a dados gerados pelo pgAudit para o AlloyDB para PostgreSQL no Cloud Logging. Também é possível inspecionar o formato de entrada de registro do pgAudit e monitorar o status do pipeline de geração de registros de auditoria no Cloud Monitoring. Para mais informações sobre o pgAudit, consulte Sobre o pgAudit.

Antes de começar

Para ver os registros de auditoria, faça o seguinte:

Acessar registros de auditoria

Os registros pgAudit gerados para uma determinada instância são enviados para o Cloud Logging como registros de auditoria de acesso a dados.

É possível visualizar os registros pgAudit gerados usando o aplicativo Análise de registros.

Para visualizar os registros do pgAudit, selecione o filtro de registro cloudaudit.googleapis.com/data_access no aplicativo Análise de registros.

Para ver todos os registros do pgAudit de um projeto do AlloyDB, execute a seguinte consulta usando a interface Filtro avançado:

resource.type="alloydb.googleapis.com/Instance"
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"

Substitua PROJECT_ID pelo ID do projeto do AlloyDB.

Formato de registro de pgAudit

Cada entrada de registro do pgAudit nos registros de auditoria de acesso a dados contém campos que representam as informações coletadas para uma consulta. Para mais informações sobre esses campos de entrada de registro, consulte a documentação do pgAudit.

Exemplo de entrada de registro do pgAudit:

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "alloydb.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

Veja a seguir as descrições dos campos nos registros de auditoria de acesso a dados:

  • auditClass. O tipo da instrução que é registrada. Os valores possíveis são READ, WRITE, FUNCTION, ROLE, DDL, MISC e MISC_SET.
  • auditType. SESSION ou OBJECT.
  • chunkCount. A divisão em blocos pode ocorrer nos dados fornecidos nos campos parameter e statement. O campo chunkCount indica o número total de blocos. Consulte também a descrição do campo chunkIndex.
  • chunkIndex. Especifica o número do índice dos blocos de dados nos campos parameter e statement no contêiner request atual. O número inicial é 1. Consulte também a descrição do campo chunkCount.
  • . Por exemplo, ALTER TABLE ou SELECT.
  • . O campo chunkIndex pode determinar o conteúdo desse campo. Consulte a descrição do campo chunkIndex. Se o valor da flag pgaudit.log_parameter estiver definido, o campo parameter poderá conter os parâmetros da instrução como dados CSV entre aspas. Se não houver parâmetros, este campo conterá [none]. Caso contrário, este campo conterá [not logged].
  • instrução. Instrução executada no back-end. O campo chunkIndex pode determinar o conteúdo do campo statement. Consulte a descrição do campo chunkIndex.
  • statementId. ID de instrução exclusivo para esta sessão. Cada ID de instrução representa uma chamada de back-end. Os IDs de instrução são sequenciais, mesmo que algumas instruções não sejam registradas.
  • substatementId. ID sequencial de cada subdeclaração na declaração principal.

Monitorar o status do pipeline de registro de auditoria

O AlloyDB processa os registros de auditoria gerados pelo usuário de forma assíncrona antes de encaminhá-los com segurança para o Cloud Logging. É possível monitorar o status, a capacidade de processamento e o backlog do pipeline de geração de registros de auditoria para suas instâncias e nós usando o Cloud Monitoring.

As seguintes métricas estão disponíveis no recurso monitorado alloydb.googleapis.com/InstanceNode no Metrics Explorer:

Nome da métrica Nome de exibição Tipo de métrica / Tipo de valor Unidade Descrição
alloydb.googleapis.com/node/database/logging/audit/backlog_bytes_count Tamanho do backlog do registro de auditoria GAUGE / INT64 Bytes (By) O tamanho, em bytes, do backlog do registro de auditoria no nó que aguarda o processamento e o upload para o Cloud Logging. Um valor alto ou crescente indica contrapressão no pipeline de encaminhamento de registro de auditoria.
alloydb.googleapis.com/node/database/logging/audit/processed_bytes_count Bytes de registro de auditoria processados DELTA / INT64 Bytes (By) O número total de bytes de dados de registro de auditoria processados e encaminhados para o Cloud Logging pelo nó.
alloydb.googleapis.com/node/database/logging/audit/processed_entries_count Entradas de registro de auditoria processadas DELTA / INT64 Contagem (1) O número total de entradas de registro de auditoria processadas e encaminhadas para o Cloud Logging pelo nó.

Para mais informações, consulte a referência de métricas do System Insights.

A seguir