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
Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. -
En el panel de navegación, elija la instancia de base de datos de RDS for PostgreSQL.
-
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.
-
Elija el enlace para abrir los parámetros personalizados asociados al Instancia de base de datos RDS para PostgreSQL.
-
En el campo de búsqueda Parametes (Parámetros), escriba
shared_pre
para buscar el parámetroshared_preload_libraries
. -
Seleccione Edit parameters (Editar parámetros) para acceder a los valores de las propiedades.
-
Añada
pgaudit
a la lista en el campo Values (Valores). Utilice una coma para separar los elementos de la lista de valores. Reinicie la instancia de base de datos de RDS for PostgreSQL para que surta efecto el cambio en el parámetro
shared_preload_libraries
.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)
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;
Cierre la sesión de
psql
.labdb=>
\q
Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. 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ámetropgaudit.log
enwrite
como se muestra en la siguiente imagen, se capturan las inserciones, las actualizaciones, las eliminaciones y algunos otros tipos de cambios en el registro.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
ySET
.read: registra
SELECT
yCOPY
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
yDROP ROLE
.write: registra
INSERT
,UPDATE
,DELETE
,TRUNCATE
yCOPY
cuando el destino es una relación (tabla).
Elija Guardar cambios.
Abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. 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.
Utilice el siguiente comando AWS CLI para añadir
pgaudit
al 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
-
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
\ --regionaws-region
Cuando la instancia esté disponible, puede verificar si
pgaudit
se ha inicializado. Usepsql
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;
Cierre la sesión de
psql
para poder utilizar AWS CLI.labdb=>
\q
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" \ --regionaws-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
ySET
.read: registra
SELECT
yCOPY
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
yDROP ROLE
.write: registra
INSERT
,UPDATE
,DELETE
,TRUNCATE
yCOPY
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
\ --regionaws-region