Control: 5.2.5 Ensure 'Allow public access from any Azure service within Azure to this server' for PostgreSQL flexible server is disabled
Description
Disable access from Azure services to PostgreSQL flexible server
.
If access from Azure services is enabled, the server's firewall will accept connections from all Azure resources, including resources not in your subscription. This is usually not a desired configuration. Instead, set up firewall rules to allow access from specific network ranges or VNET rules to allow access from specific virtual networks.
Remediation
From Azure Portal
- Login to Azure Portal using https://portal.azure.com.
- Go to
Azure Database for PostgreSQL flexible servers
. - For each database, under
Settings
, clickNetworking
. - Under
Firewall rules
, uncheckAllow public access from any Azure service within Azure to this server
. - Click
Save
.
From Azure CLI
Using the firewall rule name from the Audit from Azure CLI
steps, use the below command to delete the AllowAllAzureServicesAndResourcesWithinAzureIps
rule for PostgreSQL flexible server:
az postgres flexible-server firewall-rule delete --resource-group <resourceGroup> --name <serverName> --rule-name <ruleName>
Type y
and press enter
to confirm.
From PowerShell
Using the firewall rule name from the Audit from PowerShell
steps, use the below command to delete the AllowAllAzureServicesAndResourcesWithinAzureIps
rule for PostgreSQL flexible server:
Remove-AzPostgreSqlFlexibleServerFirewallRule -ResourceGroupName <resourceGroup> -ServerName <serverName> -Name <ruleName>
Default Value
The Azure Postgres firewall is set to block all access by default.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.cis_v300_5_2_5
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.cis_v300_5_2_5 --share
SQL
This control uses a named query:
postgres_flexible_server_allow_access_to_azure_services_disabled