Hi @rhlp ,
This doesnt sound like the expected behaviour if the request is genuinely reaching the workspace API from the public internet.
A couple of things I would check first before coming into a conclusion
Creating the databricks_ui_api private endpoint gives you a private path into the workspace, but it doesnt disable the public path by itself. That should be controlled by publicNetworkAccess = Disabled.
Also, NoAzureDatabricksRules is related to the required NSG rules, so it wouldnt affect whether the workspace API is publicly reachable.
Iโd first confirm on the actual Azure Databricks workspace resource that properties.publicNetworkAccess is definitely showing as Disabled.
Iโd also test from a completely external network, ideally with no corporate VPN, ExpressRoute, private DNS or proxy involved. Use the normal workspace hostname rather than testing against the raw public IP. Databricks uses shared front-end infrastructure, so getting an HTTP 200 from an IP alone doesnโt necessarily prove that the workspace itself is publicly accessible.
Itโs also worth checking the actual response body/headers. For example, a front-end or authentication page may return 200 even though access to the workspace is still blocked. Iโd test an authenticated workspace API such as /api/2.0/clusters/list and confirm you are actually getting data back from that workspace.
One more thing to do is, if browser access is intended to be fully private, make sure the browser_authentication private endpoint and Private DNS setup are configured correctly as well.
If publicNetworkAccess is definitely disabled, you are testing from a genuinely public network, DNS is resolving publicly, and an authenticated workspace API call is still successfully returning workspace data, then Iโd raise a Databricks/Azure support case. At that point it could be a control-plane propagation or service-side configuration issue rather than expected Private Link behaviour.
Thank you so much !!
Vinod Gokul Pillai