Azure AI Foundry private endpoints are where enterprise AI stops being a shiny demo and starts behaving like something your security team can invite to the network barbecue. Microsoft Foundry makes it easier to build agents, deploy models, run evaluations, and organize AI projects — but the moment real data enters the room, public access, DNS, RBAC, and developer connectivity become the grown-up problems.
This guide gives Azure admins, platform teams, and AI developers a practical network isolation runbook for Microsoft Foundry: what to lock down, what not to break, how private endpoints fit, and how to troubleshoot the classic “it works from my laptop but not from the app” adventure.
Why Azure AI Foundry private endpoints matter
Microsoft’s current Foundry network isolation guidance frames the problem in three areas: inbound access to the Foundry resource, outbound access from Foundry to other Azure services, and outbound access from the Foundry Agent client to required dependencies such as private data sources or approved endpoints. That is a useful mental model because most real incidents are not “private endpoint yes/no.” They are “which path is this request actually taking?”
Admins, makers, data scientists, CI jobs, and apps reaching the Foundry project or account.
Project dependencies such as storage, Key Vault, monitoring, model endpoints, and other Azure services.
Agent runtime traffic to private data sources, PaaS services, or approved internet endpoints.
The short version: use private endpoints and Private Link to keep traffic on private paths, but design the whole dependency chain. Foundry is not one magic box; it is a platform surface plus supporting resources, identities, model deployments, data stores, and developer workflows. If you isolate only the front door and leave the side windows open, the compliance monkey will notice.
Azure AI Foundry private endpoints: admin summary
| Design area | Recommended starting point | Why it matters |
|---|---|---|
| Public access | Disable public network access where private access is required, or use selected IPs as a transition pattern. | Stops accidental direct access paths while you prove private connectivity. |
| Private endpoints | Create private endpoints for Foundry and required connected Azure services. | One private endpoint for the obvious resource is rarely enough. |
| DNS | Use the Microsoft-recommended private DNS zones and link them to the right VNets. | Most “private endpoint is broken” tickets are DNS tickets wearing a trench coat. |
| Identity | Prefer Microsoft Entra ID and Foundry RBAC roles over key-based access. | Microsoft notes that key-based authentication grants full access without role restrictions. |
| Rollout | Start with a pilot project and one application path, then expand in rings. | Network isolation is wonderfully secure right up until every developer is blocked. |
Start with identity: RBAC is part of the network story
Network isolation controls where requests can come from. RBAC controls who can do what after the traffic arrives. Microsoft’s Foundry RBAC documentation calls out built-in roles such as Foundry User, Foundry Owner, Foundry Account Owner, and Foundry Project Manager. It also notes that the roles were renamed from the previous Azure AI role names while role IDs and core permissions remain unchanged.
For secure projects, make sure both the human or service principal and the project’s managed identity have the required roles at the right scope. If an app can resolve the private endpoint but still receives authorization errors, do not keep adding DNS zones like decorative stickers. Check RBAC, managed identity, and whether the code is using Entra authentication or a key.
Design the private endpoint path
A private endpoint gives an Azure resource a private IP address from your virtual network. Clients use DNS to resolve the service name to that private IP. Microsoft’s Private Endpoint DNS guidance is blunt in the best possible way: configure DNS correctly so the fully qualified domain name resolves to the private endpoint IP, and avoid overriding zones in a way that breaks public endpoint resolution without proper forwarding.
For Foundry projects, plan the full graph before flipping switches:
- Who connects? Browser users, build agents, backend APIs, jump boxes, self-hosted integration runtimes, and automation jobs may need different paths.
- From where? Corporate network, VPN, ExpressRoute, hub-and-spoke VNets, private build agents, or managed app environments.
- To what? Foundry project/account, model deployments, storage, Key Vault, monitoring, private data sources, and approved outbound endpoints.
- With which identity? User principal, managed identity, service principal, or workload identity federation.
Foundry endpoint name
Linked to workload VNet
Endpoint NIC address
RBAC still applies
The common breakpoints
When a Foundry project becomes private, failures usually land in one of four buckets: DNS, network path, identity, or dependency access. The painful part is that they often look similar from the app’s perspective: timeout, 403, 401, or “service unavailable, please sacrifice a rubber duck.”
| Symptom | Likely cause | First checks |
|---|---|---|
| Works from a VM in one VNet, fails elsewhere | Private DNS zone or VNet link mismatch | Compare DNS resolution from both clients; verify zone links and forwarding. |
| Name resolves to public IP | Private DNS not linked or conditional forwarding missing | Check resolver path, private DNS zone records, and corporate DNS forwarding. |
| Connection times out | Route, NSG, firewall, or private endpoint approval issue | Validate private endpoint state, effective routes, NSGs, firewall rules, and service tags if used. |
| HTTP 401 or 403 | Identity or RBAC issue, not the network | Confirm Entra token audience, managed identity, Foundry role, and dependency permissions. |
| Model call works, data access fails | Connected resource or agent dependency not reachable | Trace outbound path from the app/agent to storage, Key Vault, search, database, or API dependency. |
Runbook: roll out Azure AI Foundry private endpoints safely
List users, apps, build agents, data sources, model endpoints, and admin access routes.
Use a non-production Foundry project with representative dependencies.
Private DNS zones, VNet links, forwarding, and test commands before disabling public access.
Use Foundry RBAC, managed identities, and Entra auth before cutting over sensitive workloads.
Storage, Key Vault, monitoring, model deployments, search, databases, APIs, and agent tools.
Know how to re-enable selected IP access or restore a previous route if the release window gets spicy.
- Create the Foundry project intentionally. Microsoft’s project creation guidance positions projects as the workspace for agents, evaluations, files, and app development. Decide early whether this is a sandbox, shared platform project, or production application boundary.
- Define allowed client networks. Include admin workstations, VPN/ExpressRoute paths, private build agents, app subnets, and any jump-box or bastion pattern. If humans need browser access to a private project, their browser path needs private DNS and routing too.
- Create private endpoints for Foundry and dependencies. Do not stop at the first successful private endpoint. If the app needs Key Vault, storage, search, a database, or an internal API, design those private paths as well. See the SharePoint Monkey App Service Key Vault troubleshooting guide for a good reminder that managed identity plus network rules can fail in delightfully non-obvious ways.
- Wire DNS deliberately. Link private DNS zones to the VNets that host clients, agents, and applications. For hybrid users, configure conditional forwarding so corporate DNS can resolve Azure private endpoint names correctly.
- Assign roles with least privilege. Use Foundry RBAC roles for users and managed identities. Keep broader Azure Contributor-style roles away from day-to-day AI users unless they actually administer the resource.
- Test by layer. First DNS resolution, then TCP connectivity, then token acquisition, then Foundry API access, then model deployment or inference, then data source/tool access. This saves everyone from the “we changed five things and now nobody knows which one mattered” dance.
- Disable or restrict public access. Once private paths are proven, change public network access according to your policy. Selected IP access can be a transition tool, but do not let “temporary” become your longest-running production architecture.
- Monitor and document exceptions. Capture known dependencies, approved public egress if any, private endpoint owners, DNS zones, and emergency break-glass steps.
Developer experience: keep the humans productive
Network isolation should protect the platform without turning developers into ticket-generating machines. The cleanest pattern is a documented developer path: VPN or developer VNet access, private DNS resolution, required RBAC roles, sample code using Entra authentication, and a tiny troubleshooting script that checks name resolution and token-based connectivity.
For CI/CD, prefer private build agents or controlled workload identities that can reach the private endpoint. If a pipeline deploys Foundry models, updates app settings, or validates an agent against private tools, it needs the same boring basics: network route, DNS, identity, and least-privilege role assignments. Boring is not an insult here. Boring is how production stays asleep.
Best for: low-risk sandboxes only.
Risk: broad exposure if identity or keys are mishandled.
Best for: transition, admin pilots, known corporate egress.
Risk: brittle when locations and agents change.
Best for: production and sensitive data paths.
Risk: DNS and dependencies must be designed, not wished into existence.
Troubleshooting flow for private Foundry projects
- Resolve the hostname from the failing client. If it does not return the private IP you expect, fix DNS before touching RBAC.
- Confirm the private endpoint connection state. Pending, rejected, or disconnected endpoints will not be saved by positive thinking. Azure is oddly immune to optimism.
- Check route and firewall path. Verify NSGs, UDRs, Azure Firewall, on-premises firewalls, and whether traffic hairpins through an unexpected inspection point.
- Validate authentication mode. If possible, use Entra ID instead of keys. Confirm token acquisition and the target resource/audience.
- Check Foundry RBAC. Confirm the caller has the right Foundry role at the right scope, and that managed identities have access to dependent resources.
- Test dependencies separately. A model endpoint can work while storage, Key Vault, search, or an internal API fails. Split the test so the error has fewer hiding places.
- Look for platform timing. DNS propagation, private endpoint approval, RBAC propagation, and network appliance policy updates can lag. Build validation windows into the change plan.
Governance guardrails to standardize
If multiple teams are building in Foundry, convert the pattern into a platform standard instead of solving the same puzzle repeatedly:
- Landing zone template: required private endpoints, private DNS links, tags, diagnostic settings, and baseline role assignments.
- Policy controls: audit or deny public network access where sensitive projects are expected to be private. Pair this with remediation ideas from the Azure Policy remediation tasks guide.
- Approved connectivity patterns: developer VPN, private build agents, app subnets, hub-and-spoke routing, and egress controls.
- RBAC matrix: who can create projects, deploy models, manage connections, view evaluations, and administer networking.
- Operational runbook: DNS checks, private endpoint approval, rollback plan, monitoring, and escalation contacts.
The goal is not to make AI development slower. The goal is to make secure AI development repeatable enough that nobody has to rediscover private DNS at 11:47 PM with a production release waiting. That is the kind of automation we like: fewer mystery outages, more actual building.
Sources
- Microsoft Learn: Configure network isolation for Microsoft Foundry
- Microsoft Learn: Create a Microsoft Foundry project
- Microsoft Learn: Role-based access control for Microsoft Foundry
- Microsoft Learn: Deploy Microsoft Foundry Models in the Foundry portal
- Microsoft Learn: Azure Private Endpoint private DNS zone values
- Microsoft Learn: Configure Virtual Networks for Foundry Tools
Discover more from SharePoint Monkey
Subscribe to get the latest posts sent to your email.