Check ID:
Provider: Azure
Service:
Severity: HIGH
Categories:
Resource type:
app_function_not_publicly_accessibleProvider: Azure
Service:
appSeverity: HIGH
Categories:
internet-exposedResource type:
microsoft.web/sitesWhat this check verifies
Azure Function apps are assessed for whether they are reachable from the public Internet. The evaluation considers the app’spublicNetworkAccess state and the presence of access restrictions or private endpoints to limit inbound traffic.
Risk
Public exposure allows unauthorized invocation, risking data disclosure and tampering (confidentiality and integrity). Attackers can brute-force tokens or abuse misconfigurations for remote execution. Unrestricted calls also enable abuse and DoS, driving cost and harming availability.Recommendation
Apply network isolation and least privilege:- Set
publicNetworkAccess=Disabled - Use access restrictions for trusted IPs/VNets or Private Endpoints
- Require strong auth (e.g., Microsoft Entra ID) over shared keys
- Front with API Management/WAF
- Keep secrets in Key Vault and monitor access logs
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://learn.microsoft.com/en-us/azure/app-service/overview-access-restrictions
- https://www.trendmicro.com/cloudoneconformity/knowledge-base/azure/Functions/azure-function-exposed.html
- https://learn.microsoft.com/en-us/azure/azure-functions/functions-networking-options
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = app_function_not_publicly_accessible. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Azure checks