Compartir a través de


Registro de auditoría en Azure Database for PostgreSQL

El registro de auditoría de actividades de base de datos en Azure Database for PostgreSQL está disponible a través de la pgaudit extensión . pgaudit proporciona un registro detallado de auditoría de sesión o objeto.

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 registro y las instrucciones de registro normales se emiten mediante la instalación de registro estándar de Postgres. En Azure Database for PostgreSQL, puede configurar todos los registros que se enviarán al almacén de registros de Azure Monitor para su posterior análisis en Log Analytics. Si habilita el registro de recursos de Azure Monitor, los registros se envían automáticamente (en formato JSON) a Azure Storage, Event Hubs o registros de Azure Monitor, en función de su elección.

Para obtener información sobre cómo configurar el registro en Azure Storage, Event Hubs o registros de Azure Monitor, visite la sección registros de recursos del artículo registros de servidor.

Instalar la extensión

Para poder usar pgaudit la extensión, debe permitir la lista, cargar y crear la extensión en la base de datos en la que planea usarlo.

Configurar los valores de la extensión

pgaudit permite configurar el registro de auditoría de sesión o de objetos. 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 que habilite 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 for the 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 INSERTde instrucciones , UPDATE, DELETE, TRUNCATE, y COPY , establezca en pgaudit.logWRITE.

  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, al establecer pgaudit.log_client en ON no solo se escriben eventos de auditoría en el registro del servidor, sino que también se envían a 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 Azure Database for PostgreSQL, pgaudit.log no se puede establecer mediante un - acceso directo de signo (menos), como se describe en la pgaudit documentación. Todas las clases de instrucción necesarias (READ, WRITE, etc.) deben especificarse individualmente.

Si establece el log_statement parámetro DDL en o y ejecuta un ALL comando o CREATE ROLE/USER ... WITH PASSWORD ... ;ALTER ROLE/USER ... WITH PASSWORD ... ; , postgreSQL crea una entrada en los registros de PostgreSQL donde la contraseña se registra 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 pgaudit extensión y establecer en pgaudit.logDDL , que no registra ninguna CREATE/ALTER ROLE instrucción en el registro del servidor de Postgres, a diferencia de lo que hace cuando se establece log_statementDDLen . Si necesita registrar estas instrucciones, también puede establecer en pgaudit.logROLE, 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.

Cómo empezar

Para empezar rápidamente, establezca en pgaudit.logALLy 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. Consulte el artículo de la cuenta de almacenamiento de registros para Azure Storage. Consulte el artículo transmisión de 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.

Busque todas las pgaudit entradas de los registros de Postgres para un servidor determinado en el último día.

AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

Actualización de la versión principal con la extensión pgaudit instalada

Durante una actualización de la versión principal, la extensión pgaudit se quita automáticamente y, a continuación, se vuelve a crear una vez completada la actualización. Mientras se restaura la extensión, las configuraciones personalizadas establecidas en pgaudit.log u otros parámetros relacionados no se conservan automáticamente.