Description:

Enable log_checkpoints on PostgreSQL Servers.


Rationale:

Enabling log_checkpoints helps the PostgreSQL Database to Log each checkpoint in turn generates query and error logs. However, access to transaction logs is not supported. Query and error logs can be used to identify, troubleshoot, and repair configuration errors and sub-optimal performance.


Audit:

From Azure Portal

1. From Azure Home select the Portal Menu.

2. Go to Azure Database for PostgreSQL servers.

3. For each database, click on Server parameters.

4. Search for log_checkpoints.

5. Ensure that value is set to ON.


From Azure CLI

Ensure value is set to ON

az postgres server configuration show --resource-group <resourceGroupName> -
-server-name <serverName> --name log_checkpoints

From PowerShell

Ensure value is set to ON

Get-AzPostgreSqlConfiguration -ResourceGroupName <ResourceGroupName> -
ServerName <ServerName> -Name log_checkpoints

Remediation:

From Azure Portal

1. From Azure Home select the Portal Menu.

2. Go to Azure Database for PostgreSQL servers.

3. For each database, click on Server parameters.

4. Search for log_checkpoints.

5. Click ON and save.


From Azure CLI

Use the below command to update log_checkpoints configuration.

az postgres server configuration set --resource-group <resourceGroupName> --
server-name <serverName> --name log_checkpoints --value on

From PowerShell

Update-AzPostgreSqlConfiguration -ResourceGroupName <ResourceGroupName> -
ServerName <ServerName> -Name log_checkpoints -Value on

Default Value:

By default log_checkpoints is enabled (set to on).

References:

1. https://docs.microsoft.com/enus/rest/api/postgresql/singleserver/configurations/list-by-server

2. https://docs.microsoft.com/en-us/azure/postgresql/howto-configure-serverparameters-using-portal

3.https://docs.microsoft.com/en-us/security/benchmark/azure/security-controls-v3- logging-threat-detection#lt-4-enable-logging-for-azure-resources

4. https://learn.microsoft.com/en-us/azure/postgresql/single-server/concepts-serverlogs#configure-logging

5.https://learn.microsoft.com/en-us/powershell/module/az.postgresql/getazpostgresqlconfiguration?view=azps9.2.0#example-2-get-specified-postgresqlconfiguration-by-name

6.https://learn.microsoft.com/en-us/powershell/module/az.postgresql/updateazpostgresqlconfiguration?view=azps-9.2.0#example-1-update-postgresqlconfiguration-by-name