Control: 4.3.5 Ensure server parameter 'connection_throttling' is set to 'ON' for PostgreSQL Database Server
Description
Enable connection_throttling
on PostgreSQL Servers
.
Enabling connection_throttling
helps the PostgreSQL Database to Set the verbosity of logged messages
. This in turn generates query and error logs with respect to concurrent connections that could lead to a successful Denial of Service (DoS) attack by exhausting connection resources. A system can also fail or be degraded by an overload of legitimate users. Query and error logs can be used to identify, troubleshoot, and repair configuration errors and sub-optimal performance.
Remediation
From Azure Console
- Login to Azure Portal using https://portal.azure.com.
- Go to
Azure Database for PostgreSQL servers
. - For each database, click on
Server parameters
. - Search for
connection_throttling
. - Click
ON
and save.
From Azure CLI
Use the below command to update connection_throttling
configuration.
az postgres server configuration set --resource-group <resourceGroupName> --server-name <serverName> --name connection_throttling --value on
From PowerShell
Use the below command to update connection_throttling
configuration.
Update-AzPostgreSqlConfiguration -ResourceGroupName <ResourceGroupName> - ServerName <ServerName> -Name connection_throttling -Value on
Default Value
By default, connection_throttling
is enabled (set to on
).
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.cis_v200_4_3_5
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.cis_v200_4_3_5 --share
SQL
This control uses a named query:
select s.id as resource, case when lower(config -> 'ConfigurationProperties' ->> 'value') != 'on' then 'alarm' else 'ok' end as status, case when lower(config -> 'ConfigurationProperties' ->> 'value') != 'on' then s.name || ' server parameter connection_throttling off.' else s.name || ' server parameter connection_throttling on.' end as reason , s.resource_group as resource_group , sub.display_name as subscriptionfrom azure_postgresql_server s, jsonb_array_elements(server_configurations) config, azure_subscription subwhere config ->> 'Name' = 'connection_throttling' and sub.subscription_id = s.subscription_id;