Configurar a extensão pgAudit
Para configurar a extensão pgAudit em sua instância de banco de dados do RDS para PostgreSQL, , primeiro adicione pgAudit às bibliotecas compartilhadas no grupo de parâmetros de banco de dados personalizado para sua instância de banco de dados do RDS para PostgreSQL. Para obter informações sobre como criar um grupo de parâmetros de banco de dados, consulte Grupos de parâmetros para Amazon RDS. Depois, instale a extensão pgAudit. Por fim, especifique os bancos de dados e os objetos que deseja auditar. Os procedimentos nesta seção mostram o procedimento. É possível usar o AWS Management Console ou a AWS CLI.
Você deve ter permissões como a função rds_superuser
para realizar todas essas tarefas.
As etapas a seguir pressupõem que sua instância de banco de dados do RDS para PostgreSQL esteja associada a um grupo de parâmetros de banco de dados.
Como configurar a extensão pgAudit
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, selecione sua instância de banco de dados do RDS para PostgreSQL.
-
Abra a guia Configuration (Configuração) para sua Instância de banco de dados do RDS para PostgreSQL. Entre os detalhes da instância, encontre o link Parameter group (Grupo de parâmetros).
-
Clique no link para abrir os parâmetros personalizados associados ao seu Instância de banco de dados do RDS para PostgreSQL.
-
No campo Parameters (Parâmetros), digite
shared_pre
para encontrar o parâmetroshared_preload_libraries
. -
Selecione Edit parameters (Editar parâmetros) para acessar os valores das propriedades.
-
Adicione
pgaudit
à lista no campo Values (Valores). Use uma vírgula para separar itens na lista de valores. Reinicie a instância de banco de dados do RDS para PostgreSQL para que a alteração no parâmetro
shared_preload_libraries
tenha efeito.Quando a instância estiver disponível, verifique se a pgAudit foi inicializada. Use
psql
para se conectar à instância de banco de dados do RDS para PostgreSQL e depois execute o comando a seguir.SHOW shared_preload_libraries;
shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)
Com a pgAudit inicializada, agora você pode criar a extensão. Você precisa criar a extensão depois de inicializar a biblioteca porque a extensão
pgaudit
instala acionadores de eventos para auditar declarações de linguagem de definição de dados (DDL).CREATE EXTENSION pgaudit;
Feche a sessão
psql
.labdb=>
\q
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. Encontre o parâmetro
pgaudit.log
na lista e defina como o valor apropriado para o caso de uso. Por exemplo, definir o parâmetropgaudit.log
comowrite
conforme mostrado na imagem a seguir captura inserções, atualizações, exclusões e alguns outros tipos de alterações no log.Você também pode selecionar um dos valores a seguir para o parâmetro
pgaudit.log
.none: esse é o valor padrão. Nenhuma alteração no banco de dados é registrada.
all: registra tudo (read, write, function, role, ddl, misc).
ddl: registra todas as instruções de linguagem de definição de dados (DDL) não incluídas na classe
ROLE
.function: registra chamadas de função e blocos de
DO
.misc: registra comandos diversos, como
DISCARD
,FETCH
,CHECKPOINT
,VACUUM
eSET
.read: registra
SELECT
eCOPY
quando a fonte é uma relação (como uma tabela) ou uma consulta.role: registra declarações relacionadas a funções e privilégios, como
GRANT
,REVOKE
,CREATE ROLE
,ALTER ROLE
eDROP ROLE
.write: registra
INSERT
,UPDATE
,DELETE
,TRUNCATE
eCOPY
quando o destino é uma relação (tabela).
Escolha Salvar alterações.
Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. Selecione a instância de banco de dados do RDS para PostgreSQL na lista Bancos de dados.
Como configurar a pgAudit
Para configurar a pgAudit usando a AWS CLI, chame a operação modify-db-parameter-group para modificar os parâmetros do log de auditoria em seu grupo de parâmetros personalizado, conforme mostrado no procedimento a seguir.
Use o comando AWS CLI a seguir para adicionar
pgaudit
ao parâmetroshared_preload_libraries
.aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pgaudit,ApplyMethod=pending-reboot" \ --regionaws-region
-
Use o comando AWS CLI a seguir para reinicializar a instância de banco de dados do RDS para PostgreSQL para que a biblioteca da pgaudit seja inicializada.
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region
Quando a instância estiver disponível, verifique se a
pgaudit
foi inicializada. Usepsql
para se conectar à instância de banco de dados do RDS para PostgreSQL e, depois, execute o comando a seguir.SHOW shared_preload_libraries;
shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)
Com a pgAudit inicializada, agora você pode criar a extensão.
CREATE EXTENSION pgaudit;
Feche a sessão
psql
para que você possa usar a AWS CLI.labdb=>
\q
Use o comando AWS CLI a seguir para especificar as classes de declaração que devem ser registradas pelo registro em log de auditoria da sessão. O exemplo define o parâmetro
pgaudit.log
comowrite
, que captura inserções, atualizações e exclusões no log.aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=pgaudit.log,ParameterValue=write
,ApplyMethod=pending-reboot" \ --regionaws-region
Você também pode selecionar um dos valores a seguir para o parâmetro
pgaudit.log
.none: esse é o valor padrão. Nenhuma alteração no banco de dados é registrada.
all: registra tudo (read, write, function, role, ddl, misc).
ddl: registra todas as instruções de linguagem de definição de dados (DDL) não incluídas na classe
ROLE
.function: registra chamadas de função e blocos de
DO
.misc: registra comandos diversos, como
DISCARD
,FETCH
,CHECKPOINT
,VACUUM
eSET
.read: registra
SELECT
eCOPY
quando a fonte é uma relação (como uma tabela) ou uma consulta.role: registra declarações relacionadas a funções e privilégios, como
GRANT
,REVOKE
,CREATE ROLE
,ALTER ROLE
eDROP ROLE
.write: registra
INSERT
,UPDATE
,DELETE
,TRUNCATE
eCOPY
quando o destino é uma relação (tabela).
Reinicie a instância de banco de dados do RDS para PostgreSQL usando o comando AWS CLI a seguir.
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region