| name | cis-azure-compute-2.4.12 |
| description | Ensure public network access is disabled |
| category | cis-azure-compute |
| version | 2.0.0 |
| author | cyberstrike-official |
| tags | ["cis","azure","functions","deployment-slots"] |
| cis_id | 2.4.12 |
| cis_benchmark | CIS Microsoft Azure Compute Services Benchmark v2.0.0 |
| tech_stack | ["azure"] |
| cwe_ids | [] |
| chains_with | [] |
| prerequisites | [] |
| severity_boost | {} |
Ensure public network access is disabled
Description
Disable public network access to prevent exposure to the internet and reduce the risk of unauthorized access. Use private endpoints to securely manage access within trusted networks.
This recommendation applies to function apps using the Consumption, Premium, or Dedicated (App Service) plans, which support deployment slots.
Rationale
Disabling public network access improves security by ensuring that the service is not directly exposed to the public Internet. This has the added benefit of providing more granular control over security settings and configurations for those additional layers of separation.
Impact
NOTE: Prior to disabling public network access, it is strongly recommended that, for each function app deployment slot, either:
- complete virtual network integration as described in "Ensure app is integrated with a virtual network"
OR
- set up private endpoints/links as described in "Ensure private endpoints are used to access App Service apps."
Disabling public network access restricts direct access to the service. This enhances security but will require the configuration of a virtual network and/or private endpoints for any services or users needing access within trusted networks.
Audit Procedure
Using Azure Portal
- Go to
App Services or Function App.
- Click the name of a function app.
- Under
Deployment, click Deployment slots.
- Click the name of a deployment slot.
- Under
Settings, click Networking.
- Under
Inbound traffic configuration, ensure that Public network access is set to Disabled.
- Repeat steps 1-6 for each function app and deployment slot.
Using Azure CLI
Run the following command to list function apps:
az functionapp list
For each function app, run the following command to list deployment slots:
az functionapp deployment slot list --resource-group <resource-group-name> --name <function-app-name>
For each deployment slot, ensure that publicNetworkAccess is set to Disabled.
Expected Result
The publicNetworkAccess property should be set to .