Configuración de la extensión pgAudit - Amazon Relational Database Service

Configuración de la extensión pgAudit

Para configurar la extensión pgAudit en la instancia de base de datos de RDS for PostgreSQL , primero hay que añadir pgAudit a las bibliotecas compartidas en el grupo de parámetros de base de datos personalizado para su instancia de base de datos RDS for PostgreSQL. Para obtener información acerca de cómo crear el grupo de parámetros de base de datos, consulte Grupos de parámetros para Amazon RDS. A continuación, instale la extensión pgAudit. Por último, especifique las bases de datos y objetos que desea auditar. Los procedimientos de esta sección le muestran cómo hacerlo. Puede utilizar la AWS Management Console o la AWS CLI.

Debe tener permisos como el rol rds_superuser para realizar todas estas tareas.

En los pasos siguientes se supone que la instancia de base de datos de RDS for PostgreSQL está asociada a un grupo de parámetros de DB.

Para configurar la extensión pgAudit
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija la instancia de base de datos de RDS for PostgreSQL.

  3. Abra la pestaña Configuration (Configuración) para su Instancia de base de datos RDS para PostgreSQL. Entre los detalles de la instancia, busque el enlace del grupo de parámetros.

  4. Elija el enlace para abrir los parámetros personalizados asociados al Instancia de base de datos RDS para PostgreSQL.

  5. En el campo de búsqueda Parametes (Parámetros), escriba shared_pre para buscar el parámetro shared_preload_libraries.

  6. Seleccione Edit parameters (Editar parámetros) para acceder a los valores de las propiedades.

  7. Añada pgaudit a la lista en el campo Values (Valores). Utilice una coma para separar los elementos de la lista de valores.

    Imagen del parámetro shared_preload_libaries con pgAudit añadido.
  8. Reinicie la instancia de base de datos de RDS for PostgreSQL para que surta efecto el cambio en el parámetro shared_preload_libraries.

  9. Cuando la instancia esté disponible, compruebe que pgAudit se haya inicializado. Use psql para conectarse a la instancia de base de datos de RDS for PostgreSQL y, a continuación, ejecute el siguiente comando.

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)
  10. Con pgAudit inicializado, ahora puede crear la extensión. Debe crear la extensión después de inicializar la biblioteca, ya que la extensión pgaudit instala activadores de eventos para auditar las sentencias del lenguaje de definición de datos (DDL).

    CREATE EXTENSION pgaudit;
  11. Cierre la sesión de psql.

    labdb=> \q
  12. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  13. Busque el parámetro pgaudit.log en la lista y configúrelo con el valor adecuado para su caso de uso. Por ejemplo, al establecer el parámetro pgaudit.log en write como se muestra en la siguiente imagen, se capturan las inserciones, las actualizaciones, las eliminaciones y algunos otros tipos de cambios en el registro.

    Imagen del parámetro pgaudit.log con la configuración.

    También puede elegir uno de los siguientes valores para el parámetro pgaudit.log.

    • none: es el valor predeterminado. No se registran cambios en la base de datos.

    • all: registra todo (read, write, function, role, ddl, misc).

    • ddl: registra todas las instrucciones del lenguaje de definición de datos (DDL) que no están incluidas en la clase ROLE.

    • function: registra llamadas a funciones y bloques DO.

    • misc: registra comandos variados como, por ejemplo, DISCARD, FETCH, CHECKPOINT, VACUUM y SET.

    • read: registra SELECT y COPY cuando el origen es una relación (como una tabla) o una consulta.

    • role: registra instrucciones relacionadas con roles y privilegios, como GRANT, REVOKE, CREATE ROLE, ALTER ROLE y DROP ROLE.

    • write: registra INSERT, UPDATE, DELETE, TRUNCATE y COPY cuando el destino es una relación (tabla).

  14. Elija Guardar cambios.

  15. Abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  16. Elija su instancia de base de datos de RDS para PostgreSQL desde la lista de bases de datos.

Para configurar pgAudit

Para configurar pgAudit mediante AWS CLI, llame a la operación modify-db-parameter-group para modificar los parámetros del registro de auditoría de su grupo de parámetros personalizado, como se muestra en el siguiente procedimiento.

  1. Utilice el siguiente comando AWS CLI para añadir pgaudit al parámetro shared_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" \ --region aws-region
  2. Utilice el siguiente comando AWS CLI para reiniciar la instancia de base de datos de RDS for PostgreSQL para que se inicialice la biblioteca pgaudit.

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. Cuando la instancia esté disponible, puede verificar si pgaudit se ha inicializado. Use psql para conectarse a la instancia de base de datos de RDS for PostgreSQL y, a continuación, ejecute el siguiente comando.

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)

    Con pgAudit inicializado, ahora puede crear la extensión.

    CREATE EXTENSION pgaudit;
  4. Cierre la sesión de psql para poder utilizar AWS CLI.

    labdb=> \q
  5. Utilice el siguiente comando AWS CLI para especificar las clases de instrucciones que desea registrar con el registro de auditoría de sesión. El ejemplo establece el parámetro pgaudit.log enwrite, que captura las inserciones, las actualizaciones y las eliminaciones del registro.

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=pgaudit.log,ParameterValue=write,ApplyMethod=pending-reboot" \ --region aws-region

    También puede elegir uno de los siguientes valores para el parámetro pgaudit.log.

    • none: es el valor predeterminado. No se registran cambios en la base de datos.

    • all: registra todo (read, write, function, role, ddl, misc).

    • ddl: registra todas las instrucciones del lenguaje de definición de datos (DDL) que no están incluidas en la clase ROLE.

    • function: registra llamadas a funciones y bloques DO.

    • misc: registra comandos variados como, por ejemplo, DISCARD, FETCH, CHECKPOINT, VACUUM y SET.

    • read: registra SELECT y COPY cuando el origen es una relación (como una tabla) o una consulta.

    • role: registra instrucciones relacionadas con roles y privilegios, como GRANT, REVOKE, CREATE ROLE, ALTER ROLE y DROP ROLE.

    • write: registra INSERT, UPDATE, DELETE, TRUNCATE y COPY cuando el destino es una relación (tabla).

    Reinicie la instancia de base de datos de RDS for PostgreSQL mediante el siguiente comando AWS CLI.

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region