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 ServicesorFunction App. - Click the name of a function app.
- Under
Deployment, clickDeployment slots. - Click the name of a deployment slot.
- Under
Settings, clickNetworking. - Under
Inbound traffic configuration, ensure thatPublic network accessis set toDisabled. - 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 Disabled.
Remediation
Using Azure Portal
- Go to
App ServicesorFunction App. - Click the name of a function app.
- Under
Deployment, clickDeployment slots. - Click the name of a deployment slot.
- Under
Settings, clickNetworking. - Under
Inbound traffic configuration, click the text next toPublic network access. - Select the radio button next to
Disabled. - Click
Save. - Check the box to confirm the change.
- Click
Continue. - Repeat steps 1-10 for each function app and deployment slot requiring remediation.
Using Azure CLI
For each deployment slot requiring remediation, run the following command to disable public network access:
az resource update --resource-group <resource-group-name> --name <function-app-name>/slots/<deployment-slot-name> --resource-type "Microsoft.Web/sites" --set properties.publicNetworkAccess=Disabled
Default Value
By default, public network access is enabled.
References
- https://learn.microsoft.com/en-us/azure/app-service/networking-features
- https://learn.microsoft.com/en-us/azure/azure-functions/functions-deployment-slots
- https://learn.microsoft.com/en-us/cli/azure/functionapp
- https://learn.microsoft.com/en-us/cli/azure/resource
Profile
Level 1 | Automated