Compartir a través de


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:

  1. Seleccione la instancia de Azure Database para el servidor flexible de PostgreSQL.

  2. En el menú de recursos, en Configuración, seleccione Parámetros del servidor.

  3. Busque los parámetros pgaudit.

  4. Elija el parámetro adecuado para editar. Por ejemplo, para iniciar el registro de instrucciones INSERT, UPDATE, DELETE, TRUNCATE, y COPY, establezca pgaudit.log en WRITE.

  5. 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.logen 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:"