Check ID: app_function_not_publicly_accessible
Provider: Azure
Service: app
Severity: HIGH
Categories: internet-exposed
Resource type: microsoft.web/sites

What this check verifies

Azure Function apps are assessed for whether they are reachable from the public Internet. The evaluation considers the app’s publicNetworkAccess 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

az functionapp update --resource-group <RESOURCE_GROUP> --name <FUNCTION_APP_NAME> --set publicNetworkAccess=Disabled

References

Where this check fires

This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable by Check 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