Como usar logs para rastrear a atividade no meu cluster de banco de dados do Amazon Redshift?
Quero auditar o banco de dados no meu cluster do Amazon Redshift.
Breve descrição
O Amazon Redshift oferece três opções de registro em log:
- Registro em log de auditoria: armazenados em buckets do Amazon Simple Storage Service (Amazon S3)
- Tabelas STL/SYS: armazenados em cada nó do cluster
- AWS CloudTrail: armazenados em buckets do Amazon S3
O registro em log de auditoria e as tabelas STL/SYS registram atividades no nível do banco de dados, como os usuários que estão conectados e quando estão conectados. As tabelas também registram as atividades SQL que os usuários realizaram e quando as realizaram. O CloudTrail rastreia a atividade do usuário no nível do serviço.
Observação: para usar tabelas externas para visualizar logs, use o Amazon Redshift Spectrum. Para obter mais informações, consulte Analisar logs de auditoria de banco de dados para segurança e conformidade usando o Amazon Redshift Spectrum.
Resolução
Registro em log de auditoria e tabelas STL/SYS
A tabela a seguir compara o registro em log de auditoria e as tabelas STL/SYS. Escolha a opção de registro em log apropriada para seu caso de uso.
Registro em log de auditoria | Tabelas STL/SYS |
Use o console do Amazon Redshift para ativar o registro em log de auditoria ou a AWS Command Line Interface (AWS CLI) e a API do Amazon Redshift. | As tabelas STL/SYS estão automaticamente disponíveis em cada nó no cluster do data warehouse. |
Os arquivos de log de auditoria são armazenados indefinidamente, a menos que você defina as regras do ciclo de vida do Amazon S3 para arquivar ou excluir arquivos automaticamente. Para obter mais informações, consulte Gerenciando seu ciclo de vida de armazenamento. | O histórico de logs é armazenado por dois a cinco dias, dependendo do uso do log e do espaço disponível em disco. Para estender o período de retenção, use o utilitário de persistência de objetos do sistema do Amazon Redshift no AWS Labs no GitHub. |
O acesso aos arquivos de log de auditoria não requer acesso ao banco de dados do Amazon Redshift. | O acesso às tabelas STL requer acesso ao banco de dados do Amazon Redshift. |
Os recursos de computação do banco de dados não são necessários para revisar os logs armazenados no Amazon S3. | Da mesma forma que, quando você executa outras consultas, são necessários recursos de computação de banco de dados para executar consultas em tabelas STL/SYS. |
Usando carimbos de data e hora, você pode correlacionar IDs de processo com atividades de banco de dados. As reinicializações do cluster não afetam os logs de auditoria no Amazon S3. | Nem sempre é possível correlacionar IDs de processo com atividades de banco de dados, porque os IDs de processo podem ser reciclados quando o cluster é reiniciado. |
O registro em log de auditoria armazena informações nos seguintes arquivos de log: Log de conexão, Log de usuário e Log de atividades do usuário. Observação: você deve habilitar o parâmetro de banco de dados enable_user_activity_logging para o log de atividades do usuário. Para obter mais informações, consulte Ativar o registro em log. | Você pode usar SVL_STATEMENTTEXT, STL_CONNECTION_LOG e SYS_CONNECTION_LOG para visualizar informações detalhadas. |
O registro em log de auditoria registra todas as instruções SQL nos logs de atividades do usuário. | As consultas que você executa são registradas em log em STL_QUERY. As instruções DDL são registradas em log em STL_DDLTEXT. O texto dos comandos que não são SELECT SQL é registrado em log em STL_UTILITYTEXT. No Amazon Redshift sem servidor, use SYS_QUERY_HISTORY e SYS_QUERY_DETAIL para verificar todos os comandos SQL. |
As instruções são registradas em log assim que o Amazon Redshift as recebe. Os arquivos no Amazon S3 são atualizados em lote e podem levar algumas horas para serem exibidos. | Os logs são gerados após a execução de cada instrução SQL. |
O registro em log de auditoria registra quem executou qual ação e quando essa ação aconteceu, mas não quanto tempo levou para executá-la. | Use as colunas STARTTIME e ENDTIME para determinar quanto tempo uma atividade levou para ser concluída. Para determinar qual usuário executou uma ação, combine SVL_STATEMENTTEXT (userid) com PG_USER (usesysid). Use SYS_QUERY_HISTORY e SYS_QUERY_DETAIL para determinar quanto tempo uma atividade levou para ser concluída no Amazon Redshift sem servidor. |
Você é cobrado pelo armazenamento que seus logs usam no Amazon S3. | Não há cobranças adicionais pelo armazenamento de tabelas STL/SYS. |
As consultas que você executa somente no nó líder são registradas. | As consultas que você executa somente no nó líder não são registradas. |
CloudTrail
Usando as informações coletadas pelo CloudTrail, você pode determinar quais solicitações foram feitas com sucesso aos serviços da AWS, quem fez a solicitação e quando a solicitação foi feita. Para obter mais informações, consulte Registro em log de chamadas de API do Amazon Redshift com o AWS CloudTrail.
Os arquivos de log do CloudTrail são armazenados indefinidamente no Amazon S3, a menos que você defina regras de ciclo de vida para arquivar ou excluir arquivos automaticamente. Para obter mais informações, consulte Gerenciando seu ciclo de vida de armazenamento.
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um mês
- AWS OFICIALAtualizada há 2 anos