Registro de auditoría en Azure Database for PostgreSQL: servidor flexible
SE APLICA A: Azure Database for PostgreSQL con servidor flexible
El registro de auditoría de actividades de base de datos en el servidor flexible de Azure Database for PostgreSQL está disponible a través de la extensión pgaudit
. pgaudit
proporciona un registro de auditoría de objetos o sesiones detallado.
Si desea obtener registros de nivel de recurso de Azure para operaciones como el escalado de procesos y de almacenamiento, consulte el registro de actividad de Azure.
Consideraciones de uso
De forma predeterminada, pgaudit
las instrucciones de registros y las instrucciones de registro normales se emiten mediante la instalación de registro estándar de Postgres. En el servidor flexible de Azure Database for PostgreSQL, puede configurar todos los registros que se enviarán al almacén de registros de Azure Monitor para su análisis posterior en Log Analytics. Si habilita el registro de recursos de Azure Monitor, los registros se enviarán automáticamente (en formato JSON) a Azure Storage, Event Hubs o a registros de Azure Monitor, en función de lo que elija.
Para aprender a configurar el registro en Azure Storage, Event Hubs o los registros de Azure Monitor, consulte la sección de registros de recursos del artículo de registros de servidor.
Instalar la extensión
Para poder usar la pgaudit
extensión, debe lista de permitidos, cargar, y crear la extensión en la base de datos en la que planea usarlo.
Configurar los valores de la extensión
pgaudit
le permite configurar el registro de auditoría de objetos o sesiones. El registro de auditoría de sesión emite registros detallados de las instrucciones ejecutadas. El registro de auditoría de objetos es una auditoría con un ámbito limitado a relaciones específicas. Puede optar por configurar uno o ambos tipos de registro.
Una vez habilitado pgaudit
, puede configurar sus parámetros para iniciar el registro.
Para configurar pgaudit
, puede seguir estas instrucciones:
Mediante Azure Portal:
Seleccione la instancia de Azure Database para el servidor flexible de PostgreSQL.
En el menú de recursos, en Configuración, seleccione Parámetros del servidor.
Busque los parámetros
pgaudit
.Elija el parámetro adecuado para editar. Por ejemplo, para iniciar el registro de instrucciones
INSERT
,UPDATE
,DELETE
,TRUNCATE
, yCOPY
, establezcapgaudit.log
enWRITE
.Seleccione el botón Guardar para guardar los cambios.
La documentación oficial de pgaudit
proporciona la definición de cada parámetro. Pruebe primero los parámetros y confirme que obtiene el comportamiento esperado.
Por ejemplo, establecer pgaudit.log_client
en ON no solo escribe eventos de auditoría en el registro del servidor, sino que también los envía a los procesos de cliente (como psql). Por lo general, esta configuración se debe dejar deshabilitada.
pgaudit.log_level
solo se habilita cuando pgaudit.log_client
está activado.
En el servidor flexible de Azure Database for PostgreSQL, pgaudit.log
no se puede establecer con un acceso directo de signo -
(menos) como se describe en la documentación de pgaudit
. Todas las clases de instrucción necesarias (lectura, escritura, etc.) deben especificarse individualmente.
Si establece el parámetro log_statement
en DDL
o ALL
y ejecuta un comando CREATE ROLE/USER ... WITH PASSWORD ... ;
o ALTER ROLE/USER ... WITH PASSWORD ... ;
, PostgreSQL crea una entrada en los registros de PostgreSQL donde se registra la contraseña en texto no cifrado, lo que podría provocar un riesgo de seguridad potencial. Es el comportamiento esperado por el diseño del motor de PostgreSQL.
Sin embargo, puede usar la extensión pgaudit
y establecer pgaudit.log
en DDL
, que no registra ninguna instrucción CREATE/ALTER ROLE
en el registro del servidor de Postgres, a diferencia de lo que hace cuando se establece log_statement
en DDL
. Si necesita registrar estas instrucciones, también puede establecer pgaudit.log
en ROLE
, que redacta la contraseña de los registros mientras registra CREATE/ALTER ROLE
.
Formato de los registros de auditoría
Cada entrada de auditoría comienza con AUDIT:
. El formato del resto de la entrada se detalla en la documentación de pgaudit
.
Introducción
Para empezar a trabajar rápidamente, establezca pgaudit.log
en ALL
y abra los registros del servidor para revisar la salida.
Visualización de registros de auditoría
La forma de acceder a los registros depende del punto de conexión que elija. Vea el artículo sobre la cuenta de almacenamiento de registros para Azure Storage. Vea el artículo Transmisión de los registros de Azure para Event Hubs.
Si se trata de los registros de Azure Monitor, los registros se envían al área de trabajo seleccionada. Los registros de Postgres usan el modo de recopilación AzureDiagnostics, por lo que se pueden consultar desde la tabla AzureDiagnostics. Obtenga más información acerca de las consultas y las alertas en Introducción a las consultas de registro en Azure Monitor.
Puede usar esta consulta para comenzar. Puede configurar alertas basadas en las consultas.
Búsqueda de todas las entradas de pgaudit
en los registros de Postgres de un servidor determinado del último día
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"