Introdução aos registros de auditoria no BigQuery

Os registros são registros de texto gerados em resposta a eventos ou ações específicos. O BigQuery cria entradas de registro para ações, como criar ou excluir uma tabela, comprar slots ou executar um job de carregamento.

O Google Cloud também grava registros, incluindo registros de auditoria que fornecem insights sobre questões operacionais relacionadas ao uso dos serviços do Google Cloud. Para mais informações sobre como o Google Cloud lida com a geração de registros, consulte a documentação do Cloud Logging e a visão geral dos registros de auditoria do Cloud.

Registros de auditoria comparados a visualizações INFORMATION_SCHEMA

Seus projetos do Google Cloud contêm apenas registros de auditoria dos recursos que estão diretamente nele. Outros recursos do Google Cloud, como pastas, organizações e contas de faturamento, contêm os próprios registros de auditoria.

Os registros de auditoria ajudam a responder às perguntas "Quem fez o que, onde e quando?" referentes aos recursos do Google Cloud. Os registros de auditoria são a fonte de informações definitiva para a atividade do sistema por usuário e padrões de acesso e devem ser sua principal fonte para perguntas de auditoria ou segurança.

As visualizações INFORMATION_SCHEMA no BigQuery são outra fonte de insights que pode ser usada com métricas e registros. Essas visualizações contêm metadados sobre jobs, conjuntos de dados, tabelas e outras entidades do BigQuery. Por exemplo, é possível receber metadados em tempo real sobre quais jobs do BigQuery foram executados durante um horário especificado. Depois, é possível agrupar ou filtrar os resultados por projeto, usuário, tabelas referenciadas e outras dimensões.

As visualizações INFORMATION_SCHEMA fornecem informações para realizar uma análise mais detalhada sobre suas cargas de trabalho do BigQuery, como:

  • Qual é a utilização média de slots para todas as consultas nos últimos sete dias de um determinado projeto?
  • Quais erros de streaming ocorreram nos últimos 30 minutos, agrupados por código de erro?

Os registros de auditoria do BigQuery contêm entradas de registro para chamadas de API, mas não descrevem o impacto das chamadas de API. Um subconjunto de chamadas de API cria jobs (como consulta e carregamento) com informações que são capturadas por visualizações INFORMATION_SCHEMA. Por exemplo, é possível encontrar informações sobre o horário e os slots usados por uma consulta específica nas visualizações INFORMATION_SCHEMA, mas não nos registros de auditoria.

Para insights sobre o desempenho das cargas de trabalho do BigQuery, consulte metadados de jobs, metadados de streaming e metadados de reservas.

Para mais informações sobre os tipos de registros de auditoria que os serviços do Google Cloud gravam, consulte Tipos de registros de auditoria.

Formato do registro de auditoria

Os serviços do Google Cloud gravam registros de auditoria no formato JSON estruturado. O tipo de dados base para entradas de registro do Google Cloud é a estrutura LogEntry. Essa estrutura contém o nome do registro, o recurso que gerou a entrada de registro, o carimbo de data/hora (UTC) e outras informações básicas.

Os registros incluem detalhes do evento registrado em um subcampo chamado campo de payload. Para registros de auditoria, o campo de payload é chamado protoPayload. O tipo deste campo (protoPayload.@type) está definido como type.googleapis.com/google.cloud.audit.AuditLog, o que indica que o campo usa a estrutura de registros AuditLog.

Para operações em conjuntos de dados, tabelas e jobs, o BigQuery grava registros de auditoria em dois formatos diferentes, embora ambos compartilhem o tipo base AuditLog.

O formato mais antigo inclui os seguintes campos e valores:

  • O valor do campo resource.type é bigquery_resource.
  • O BigQuery grava os detalhes de uma operação no campo protoPayload.serviceData. O valor desse campo usa a estrutura de registros AuditData.

O formato mais recente inclui os seguintes campos e valores:

  • O valor do campo resource.type é bigquery_project ou bigquery_dataset. O recurso bigquery_project tem entradas de registro sobre jobs, enquanto o recurso bigquery_dataset tem entradas de registro sobre armazenamento.
  • O BigQuery grava os detalhes de uma operação no campo protoPayload.metadata. O valor desse campo usa a estrutura BigQueryAuditMetadata.

Recomendamos o uso de registros no formato mais recente. Para mais informações, consulte o guia de migração de registros de auditoria.

Veja a seguir um exemplo abreviado de uma entrada de registro que mostra uma operação com falha:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 5,
      "message": "Not found: Dataset myproject:mydataset was not found in location US"
    },
    "authenticationInfo": { ... },
    "requestMetadata":  { ... },
    "serviceName": "bigquery.googleapis.com",
    "methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
    "metadata": {
  },
  "resource": {
    "type": "bigquery_project",
    "labels": { .. },
  },
  "severity": "ERROR",
  "logName": "projects/myproject/logs/cloudaudit.googleapis.com%2Fdata_access",
  ...
}

Para operações em reservas do BigQuery, o campo protoPayload usa a estrutura AuditLog, e os campos protoPayload.request e protoPayload.response contêm mais informações. Encontre as definições de campo na API BigQuery Reservation. Para mais informações, consulte Como monitorar reservas do BigQuery.

Para entender melhor o formato do registro de auditoria, consulte Noções básicas dos registros de auditoria.

Limitações

As mensagens de registro têm um limite de tamanho de 100.000 bytes. Para mais informações, consulte Entrada de registro truncada.

Visibilidade e controle de acesso

Os registros de auditoria do BigQuery podem incluir informações que os usuários podem considerar confidenciais, como texto do SQL, definições de esquema e identificadores para recursos como tabelas e conjuntos de dados. Para informações sobre como gerenciar o acesso a essas informações, consulte a documentação de controle de acesso do Cloud Logging.

A seguir