turbot/steampipe-mod-azure-compliance

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

  1. Login to Azure Portal using https://portal.azure.com
  2. Go to Azure Database for PostgreSQL server
  3. For each database, click on Server parameters
  4. Search for connection_throttling.
  5. 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

Default Value

By default, connection_throttle.enable is set to Off.

Usage

Run the control in your terminal:

powerpipe control run azure_compliance.control.cis_v150_4_3_5

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run azure_compliance.control.cis_v150_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 subscription
from
azure_postgresql_server s,
jsonb_array_elements(server_configurations) config,
azure_subscription sub
where
config ->> 'Name' = 'connection_throttling'
and sub.subscription_id = s.subscription_id;

Tags