Introdução aos registos de auditoria no BigQuery

Os registos são registos de texto gerados em resposta a eventos ou ações específicos. Por exemplo, o BigQuery cria entradas de registo para ações como criar ou eliminar uma tabela, comprar slots ou executar uma tarefa de carregamento.

Trusted Cloud by S3NS também escreve registos, incluindo registos de auditoria que fornecem estatísticas sobre preocupações operacionais relacionadas com a sua utilização dos serviços Trusted Cloud . Para mais informações sobre como o Trusted Cloud processa o registo, consulte a documentação do Cloud Logging e a vista geral dos registos de auditoria do Cloud.

Registos de auditoria vs. vistas do INFORMATION_SCHEMA

Os seus Trusted Cloud projetos contêm registos de auditoria apenas para os recursos que estão diretamente no Trusted Cloud projeto. Outros Trusted Cloud recursos, como pastas, organizações e contas de faturação, contêm os seus próprios registos de auditoria.

Os registos de auditoria ajudam a responder à pergunta "Quem fez o quê, onde e quando?" nos seus Trusted Cloud recursos. Os registos de auditoria são a fonte definitiva de informações sobre a atividade do sistema por utilizador e padrões de acesso, e devem ser a sua fonte principal para questões de auditoria ou segurança.

As visualizações INFORMATION_SCHEMA no BigQuery são outra origem de estatísticas que pode usar juntamente com métricas e registos. Estas vistas contêm metadados sobre tarefas, conjuntos de dados, tabelas e outras entidades do BigQuery. Por exemplo, pode obter metadados em tempo real sobre as tarefas do BigQuery executadas durante um período especificado. Em seguida, pode agrupar ou filtrar os resultados por projeto, utilizador, tabelas referenciadas e outras dimensões.

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

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

Os registos de auditoria do BigQuery contêm entradas de registo para chamadas API, mas não descrevem o impacto das chamadas API. Um subconjunto de chamadas da API cria tarefas (como consultas e carregamentos) cujas informações são captadas por visualizações.INFORMATION_SCHEMA Por exemplo, pode encontrar informações sobre a hora e as vagas que são usadas por uma consulta específica nas vistas INFORMATION_SCHEMA, mas não nos registos de auditoria.

Para obter estatísticas sobre o desempenho das suas cargas de trabalho do BigQuery em particular, consulte os metadados de tarefas, os metadados de streaming e os metadados de reservas.

Para mais informações sobre os tipos de registos de auditoria que os Trusted Cloud serviços escrevem, consulte Tipos de registos de auditoria.

Formato do registo de auditoria

Os serviçosTrusted Cloud escrevem registos de auditoria num formato JSON estruturado. O tipo de dados base para as entradas de registo Trusted Cloud é a estrutura LogEntry. Esta estrutura contém o nome do registo, o recurso que gerou a entrada do registo, a indicação de tempo (UTC) e outras informações básicas.

Os registos incluem detalhes do evento registado num subcampo denominado campo de carga útil. Para os registos de auditoria, o campo de carga útil chama-se 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 registo AuditLog.

Para operações em conjuntos de dados, tabelas e tarefas, o BigQuery escreve registos de auditoria em dois formatos diferentes, embora ambos os formatos partilhem o tipo base AuditLog.

O formato mais antigo inclui os seguintes campos e valores:

  • O valor do campo resource.type é bigquery_resource.
  • O BigQuery escreve os detalhes sobre uma operação no campo protoPayload.serviceData. O valor deste campo usa a estrutura de registo 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 registo sobre tarefas, enquanto o recurso bigquery_dataset tem entradas de registo sobre armazenamento.
  • O BigQuery escreve os detalhes sobre uma operação no campo protoPayload.metadata. O valor deste campo usa a estrutura BigQueryAuditMetadata.

Recomendamos que consuma os registos no formato mais recente. Para mais informações, consulte o guia de migração dos registos de auditoria.

Segue-se um exemplo abreviado de uma entrada de registo que mostra uma operação falhada:

{
  "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. Pode encontrar as definições dos campos na API BigQuery Reservation. Para mais informações, consulte o artigo Monitorizar reservas do BigQuery.

Para uma compreensão mais detalhada do formato do registo de auditoria, consulte o artigo Compreender os registos de auditoria.

Limitações

As mensagens de registo têm um limite de tamanho de 100 000 bytes. Para mais informações, consulte o artigo Entrada de registo truncada.

Visibilidade e controlo de acesso

Os registos de auditoria do BigQuery podem incluir informações que os utilizadores podem considerar confidenciais, como texto SQL, definições de esquemas e identificadores de recursos, como tabelas e conjuntos de dados. Para ver informações sobre como gerir o acesso a estas informações, consulte a documentação de controlo de acesso do Cloud Logging.

O que se segue?