Auditoría de objetos de base de datos
Con PGAudit configurado en su instancia de base de datos de RDS for PostgreSQL y configurado según sus requisitos, se captura información más detallada en el registro de PostgreSQL. Por ejemplo, si bien la configuración de registro predeterminada de PostgreSQL identifica la fecha y la hora en que se realizó un cambio en una tabla de base de datos, con la extensión pgAudit la entrada de registro puede incluir el esquema, el usuario que realizó el cambio y otros detalles, según cómo estén configurados los parámetros de la extensión. Puede configurar la auditoría para realizar un seguimiento de los cambios de las siguientes maneras.
Para cada sesión, por usuario. Para el nivel de sesión, puede capturar el texto completo del comando.
Para cada objeto, por usuario y por base de datos.
La capacidad de auditoría de objetos se activa cuando se crea el rol rds_pgaudit
en el sistema y, a continuación, se agrega este rol al parámetro pgaudit.role
del grupo de parámetros personalizados. De forma predeterminada, el parámetro pgaudit.role
no está configurado y el único valor permitido es rds_pgaudit
. En los siguientes pasos se asume que pgaudit
se ha inicializado y que ha se ha creado la extensión pgaudit
siguiendo el procedimiento descrito en Configuración de la extensión pgAudit.
Como se muestra en este ejemplo, la línea «LOG: AUDIT: SESSION» proporciona información sobre la tabla y su esquema, entre otros detalles.
Para configurar la auditoría de objetos
Use
psql
para conectarse a la insancia de base de tos de RDS for PostgreSQL.psql --host=
your-instance-name
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
postgres --password --dbname=labdb
-
Cree un rol de base de datos llamado
rds_pgaudit
mediante el siguiente comando.labdb=>
CREATE ROLE rds_pgaudit;
CREATE ROLE
labdb=>
Cierre la sesión de
psql
.labdb=>
\q
En los siguientes pasos, use elAWS CLI para modificar los parámetros del registro de auditoría en el grupo de parámetros personalizado.
-
Utilice el siguiente comando AWS CLI para establecer el parámetro
pgaudit.role
enrds_pgaudit
. De forma predeterminada, este parámetro está vacío yrds_pgaudit
es el único valor permitido.aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=pgaudit.role,ParameterValue=rds_pgaudit,ApplyMethod=pending-reboot" \ --regionaws-region
-
Reinicie AWS CLIla instancia de la instancia de base de datos de RDS for PostgreSQL para que sus cambios en los parámetros surtan efecto.
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region
Ejecute el siguiente comando para confirmar que
pgaudit.role
se establece enrds_pgaudit
.SHOW pgaudit.role;
pgaudit.role ------------------ rds_pgaudit
Para probar el registro de pgAudit, puede ejecutar varios comandos de ejemplo que desee auditar. Por ejemplo, podría ejecutar los siguientes comandos.
CREATE TABLE t1 (id int); GRANT SELECT ON t1 TO rds_pgaudit; SELECT * FROM t1;
id ---- (0 rows)
Los registros de base de datos contendrán una entrada similar a la siguiente.
...
2017-06-12 19:09:49 UTC:...:rds_test@postgres:[11701]:LOG: AUDIT:
OBJECT,1,1,READ,SELECT,TABLE,public.t1,select * from t1;
...
Para obtener información acerca de la visualización de los registros, consulte Supervisión de archivos de registro de Amazon RDS.
Para obtener más información sobre la extensión pgAudit, consulte pgAudit