Despejo dos logs de auditoria do banco de dados
GaussDB(DWS) registra informações (logs de auditoria) sobre conexões e atividades do usuário em seu banco de dados. Com as informações, você pode monitorar o banco de dados para garantir a segurança e facilitar a solução de problemas de falhas e a localização de registros históricos de operação. Esses logs de auditoria são armazenados no banco de dados por padrão. Você também pode despejá-los no OBS para que os usuários responsáveis pelo monitoramento do banco de dados possam visualizar os logs de forma mais conveniente.
- Esta função não pode ser usada se o OBS não estiver disponível.
- Os dados podem ser alterados durante as especificações do cluster, adição ou exclusão de CN. É aconselhável desativar o despejo de log de auditoria durante essas operações.
- Depois que o despejo de log de auditoria for ativado, os logs de auditoria serão descartados se o tamanho dos logs de auditoria salvos exceder 1 GB. Isso pode causar resultados de consulta anormais. Tenha cuidado ao realizar esta operação.
- Se um nó CN estiver com defeito, os dados sobre o nó CN podem ser perdidos.
- O suporte de versão para a partição de diretório de despejo de log de auditoria é o seguinte:
- Para clusters de 8.1.3.x, apenas 8.1.3.322 e versões posteriores suportam esse recurso. Para clusters de 8.2.0.x, apenas 8.2.0.106 e versões posteriores suportam esse recurso. Por padrão, a partição de diretório de despejo de log de auditoria está ativada e não pode ser desativada.
- Para usar esse recurso em versões anteriores, entre em contato com o suporte técnico para atualizar seu cluster primeiro. Habilite manualmente esse recurso após a atualização.
Pré-requisitos
Depois que um cluster do GaussDB(DWS) é criado, você pode habilitar o despejo de log para que ele despeje logs de auditoria para o OBS. Antes de ativar o despejo de log de auditoria, certifique-se de que as seguintes condições sejam atendidas:
- Você criou um bucket do OBS para armazenar os logs de auditoria. Para obter detalhes, consulte "Gerenciamento de buckets > Criando um Bucket" no Guia de operação do console do Object Storage Service.
Ativar despejos de log de auditoria
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Na árvore de navegação à esquerda, clique em Clusters.
- Na lista de clusters, clique no nome do cluster para o qual você deseja habilitar o despejo de logs de auditoria. No painel de navegação, escolha Security.
- Na área Audit Settings, ative Audit Log Dump.
indica que a função está ativada. indica que a função está desativada.
Quando você habilita o despejo de log de auditoria para um projeto em uma região pela primeira vez, o sistema solicita que você crie uma agência denominada DWSAccessOBS. Depois que a agência é criada, GaussDB(DWS) pode despejar logs de auditoria para OBS.
Por padrão, apenas contas da Huawei Cloud ou usuários com permissões Security Administrator podem consultar e criar agências. Os usuários do IAM em uma conta não têm permissão para consultar ou criar agências por padrão. Entre em contato com um usuário com essa permissão e conclua a autorização na página atual.
Figura 1 Ativar despejos de log de auditoria- OBS Foreign Table: os logs de auditoria podem ser lidos usando tabelas estrangeiras do OBS durante o despejo. Os logs de auditoria são armazenados no formato CSV e compactados no formato GZ.
- OBS Bucket: nome do bucket do OBS usado para armazenar os dados do tópico. Se nenhum bucket do OBS estiver disponível, clique em View OBS Bucket para acessar o console do OBS e criar um. Para obter detalhes, consulte no Guia de operação do console do Object Storage Service.
- OBS Path: diretório definido pelo usuário no OBS para armazenar arquivos de auditoria. Diferentes níveis de diretório são separados por barras (/). O valor é uma cadeia de caracteres que contém de 1 a 50 caracteres, que não pode começar com uma barra (/). Se o caminho do OBS inserido não existir, o sistema criará um e despejará os dados nele.
- Dump Interval (Minute): intervalo baseado no qual o GaussDB(DWS) periodicamente despeja dados no OBS. O intervalo de valores é de 5 a 43.200. A unidade é minuto.
- Clique em Apply.
Se Configuration Status estiver Applying, o sistema salvará as configurações.
Quando o status muda para Synchronized, as configurações são salvas e têm efeito.
Modificar configurações de despejo de log de auditoria
Depois que o despejo de log de auditoria estiver habilitado, você poderá modificar as configurações de despejo, por exemplo, modificando o bucket do OBS, o caminho e o intervalo de despejo.
O procedimento é o seguinte:
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Na árvore de navegação à esquerda, clique em Clusters.
- Na lista de clusters, clique no nome do cluster para o qual você deseja modificar as configurações de despejo de log de auditoria. No painel de navegação, escolha Security.
- Na área Audit Settings, modifique as configurações do Audit Log Dump.
- Clique em Apply.
Se Configuration Status estiver Applying, o sistema salvará as configurações.
Quando o status muda para Synchronized, as configurações são salvas e têm efeito.
Exibir despejos de log de auditoria
Depois que o despejo de log de auditoria estiver ativado, você poderá exibir os logs de auditoria despejados no OBS.
O procedimento é o seguinte:
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Na árvore de navegação à esquerda, clique em Clusters.
- Na lista de clusters, clique no nome do cluster de destino para o qual você deseja exibir o histórico de despejo de log. No painel de navegação, escolha Security.
- Na área Audit Settings, clique em View Dump Record.
- Na caixa de diálogo Audit Log Dump Records, clique em View OBS Bucket. A página de console do OBS é exibida.
- Selecione o bucket e a pasta do OBS onde os logs estão armazenados para exibir os arquivos de log.
Você pode baixar e descompactar os arquivos para visualizar. Os campos dos arquivos de log de auditoria são descritos da seguinte forma:
Tabela 1 Campos do arquivo de log Campo
Tipo
Descrição
begintime
timestamp with time zone
Hora de início da operação
endtime
timestamp with time zone
Hora de fim da operação
operation_type
text
Tipo de operação. Para mais detalhes, consulte Tabela 2.
audit_type
text
Tipo de auditoria. Para mais detalhes, consulte Tabela 3.
result
text
Resultado da operação
username
text
Nome do usuário que executa a operação
database
text
Nome do banco de dados
client_conninfo
text
Informações de conexão do cliente, ou seja, gsql, JDBC ou ODBC.
object_name
text
Nome do objeto
command_text
text
Comando usado para realizar a operação
detail_info
text
Detalhes da operação
transaction_xid
text
ID da transação
query_id
text
ID da consulta
node_name
text
Nome do nó
thread_id
text
ID do thread
local_port
text
Porta local
remote_port
text
Porta remota
Tabela 2 Tipos de operação Tipo de operação
Descrição
audit_switch
Indica que as operações de ativação e desativação da função de log de auditoria são auditadas.
login_logout
Indica que as operações de logon e logoff do usuário são auditadas.
system
Indica que as operações de inicialização, desligamento e alternância de instância do sistema são auditadas.
sql_parse
Indica que as operações de análise da instrução SQL são auditadas.
user_lock
Indica que as operações de bloqueio e desbloqueio do usuário são auditadas.
grant_revoke
Indica que as operações de concessão e revogação de permissão do usuário são auditadas.
violation
Indica que as operações de violação de acesso do usuário são auditadas.
ddl
Indica que as operações DDL são auditadas. As operações DDL são controladas em uma granularidade fina com base em objetos de operação. Portanto, audit_system_object é usado para controlar os objetos cujas operações DDL devem ser auditadas. (A função de auditoria entra em vigor desde que audit_system_object esteja configurado, não importa se ddl está definido.)
dml
Indica que as operações DML são auditadas.
select
Indica que as operações SELECT são auditadas.
internal_event
Indica que as operações de incidentes internos são auditadas.
user_func
Indica que as operações relacionadas a funções definidas pelo usuário, procedimentos armazenados e blocos anônimos são auditadas.
special_func
Indica que operações de invocação de funções especiais são auditadas. As funções especiais incluem pg_terminate_backend e pg_cancel_backend.
copy
Indica que as operações COPY são auditadas.
set
Indica que as operações SET são auditadas.
transaction
Indica que as operações de transação são auditadas.
vacuum
Indica que as operações VACUUM são auditadas.
analyze
Indica que as operações ANALYZE são auditadas.
cursor
Indica que as operações de cursor são auditadas.
anonymous_block
Indica que as operações de blocos anônimos são auditadas.
explain
Indica que as operações EXPLAIN são auditadas.
show
Indica que as operações SHOW são auditadas.
lock_table
Indica que as operações de bloqueio de tabela são auditadas.
comment
Indica que as operações COMMENT são auditadas.
preparestmt
Indica que as operações PREPARE, EXECUTE e DEALLOCATE são auditadas.
cluster
Indica que as operações CLUSTER são auditadas.
constraints
Indica que as operações CONSTRAINTS são auditadas.
checkpoint
Indica que as operações CHECKPOINT são auditadas.
barrier
Indica que as operações BARRIER são auditadas.
cleanconn
Indica que as operações CLEAN CONNECTION são auditadas.
seclabel
Indica que as operações de rótulo de segurança são auditadas.
notify
Indica que as operações de notificação são auditadas.
load
Indica que as operações de carregamento são auditadas.
Tabela 3 Parâmetros de audit_type Parâmetro
Descrição
audit_open/audit_close
Indica que o tipo de auditoria é operações que ativam ou desativam logs de auditoria.
user_login/user_logout
Indica que o tipo de auditoria é operações e usuários com logon/logoff bem-sucedido.
system_start/system_stop/system_recover/system_switch
Indica que o tipo de auditoria é inicialização, desligamento e alternância de instância do sistema.
sql_wait/sql_parse
Indica que o tipo de auditoria é análise de instrução SQL.
lock_user/unlock_user
Indica que o tipo de auditoria é bloqueio e desbloqueio bem-sucedidos do usuário.
grant_role/revoke__role
Indica que o tipo de auditoria é permissão de usuário concedendo e revogando.
user_violation
Indica que o tipo de auditoria é operações de acesso de usuário não autorizado.
ddl_database_object
Indica que as operações DDL bem-sucedidas são auditadas. As operações DDL são controladas em uma granularidade fina com base em objetos de operação. Portanto, audit_system_object é usado para controlar os objetos cujas operações DDL devem ser auditadas. (A função de auditoria entra em vigor desde que audit_system_object esteja configurado, não importa se ddl está definido.)
Por exemplo, ddl_sequence indica que o tipo de auditoria é operações relacionadas à sequência.
dml_action_insert/dml_action_delete/dml_action_update/dml_action_merge/dml_action_select
Indica que o tipo de auditoria é operações DML como INSERT, DELETE, UPDATE e MERGE.
internal_event
Indica que o tipo de auditoria é eventos internos.
user_func
Indica que o tipo de auditoria é funções definidas pelo usuário, procedimentos armazenados ou operações de bloco anônimas.
special_func
Indica que o tipo de auditoria é invocação de função especial. As funções especiais incluem pg_terminate_backend e pg_cancel_backend.
copy_to/copy_from
Indica que o tipo de auditoria é operações COPY.
set_parameter
Indica que o tipo de auditoria é operações SET.
trans_begin/trans_commit/trans_prepare/trans_rollback_to/trans_release/trans_savepoint/trans_commit_prepare/trans_rollback_prepare/trans_rollback
Indica que o tipo de auditoria é operações relacionadas à transação.
vacuum/vacuum_full/vacuum_merge
Indica que o tipo de auditoria é operações VACUUM.
analyze/analyze_verify
Indica que o tipo de auditoria é operações ANALYZE.
cursor_declare/cursor_move/cursor_fetch/cursor_close
Indica que o tipo de auditoria é operações relacionadas ao cursor.
codeblock_execute
Indica que o tipo de auditoria é de blocos anônimos.
explain
Indica que o tipo de auditoria é operações EXPLAIN.
show
Indica que o tipo de auditoria é operações SHOW.
lock_table
Indica que o tipo de auditoria é operações de bloqueio de tabela.
comment
Indica que o tipo de auditoria é operações COMMENT.
prepare/execute/deallocate
Indica que o tipo de auditoria é operações PREPARE, EXECUTE ou DEALLOCATE.
cluster
Indica que o tipo de auditoria é operações CLUSTER.
constraints
Indica que o tipo de auditoria é operações CONSTRAINTS.
checkpoint
Indica que o tipo de auditoria é operações CHECKPOINT.
barrier
Indica que o tipo de auditoria é operações BARRIER.
cleanconn
Indica que o tipo de auditoria é operações CLEAN CONNECTION.
seclabel
Indica que o tipo de auditoria é operações de rótulo de segurança.
notify
Indica que o tipo de auditoria é operações de notificação.
load
Indica que o tipo de auditoria está carregando operações.
Desativar despejos de log de auditoria
Você pode desativar despejos de log de auditoria se você não quiser despejar logs de auditoria para OBS.
O procedimento é o seguinte:
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Na árvore de navegação à esquerda, clique em Clusters.
- Na lista de clusters, clique no nome do cluster para o qual você deseja desativar despejo de log de auditoria. No painel de navegação, escolha Security.
- Na área Audit Settings, desabilite o despejo de log de auditoria.
indica que a função está desativada.
- Clique em Apply.
Se Configuration Status estiver Applying, o sistema salvará as configurações.
Quando o status muda para Synchronized, as configurações são salvas e têm efeito.