Como utilizar a auditoria avançada em um cluster de banco de dados do Amazon Aurora MySQL - Amazon Aurora

Como utilizar a auditoria avançada em um cluster de banco de dados do Amazon Aurora MySQL

Você pode usar o recurso de Auditoria avançada de alta performance no Amazon Aurora MySQL para realizar a auditoria da atividade do banco de dados. Para isso, habilite a coleta de logs de auditoria definindo vários parâmetros do cluster de banco de dados. Com a Auditoria avançada habilitada, você pode usá-la para registrar qualquer combinação de eventos compatíveis.

Você pode visualizar ou baixar os logs de auditoria para revisar as informações de auditoria de uma instância de banco de dados de cada vez. Para fazer isso, você pode usar os procedimentos no Monitorar arquivos de log do Amazon Aurora.

dica

Para um cluster de banco de dados do Aurora contendo várias instâncias de banco de dados, talvez seja mais conveniente examinar os logs de auditoria de todas as instâncias no cluster. Para fazer isso, você pode usar o CloudWatch Logs. Você pode ativar uma configuração no nível do cluster para publicar os dados do log de auditoria do Aurora MySQL em um grupo de logs no CloudWatch. Em seguida, você pode visualizar, filtrar e pesquisar os logs de auditoria por meio da interface do CloudWatch. Para obter mais informações, consultePublicar logs do Amazon Aurora MySQL no Amazon CloudWatch Logs

Como habilitar a Auditoria avançada

Use os parâmetros descritos nesta seção para habilitar e configurar a Auditoria avançada para seu cluster de banco de dados.

Use o parâmetro server_audit_logging para habilitar ou desabilitar auditoria avançada.

Usar o parâmetro server_audit_events para especificar quais eventos devem ser registrados em log.

Use os parâmetros server_audit_incl_users e server_audit_excl_users para especificar quem será auditado. Por padrão, todos os usuários são auditados. Para obter detalhes sobre como esses parâmetros funcionam quando um ou ambos são deixados em branco, ou os mesmos nomes de usuário são especificados em ambos, consulte server_audit_incl_users e server_audit_excl_users.

Configure a Auditoria avançada, definindo esses parâmetros no parameter group usado por seu cluster de banco de dados. Você pode usar o procedimento mostrado em Modificar parâmetros em um grupo de parâmetros de banco de dados no Amazon Aurora para modificar os parâmetros de cluster de banco de dados usando o AWS Management Console. Você pode usar o comando da AWS CLI modify-db-cluster-parameter-group ou o comando da API do Amazon RDS ModifyDBClusterParameterGroup para modificar parâmetros de cluster de banco de dados de forma programática.

A modificação desses parâmetros não requer que o cluster do banco de dados seja reiniciado quando o grupo de parâmetros já está associado ao cluster. Quando você associa o grupo de parâmetros ao cluster pela primeira vez, é necessária uma reinicialização do cluster.

server_audit_logging

Ativa ou desativa a Auditoria avançada. Este parâmetro é OFF (Desligado) por padrão. Ajuste-o para ON (Ligado) para ativar a auditoria avançada.

Nenhum dado de auditoria aparece nos logs, a menos que você também defina um ou mais tipos de eventos para auditoria usando o parâmetro server_audit_events.

Para confirmar se os dados de auditoria são registrados em log para uma instância de banco de dados, verifique se alguns arquivos de log dessa instância têm nomes do formulário audit/audit.log.other_identifying_information. Para ver os nomes dos arquivos de logs, siga o procedimento no Como visualizar e listar arquivos de log do banco de dados.

server_audit_events

Contém a lista de eventos delimitada por vírgulas a registrar. Os eventos devem ser especificados em letras maiúsculas, e não pode haver espaço em branco entre os elementos da lista, por exemplo: CONNECT,QUERY_DDL. O parâmetro padrão é uma string vazia.

Você pode registrar qualquer combinação dos seguintes eventos:

  • CONNECT – Registra conexões bem-sucedidas e falhas, além de desconexões. Este evento inclui informações do usuário.

  • QUERY – Registra todas as consultas em texto simples, incluindo aquelas que falham devido a sintaxe ou erros de permissão.

    dica

    Com esse tipo de evento ativado, os dados de auditoria incluem informações sobre o monitoramento contínuo e as informações de verificação de integridade que o Aurora faz automaticamente. Se você estiver interessado apenas em determinados tipos de operações, poderá usar os tipos mais específicos de eventos. Você também pode usar a interface do CloudWatch para pesquisar nos logs eventos relacionados a bancos de dados, tabelas ou usuários específicos.

  • QUERY_DCL – Semelhante ao evento de QUERY, mas retorna apenas as consultas de linguagem de controle de dados (DCL) (GRANT, REVOKE, etc.).

  • QUERY_DDL – Semelhante ao evento de QUERY, mas retorna apenas as consultas de linguagem de definição de dados (DDL) (CREATE, ALTER, etc.).

  • QUERY_DML – Semelhante ao evento de QUERY, mas retorna apenas as consultas de linguagem de manipulação de dados (DML) (INSERT, UPDATE, etc. e também SELECT).

  • TABLE – Registra as tabelas que foram afetadas pela execução da consulta.

nota

Não há nenhum filtro no Aurora que exclua determinadas consultas dos logs de auditoria. Para excluir consultas SELECT, exclua todas as instruções DML.

Se determinado usuário estiver relatando essas consultas SELECT internas nos logs de auditoria, você poderá excluí-lo definindo o parâmetro do cluster de banco de dados server_audit_excl_users. Entretanto, se esse usuário também for usado em outras atividades e não puder ser omitido, não haverá outra opção para excluir consultas SELECT.

server_audit_incl_users

Contém a lista de nomes de usuário delimitada por vírgulas para os usuários cuja atividade foi registrada. Não pode haver espaços em branco entre os elementos da lista, por exemplo: user_3,user_4. O parâmetro padrão é uma string vazia. O tamanho máximo é de 1024 caracteres. Os nomes de usuários especificados devem corresponder aos valores correspondentes na coluna User da tabela mysql.user. Para obter mais informações sobre nomes de usuário, consulte Nomes de usuário e senhas de contas na documentação do MySQL.

Se server_audit_incl_users e server_audit_excl_users estiverem vazios (por padrão), todos os usuários serão auditados.

Se você adicionar usuários a server_audit_incl_users e deixar server_audit_excl_users vazio, somente esses usuários serão auditados.

Se você adicionar usuários a server_audit_excl_users e deixar server_audit_incl_users vazio, somente esses usuários serão auditados, exceto os listados em server_audit_excl_users.

Se você adicionar os mesmos usuários a server_audit_excl_users e server_audit_incl_users, esses usuários serão auditados. Quando o mesmo usuário estiver listado em ambas as configurações, é dada prioridade mais alta a server_audit_incl_users.

Os eventos de conexão e de desconexão não são afetados por esta variável; eles serão sempre registrados, se assim for especificado. O usuário é registrado em log, mesmo que ele já esteja especificado no parâmetro server_audit_excl_users, pois server_audit_incl_users tem uma prioridade maior.

server_audit_excl_users

Contém a lista de nomes de usuário delimitada por vírgulas para os usuários cuja atividade não foi registrada. Não pode haver espaços em branco entre os elementos da lista, por exemplo: rdsadmin,user_1,user_2. O parâmetro padrão é uma string vazia. O tamanho máximo é de 1024 caracteres. Os nomes de usuários especificados devem corresponder aos valores correspondentes na coluna User da tabela mysql.user. Para obter mais informações sobre nomes de usuário, consulte Nomes de usuário e senhas de contas na documentação do MySQL.

Se server_audit_incl_users e server_audit_excl_users estiverem vazios (por padrão), todos os usuários serão auditados.

Se você adicionar usuários a server_audit_excl_users e deixar server_audit_incl_users vazio, somente os usuários listados em server_audit_excl_users não serão auditados, enquanto todos os outros usuários serão.

Se você adicionar os mesmos usuários a server_audit_excl_users e server_audit_incl_users, esses usuários serão auditados. Quando o mesmo usuário estiver listado em ambas as configurações, é dada prioridade mais alta a server_audit_incl_users.

Os eventos de conexão e de desconexão não são afetados por esta variável; eles serão sempre registrados, se assim for especificado. Um usuário é registrado caso também esteja especificado no parâmetro server_audit_incl_users, porque essa configuração tem prioridade maior do que server_audit_excl_users.

Visualizar logs de auditoria

Você pode visualizar e baixar os logs de auditoria usando o console. Na página Databases (Bancos de dados), escolha a instância de banco de dados para exibir seus detalhes e role até a seção Logs. Os logs de auditoria produzidos pelo recurso de auditoria avançada têm nomes do formulário audit/audit.log.other_identifying_information.

Para baixar um arquivo de log, localize o arquivo na seção Logs e escolha Download (Fazer download).

Você também pode obter uma lista dos arquivos de log usando o comando describe-db-log-files da AWS CLI. Você pode baixar o conteúdo de um arquivo de log usando o comando download-db-log-file-portion da AWS CLI. Para obter mais informações, consulte Como visualizar e listar arquivos de log do banco de dados e Como baixar um arquivo de log de banco de dados.

Detalhes do log de auditoria

Os arquivos de log são representados como arquivos de variáveis separadas por vírgula (CSV) no formato UTF-8. As consultas também são colocadas entre aspas simples (').

O log de auditoria é armazenado separadamente no armazenamento local de cada instância do Aurora MySQL. Cada instância distribui gravações em quatro arquivos de log por vez. O tamanho máximo de um arquivo de log é de 100 MB. Quando esse limite não configurável é atingido, o Aurora troca os arquivos e gera um novo arquivo.

dica

As entradas do log não estão em ordem sequencial. Para ordenar as entradas, use o valor do carimbo de data/hora. Para ver os eventos mais recentes, talvez seja preciso analisar todos os arquivos de log. Para obter mais flexibilidade na classificação e pesquisa dos dados de log, ative a configuração para carregar os logs de auditoria no CloudWatch e visualizá-los usando a interface do CloudWatch.

Para visualizar dados de auditoria com mais tipos de campos e com saída no formato JSON, você também pode usar o recurso Database Activity Streams. Para obter mais informações, consulteMonitorar o Amazon Aurora com o recurso Database Activity Streams

Os arquivos de log de auditoria incluem as seguintes informações delimitadas por vírgulas nas linhas, na ordem especificada:

Campo Descrição

timestamp

O time stamp do Unix para o evento registrado com precisão de microssegundo.

serverhost

O nome da instância em que o evento foi registrado.

username

O nome de usuário conectado.

host

O host no qual o usuário está conectado.

connectionid

O número de ID da conexão para a operação registrada.

queryid

O número do ID de consulta, que pode ser usado para encontrar os eventos relacionais da tabela e consultas relacionadas. Para eventos TABLE, são adicionadas várias linhas.

operação

O tipo de ação gravado. Os valores possíveis são: CONNECT, QUERY, READ, WRITE, CREATE, ALTER, RENAME e DROP.

banco de dados

O banco de dados ativo, conforme definido pelo comando USE.

objeto

Para eventos de QUERY, esse valor indica a consulta executada pelo banco de dados. Para eventos de TABLE, indica o nome da tabela.

retcode

O código de retorno da operação registrada.