Description:

Enable log_connections on PostgreSQL Servers.


Rationale:

Enabling log_connections helps PostgreSQL Database to log attempted connection to the server, as well as successful completion of client authentication. Log data can be used to identify, troubleshoot, and repair configuration errors and suboptimal performance.


Audit:

From Azure Portal

1. Login to Azure Portal using https://portal.azure.com.

2. Go to Azure Database for PostgreSQL servers.

3. For each database, click on Server parameters.

4. Search for log_connections.

5. Ensure that value is set to ON.


From Azure CLI

Ensure log_connections value is set to ON

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

From PowerShell

Ensure log_connections value is set to ON

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

Remediation:

From Azure Portal

1. Login to Azure Portal using https://portal.azure.com.

2. Go to Azure Database for PostgreSQL servers.

3. For each database, click on Server parameters.

4. Search for log_connections.

5. Click ON and save.

From Azure CLI

Use the below command to update log_connections configuration.

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

From PowerShell

Use the below command to update log_connections configuration.

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

Default Value:

By default log_connections is enabled (set to on).

References:

1. https://docs.microsoft.com/en-us/rest/api/postgresql/configurations/listbyserver

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-3-enable-logging-for-security-investigation

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