Auditoría de objetos de base de datos - Amazon Aurora

Auditoría de objetos de base de datos

Con PGAudit configurado en su clúster de base de datos de Aurora 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 instancia de escritor de su clúster de base de datos de Aurora 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 escritor de su clúster de base de datos de Aurora PostgreSQL para que sus cambios en los parámetros surtan efecto.

    aws rds reboot-db-instance \ --db-instance-identifier writer-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 Aurora.

Para obtener más información sobre la extensión pgAudit, consulte pgAudit en GitHub.