Auditoría de objetos de base de datos - Amazon Relational Database Service

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.

Imagen del archivo de registro de PostgreSQL después de configurar 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
  1. 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=postgrespostgres --password --dbname=labdb
  2. Cree un rol de base de datos llamado rds_pgaudit mediante el siguiente comando.

    labdb=> CREATE ROLE rds_pgaudit; CREATE ROLE labdb=>
  3. 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.

  4. Utilice el siguiente comando AWS CLI para establecer el parámetro pgaudit.role en rds_pgaudit. De forma predeterminada, este parámetro está vacío y rds_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" \ --region aws-region
  5. 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 \ --region aws-region
  6. Ejecute el siguiente comando para confirmar que pgaudit.role se establece en rds_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 en GitHub.