Registro de auditoría en Azure Database for PostgreSQL con un único servidor

Se aplica a: Azure Database for PostgreSQL: servidor único

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Se recomienda encarecidamente actualizar a Azure Database for PostgreSQL: servidor flexible. Para más información sobre la migración al servidor flexible de Azure Database for PostgreSQL, consulte ¿Qué sucede con el servicio de servidor único de Azure Database for PostgreSQL?.

Registro de auditoría de actividades de base de datos en Azure Database for PostgreSQL: único servidor disponible por medio de la extensión de auditoría de PostgreSQL, pgAudit. La extensión pgAudit proporciona registro de auditoría detallado de objetos y de sesiones.

Nota

La extensión pgAudit se encuentra en versión preliminar en Azure Database for PostgreSQL. Solo se puede habilitar en servidores optimizados para memoria y de uso general.

Si quiere obtener registros de nivel de recurso de Azure de operaciones como el escalado de procesos y de almacenamiento, vea Introducción a los registros de plataforma de Azure.

Consideraciones de uso

De manera predeterminada, las instrucciones de registro de pgAudit se emiten junto con las instrucciones de registro normales mediante la utilidad de registro estándar de Postgres. En Azure Database for PostgreSQL, estos archivos .log se pueden descargar mediante Azure Portal o la CLI de Azure. El almacenamiento máximo de la colección de archivos es de 1 GB. Cada archivo está disponible durante un máximo de siete días. El valor predeterminado es tres días. Este servicio es una opción de almacenamiento a corto plazo.

Como alternativa, puede configurar todos los registros de modo que se envíen al almacén de registros de Azure Monitor para su análisis posteriormente en Log Analytics. Si habilita el registro de recursos de Monitor, los registros se envían automáticamente en formato JSON a Azure Storage, Azure Event Hubs o los registros de Monitor, en función de su elección.

Al habilitar pgAudit, se genera un gran volumen de registros en un servidor, lo que afecta al rendimiento y al almacenamiento de registros. Es recomendable usar los registros de Monitor, lo que ofrece opciones de almacenamiento a más largo plazo, así como características de análisis y alertas. Desactive el registro estándar para reducir el impacto sobre el rendimiento del registro adicional:

  1. Establezca el parámetro logging_collector en Off.
  2. Reinicie el servidor para aplicar este cambio.

Para aprender a configurar el registro en Storage, Event Hubs o los registros de Monitor, vea la sección sobre registros de recursos de Registros en Azure Database for PostgreSQL con un único servidor.

Instalación de pgAudit

Para instalar pgAudit, tiene que incluirlo en las bibliotecas precargadas compartidas del servidor. Un cambio en el parámetro shared_preload_libraries de Postgres exige reiniciar el servidor para que tenga efecto. Puede cambiar los parámetros mediante el portal, la CLI o API REST.

Para usar el portal:

  1. Seleccione su servidor de Azure Database for PostgreSQL.

  2. A la izquierda, en Configuración, seleccione Parámetros del servidor.

  3. Busque shared_preload_libraries.

  4. Seleccione PGAUDIT.

    Captura de pantalla que muestra cómo Azure Database for PostgreSQL habilita shared_preload_libraries para PGAUDIT.

  5. Reinicie el servidor para aplicar el cambio.

  6. Conéctese al servidor mediante un cliente como psql y habilite la extensión pgAudit:

    CREATE EXTENSION pgaudit;
    

Sugerencia

Si ve un error, confirme que ha reiniciado el servidor después de guardar shared_preload_libraries.

Configuración de pgAudit

Con pgAudit puede configurar el registro de auditoría de sesión u objeto. 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.

Nota

La configuración de pgAudit se especifica globalmente y no en un nivel de base de datos o rol.

Después de instalar pgAudit, puede configurar sus parámetros para iniciar el registro.

Para configurar pgAudit en el portal:

  1. Seleccione su servidor de Azure Database for PostgreSQL.

  2. A la izquierda, en Configuración, seleccione Parámetros del servidor.

  3. Busque los parámetros pgaudit.

  4. Seleccione el parámetro de configuración adecuado para editarlo. Por ejemplo, para iniciar el registro, establezca pgaudit.log en WRITE.

    Captura de pantalla que muestra cómo Azure Database for PostgreSQL configura el registro con pgAudit.

  5. Haga clic en Guardar para guardar los cambios.

La documentación de pgAudit proporciona la definición de cada parámetro. Primero pruebe los parámetros y confirme que obtiene el comportamiento esperado. Por ejemplo:

  • Cuando el valor pgaudit.log_client está activado, redirige los registros a un proceso de cliente como psql en lugar de escribir en un archivo. En general, deje este valor deshabilitado.
  • El parámetro pgaudit.log_level solo está habilitado cuando pgaudit.log_client está activado.

Nota

En 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, como READ y WRITE, deben especificarse individualmente.

Formato de los registros de auditoría

Cada entrada de auditoría se indica mediante AUDIT: cerca del principio de la línea de registro. El formato del resto de la entrada se detalla en la documentación de pgAudit.

Si necesita algún otro campo para satisfacer sus requisitos de auditoría, use el parámetro log_line_prefix de Postgres. La cadena log_line_prefix se genera al principio de cada línea de registro de Postgres. Por ejemplo, la siguiente opción de log_line_prefix proporciona la marca de tiempo, el nombre de usuario, el nombre de la base de datos y el identificador de proceso siguiente:

t=%m u=%u db=%d pid=[%p]:

Para obtener más información sobre log_line_prefix, vea la documentación de PostgreSQL.

Introducción

Para empezar a trabajar rápidamente, establezca pgaudit.log en WRITE. Luego abra los registros para revisar la salida.

Visualización de registros de auditoría

Si usa archivos .log, los registros de auditoría se incluyen en el mismo archivo que los registros de errores de PostgreSQL. Puede descargar los archivos de registro del portal o de la CLI.

Si usa el registro de recursos de Azure, la forma de acceder a los registros depende del punto de conexión que seleccione. En el caso de Storage, vea Registros de recursos de Azure. En el caso de Event Hubs, vea también Registros de recursos de Azure.

En el caso de registros de 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, como se muestra. Para obtener más información sobre las consultas y las alertas, vea Consultas de registro en Azure Monitor.

Use esta consulta para comenzar. Puede configurar alertas basadas en las consultas.

Busque todos los registros de Postgres de un servidor determinado del último día:

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where TimeGenerated > ago(1d) 
| where Message contains "AUDIT:"

Pasos siguientes