Geração de registros de auditoria do Spanner Omni

O Spanner Omni grava registros de auditoria que registram atividades administrativas e acessos a dados nas suas implantações do Spanner Omni.

Os registros de auditoria ajudam você a responder "quem fez o quê, onde e quando?". Use registros de auditoria para ajudar as entidades de segurança, auditoria e compliance a monitorar seus dados e sistemas do Spanner Omni em busca de possíveis vulnerabilidades ou uso externo indevido de dados.

Antes de começar

Configure sua implantação do Spanner Omni com criptografia TLS ou TLS mútua (mTLS). Se você criar uma implantação sem criptografia TLS ou mTLS, os registros de auditoria não serão gerados. Para instruções sobre como criar um implantação com criptografia TLS ou mTLS, consulte o seguinte:

Tipos de registros de auditoria

O Spanner Omni é compatível com os seguintes tipos de registros de auditoria.

Registros de auditoria de atividade do administrador

Os registros de auditoria de atividade do administrador registram chamadas de API que modificam a configuração ou os metadados da sua implantação. Por exemplo, o Spanner Omni grava registros de auditoria de atividade do administrador quando um usuário cria um banco de dados.

Os registros de auditoria de atividade do administrador são gerados por padrão para implantações configuradas com criptografia TLS e mTLS. Não é possível configurar, excluir ou desativar esses registros.

Para uma lista de métodos que gravam registros de auditoria de atividades do administrador, consulte Métodos por tipo de permissão.

Registros de auditoria de acesso a dados

Os registros de auditoria de acesso a dados gravam chamadas de API que leem a configuração ou os metadados da sua implantação, além de chamadas de API que criam, modificam ou leem dados do usuário. Por exemplo, o Spanner Omni grava registros de auditoria de acesso a dados quando um usuário descreve um banco de dados, executa uma consulta SQL ou uma instrução de linguagem de manipulação de dados (DML).

Por serem grandes, os registros de auditoria de acesso a dados estão desativados por padrão. Para registrar eventos de acesso aos dados, ative e configure-os explicitamente. Os registros de auditoria de acesso a dados ajudam o Suporte do Google a resolver problemas. Por isso, recomendamos que você os ative.

Para instruções sobre como configurar esses registros, consulte Configurar registros de auditoria de acesso a dados. Para conferir uma lista de métodos que gravam registros de auditoria de acesso a dados, consulte Métodos por tipo de permissão.

Registros de auditoria de evento do sistema

Os registros de auditoria de eventos do sistema registram quando o sistema modifica a configuração dos recursos do Spanner Omni sem ação direta do usuário. Por exemplo, o Spanner Omni grava um registro de auditoria de eventos do sistema quando o sistema otimiza automaticamente um banco de dados recém-restaurado ou cria um backup programado.

Os registros de auditoria de eventos do sistema são gerados por padrão para implantações configuradas com criptografia TLS e mTLS. Não é possível configurar, excluir ou desativar esses registros.

Para mais informações sobre os eventos do sistema que geram esses registros, consulte Eventos do sistema.

Configure os registros de auditoria de acesso a dados

Para ativar os registros de auditoria de acesso a dados, configure a política do Identity and Access Management (IAM) para sua implantação usando a CLI do Spanner Omni ou a API. É possível ativar a geração de registros para tipos específicos de permissão e isentar usuários específicos de serem registrados.

Permissões necessárias

Para configurar os registros de auditoria de acesso a dados, é necessário ter a permissão spanner.instances.setIamPolicy.

Para ver as configurações registro de auditoria de acesso a dados, você precisa da permissão spanner.instances.getIamPolicy.

Tipos de permissão

Os métodos de API verificam as permissões do IAM, e cada permissão tem um tipo associado. Ao configurar os registros de auditoria de acesso a dados, especifique quais tipos de permissão registrar. Os tipos de permissão são categorizados da seguinte forma:

Tipos de permissão de acesso aos dados:

  • ADMIN_READ: registra métodos de API que leem metadados ou informações de configuração. Por exemplo, descrevendo um banco de dados.
  • DATA_READ: registra métodos de API que leem dados do usuário. Por exemplo, executar uma consulta SQL.
  • DATA_WRITE: registra métodos de API que gravam dados do usuário. Por exemplo, executar uma instrução DML.

Tipo de permissão de atividade do administrador:

  • ADMIN_WRITE: verificado para métodos de API que gravam metadados ou informações de configuração (como a criação de um banco de dados). Eles geram registros de auditoria de atividades do administrador e não podem ser configurados.

Para uma explicação detalhada dos tipos de permissão, consulte Tipos de permissão na documentação dos Registros de auditoria do Cloud.

Configurar usando a CLI do Spanner Omni

Para configurar os registros de auditoria de acesso a dados usando a CLI do Spanner Omni, crie um arquivo de política JSON que liste os tipos de registros a serem ativados e os membros isentos e aplique a política.

  1. Crie um arquivo de política chamado policy.json:

    {
      "auditConfigs": [
        {
          "auditLogConfigs": [
            {
              "logType": "ADMIN_READ",
              "exemptedMembers": [
                "USER_NAME"
              ]
            },
            {
              "logType": "DATA_WRITE"
            },
            {
              "logType": "DATA_READ"
            }
          ],
          "service": "spanner.googleapis.com"
        }
      ]
    }
    
  2. Aplique a política usando o comando spanner instances set-iam-policy:

    spanner instances set-iam-policy default policy.json
    

Para conferir a configuração atual do registro de auditoria de acesso a dados, execute o seguinte comando:

spanner instances get-iam-policy default

Para mais exemplos de casos de uso comuns de configuração, consulte Configurar registros de auditoria de acesso a dados na documentação dos registros de auditoria do Cloud.

Eventos do sistema

O Spanner Omni gera registros de auditoria de eventos do sistema para a maioria dos eventos do sistema compatíveis com a versão gerenciada do Spanner. Para mais informações, consulte Eventos do sistema na documentação do Spanner.

O Spanner Omni é compatível com os eventos do sistema CreateScheduledBackup e OptimizeRestoredDatabase. No entanto, o Spanner Omni não é compatível com o evento do sistema AutoscaleInstance porque o escalonamento automático não está disponível no Spanner Omni.

Arquivos e retenção de registros de auditoria

O Spanner Omni grava registros de auditoria no sistema de arquivos local dos servidores do Spanner Omni.

Encontre os arquivos de registro de auditoria usando o seguinte caminho e convenção de nomenclatura: BASE_DIR/logs/PROCESS/audit.log.BUCKET.TIMESTAMP.PROCESS_ID

  • BASE_DIR: o diretório base especificado ao iniciar a implantação do Spanner Omni. Para implantações do Kubernetes, o padrão é /spanner.

  • PROCESS: o Spanner Omni executa vários processos por servidor, como server, zone_services, zonal_zone_services, zonal_server e base_services. Os registros de auditoria são gravados no diretório correspondente ao processo que os gerou.

  • BUCKET: os registros de auditoria de atividade do administrador e de eventos do sistema são gravados no bucket required, enquanto os registros de auditoria de acesso a dados são gravados no bucket default.

  • TIMESTAMP: o carimbo de data/hora em que o arquivo foi criado.

  • PROCESS_ID: o ID do processo que grava o registro de auditoria.

O Spanner Omni cria um novo arquivo de registro de auditoria quando o arquivo atual excede 50 MiB ou quando um processo do servidor é reiniciado. Ele também mantém automaticamente um symlink de BASE_DIR/logs/PROCESS/audit.log.BUCKET para o arquivo de registro de auditoria que está sendo gravado.

O acesso aos arquivos de registro de auditoria local é controlado pelas listas de controle de acesso (ACLs) do sistema de arquivos. Qualquer pessoa com permissão para fazer login no servidor e acessar esses arquivos pode visualizar os registros de auditoria.

Recomendamos restringir o acesso às VMs do Spanner Omni (por exemplo, restringindo o acesso SSH e configurando ACLs do sistema de arquivos) para que apenas pessoal autorizado possa ver os registros. Para armazenamento de longo prazo, auditoria e compliance, use um agente de geração de registros (como o Fluentd) para coletar e exportar os registros de auditoria para um sistema de geração de registros externo, como AWS CloudWatch, Grafana Loki, Elasticsearch, Datadog, Splunk ou Cloud Monitoring.

Retenção de arquivos

O Spanner Omni aplica políticas de retenção com base no tamanho e na idade para arquivos de registro de auditoria locais:

  • Limite de tamanho: os arquivos de registro de auditoria são retidos até que o uso total do disco exceda 1 GB. Se um disco separado for usado para o diretório de registros, os arquivos de registro de auditoria vão receber uma cota de 25% do espaço total nesse disco.

  • Limite de idade: os arquivos de registro de auditoria são retidos por até 14 dias, desde que o limite de tamanho não seja excedido.

Quando um dos limites é atingido, o Spanner Omni exclui primeiro os arquivos de registro mais antigos. Se precisar manter os registros de auditoria por mais de 14 dias, exporte-os para um sistema de geração de registros externo.

Estrutura da entrada de registro de auditoria

As entradas de registro de auditoria do Spanner Omni são formatadas como JSON e usam a mesma definição estrutural do Spanner. Para mais informações, consulte Estrutura de entrada de registro de auditoria na documentação dos Registros de auditoria do Cloud.

Nome do registro

Ao contrário da versão gerenciada multilocatária do Spanner, o Spanner Omni é executado como uma implantação de locatário único em servidores dedicados. Como não há outros locatários ou projetos nesses servidores, todas as entradas de registro de auditoria usam o identificador do projeto default.

projects/default/logs/cloudaudit.googleapis.com/activity
projects/default/logs/cloudaudit.googleapis.com/data_access
projects/default/logs/cloudaudit.googleapis.com/system_event

Identidades dos autores da chamada

Os registros de auditoria gravam a identidade do usuário que realizou a operação registrada. A identidade do autor da chamada é armazenada no campo AuthenticationInfo do objeto AuditLog.

No Spanner Omni, a identidade do autor da chamada é o nome de usuário do usuário autenticado que fez a chamada de API. Para informações sobre como criar e gerenciar usuários, consulte Autenticação e autorização.

Endereço IP do autor da chamada

O Spanner Omni não é compatível com o registro do endereço IP do autor da chamada em registros de auditoria.

Métodos por tipo de permissão

Quando você chama um método de API, o Spanner Omni gera um registro de auditoria com base no tipo de permissão necessário para executar o método. Os métodos que exigem permissões ADMIN_READ, DATA_READ ou DATA_WRITE geram registros de auditoria de acesso a dados, enquanto os métodos que exigem permissões ADMIN_WRITE geram registros de auditoria de atividade do administrador.

O Spanner Omni é compatível com a maioria dos métodos da API Cloud Spanner. Para a classificação de registro de auditoria de métodos compartilhados pelo Spanner e pelo Spanner Omni, consulte Métodos por tipo de permissão na documentação do Spanner.

O Spanner Omni também apresenta métodos de API exclusivos que geram registros de auditoria. Os métodos marcados como operações de longa duração (LROs) geralmente geram duas entradas de registro de auditoria: uma quando a operação começa e outra quando ela termina. Para mais informações, consulte Operações de longa duração na documentação dos registros de auditoria do Cloud.

Tipo de permissão Métodos
ADMIN_READ google.spanner.omni.v1.OmniAdmin.GetLocation
google.spanner.omni.v1.OmniAdmin.ListLocation
google.spanner.omni.v1.OmniAdmin.GetLocationDistance
google.spanner.omni.v1.OmniAdmin.ListLocationDistance
google.spanner.omni.v1.OmniAdmin.GetZone
google.spanner.omni.v1.OmniAdmin.ListZones
google.spanner.omni.v1.OmniAdmin.GetServer
google.spanner.omni.v1.OmniAdmin.ListServers
google.spanner.omni.v1.OmniAdmin.GetDeployment
google.spanner.omni.v1.OmniAdmin.ListBackupDescriptors
google.spanner.omni.v1.OmniAdmin.GetExternalStorage
google.spanner.omni.v1.OmniAdmin.ListExternalStorages
google.spanner.omni.v1.OmniAdmin.GetIamPolicy
google.spanner.omni.v1.UsersService.GetUser
google.spanner.omni.v1.UsersService.ListUsers
google.spanner.omni.v1.UsersService.GetRole
google.spanner.omni.v1.UsersService.ListRoles
ADMIN_WRITE google.spanner.omni.v1.OmniAdmin.CreateLocation
google.spanner.omni.v1.OmniAdmin.DeleteLocation
google.spanner.omni.v1.OmniAdmin.CreateLocationDistance
google.spanner.omni.v1.OmniAdmin.UpdateLocationDistance
google.spanner.omni.v1.OmniAdmin.DeleteLocationDistance
google.spanner.omni.v1.OmniAdmin.CreateZone
google.spanner.omni.v1.OmniAdmin.DeleteZone
google.spanner.omni.v1.OmniAdmin.CreateServer
google.spanner.omni.v1.OmniAdmin.DeleteServer
google.spanner.omni.v1.OmniAdmin.CreateExternalStorage
google.spanner.omni.v1.OmniAdmin.DeleteExternalStorage
google.spanner.omni.v1.OmniAdmin.SetIamPolicy
google.spanner.omni.v1.OmniAdmin.ImportBackup (LRO)
google.spanner.omni.v1.UsersService.CreateUser
google.spanner.omni.v1.UsersService.DeleteUser
google.spanner.omni.v1.UsersService.UpdateUser
DATA_READ google.spanner.omni.v1.ImportExportService.ExportDatabase (LRO)
DATA_WRITE google.spanner.omni.v1.ImportExportService.ImportDatabase (LRO)

Métodos que não geram registros de auditoria

O Spanner Omni exclui os mesmos métodos do registro de auditoria que o Spanner. Esses métodos são excluídos porque são de alto volume, envolvem custos significativos de geração e armazenamento de registros, têm baixo valor de auditoria ou porque outro registro de auditoria ou de plataforma já oferece cobertura do método. Para uma lista completa desses métodos excluídos, consulte Métodos isentos na documentação do Spanner.

Além disso, o método google.spanner.omni.v1.LoginService.Login não produz registros de auditoria porque precede as verificações de autenticação e autorização.

Duração do processamento

O campo de duração do processamento em um registro de auditoria registra a duração do processamento da API, como a duração da execução de uma consulta SQL, e não o atraso na gravação do registro de auditoria. Para mais informações, consulte Duração do processamento na documentação do Spanner.

Comparação com a versão gerenciada do Spanner

Embora o registro de auditoria no Spanner Omni compartilhe conceitos e formatação principais com o Spanner, há várias diferenças importantes em como os registros são armazenados, configurados e gerenciados.

diferenças

  • Destino do registro: o Spanner Omni grava registros de auditoria diretamente no sistema de arquivos local dos servidores do Spanner Omni, em vez de exportá-los para o Cloud Logging.

  • Configuração: no Spanner, você configura os registros de auditoria de acesso a dados no nível do projeto usando o console Google Cloud , a Google Cloud CLI ou a API Identity and Access Management. No Spanner Omni, você configura os registros de auditoria de acesso a dados usando a CLI ou a API do Spanner Omni.

  • Criptografia TLS e mTLS: o Spanner aplica a criptografia TLS por padrão, e ela não pode ser desativada. No Spanner Omni, se você optar por implantar sem criptografia TLS ou mTLS, os registros de auditoria não serão gerados.

  • Retenção: os registros de auditoria do Spanner são mantidos no Logging de acordo com as configurações de retenção do Logging. O Spanner Omni retém arquivos de registro de auditoria locais por até 14 dias ou até que os limites de tamanho do disco sejam atingidos. Ele depende de você para exportar os registros para um sistema externo para armazenamento de longo prazo.

Semelhanças

  • Formato do registro: os dois produtos gravam registros de auditoria no formato JSON seguindo a estrutura padrão Google Cloud AuditLog.

  • Configuração de acesso a dados: os dois produtos permitem ativar os registros de auditoria de acesso a dados de forma granular por tipo de permissão (ADMIN_READ, DATA_READ, DATA_WRITE) e oferecem suporte à isenção de usuários específicos da geração de registros.

A seguir