AZURE HEROES
  • Home-Updates
  • Blog
    • Azure Blog
    • Azure Heroes Events >
      • Azure Heroes Sessions #1
      • Azure Heroes Sessions #2
      • Azure Heroes Sessions #3
      • Azure Heroes Sessions #4
      • Azure Heroes Sessions #5
      • Azure Heroes Sessions #6
      • Azure Heroes Sessions #7
  • Who We Are!
  • eBooks
  • Azure All In One!
    • Azure Disk & Storage
    • Azure Network
    • Azure VPN
    • Azure VMs
  • Free Azure Support!
  • Contact Us
  • Events
    • Beginners Event
    • Developers Event
    • Special Event
    • Azure Workshop #4
    • Azure Workshop #5
    • Azure Workshop #6
    • Azure Workshop #7
    • Azure Workshop #8
    • Azure Heroes Sessions #9
    • Azure Heroes Sessions #10
    • Azure Heroes Sessions #11
    • Azure Heroes Sessions #12
    • Azure Heroes Sessions #13
    • Azure Heroes Sessions #14
    • Azure Heroes Sessions #15
    • Azure Heroes Sessions #16
    • Azure Heroes Sessions #17
    • Azure Heroes Sessions #18
    • Azure Heroes Sessions #19
    • Azure Heroes Sessions #20
    • Azure Heroes Sessions #21
    • Azure Heroes Sessions #22
    • Azure Heroes Sessions #23
    • Azure Heroes Sessions #23
  • Registration Form
  • Privacy Policy
  • Home-Updates
  • Blog
    • Azure Blog
    • Azure Heroes Events >
      • Azure Heroes Sessions #1
      • Azure Heroes Sessions #2
      • Azure Heroes Sessions #3
      • Azure Heroes Sessions #4
      • Azure Heroes Sessions #5
      • Azure Heroes Sessions #6
      • Azure Heroes Sessions #7
  • Who We Are!
  • eBooks
  • Azure All In One!
    • Azure Disk & Storage
    • Azure Network
    • Azure VPN
    • Azure VMs
  • Free Azure Support!
  • Contact Us
  • Events
    • Beginners Event
    • Developers Event
    • Special Event
    • Azure Workshop #4
    • Azure Workshop #5
    • Azure Workshop #6
    • Azure Workshop #7
    • Azure Workshop #8
    • Azure Heroes Sessions #9
    • Azure Heroes Sessions #10
    • Azure Heroes Sessions #11
    • Azure Heroes Sessions #12
    • Azure Heroes Sessions #13
    • Azure Heroes Sessions #14
    • Azure Heroes Sessions #15
    • Azure Heroes Sessions #16
    • Azure Heroes Sessions #17
    • Azure Heroes Sessions #18
    • Azure Heroes Sessions #19
    • Azure Heroes Sessions #20
    • Azure Heroes Sessions #21
    • Azure Heroes Sessions #22
    • Azure Heroes Sessions #23
    • Azure Heroes Sessions #23
  • Registration Form
  • Privacy Policy

Private by Design: A Practical Guide to AI Networking on Azure

6/14/2026

0 Comments

 
Most AI outages I see aren't model problems. They're network problems. A DNS zone that isn't linked, a subnet that's too small, a firewall that silently drops an agent's outbound call. Here's a practical, step-by-step guide to designing private AI networking on Azure: isolation models, traffic flows, subnets, DNS, egress control, the AI gateway and a pre-go-live checklist.

Picture

Why AI Networking Is Different

A classic web app has a predictable network shape: users come in through a WAF, the app talks to a database, done. An AI workload is noisier. There are more PaaS endpoints (models, search, storage, Cosmos DB, Key Vault), each with its own private DNS zone. Agents make outbound calls you didn't write yourself, to tools, MCP servers and sometimes the web. And some managed features run compute that must be injected into your network.

Get the network design wrong and you'll find out in the worst way: an agent that works in dev and times out in production, because a DNS zone isn't linked or a firewall silently drops a token request.

The goalEvery AI call stays on private IPs, every name resolves to a private endpoint, and every outbound connection is one you explicitly allowed.

Step 1: Pick Your Isolation Model

There are three realistic options on Azure today. Choose deliberately, because some of them can't be changed later.

Public + firewall rules / NSP Foundry managed VNet Bring your own VNet
How it works Public endpoints restricted by IP rules or a Network Security Perimeter Microsoft provisions and manages the network for agent compute Agent compute injected into a subnet you own, private endpoints everywhere
Best for PoCs, low-sensitivity data Teams without an enterprise hub who want a secure start fast Enterprises with a hub-and-spoke landing zone
Egress control Limited Allow internet or allow only approved outbound (service tags, private endpoints, FQDN rules on 80/443) Your Azure Firewall / NVA, your rules
Inspection & logging Resource-level logs Managed; FQDN rules create a managed Azure Firewall Full: your firewall, your SIEM
Gotchas Doesn't stop data leaving through the model Can't switch isolation mode back once set; portal creation not supported yet More to design: subnets, DNS, routing, NSGs
My defaultFor enterprise landing zones: bring your own VNet. For a new team with no hub: managed VNet with allow only approved outbound. Whatever you choose, turn off public network access on every AI resource once private access works.

Step 2: Map the Traffic Flows

Before drawing subnets, write down the five flows every AI workload has. Each one needs its own control.

1 · Inbound (users)
User
→
App Gateway / Front Door + WAF
→
Hub firewall
→
App (private endpoint)
2 · App → AI
App / agent
→
AI gateway (APIM)
→
Model private endpoint
3 · Agent → data
Agent
→
AI Search / Storage / Cosmos DB
→
via private endpoints
4 · Agent → tools (egress)
Agent subnet
→
Hub firewall (FQDN rules)
→
Approved APIs / MCP servers
5 · Identity & control plane
Every component
→
Microsoft Entra ID
→
(AzureActiveDirectory service tag)

Flow 4 is the one most designs forget. Agents call tools at runtime, and every tool is a potential exfiltration path. Flow 5 is the one that breaks deployments: block Entra ID and nothing can authenticate.

Picture

Step 3: Plan the Subnets (Before Anyone Deploys)

AI services are picky about subnets. The Foundry Agent Service subnet is the one that catches people out:

  • ▸It's delegated to Microsoft.App/environments.
  • ▸Microsoft recommends a /24 (minimum /27).
  • ▸It can't be shared between Foundry resources: one agent subnet per Foundry resource.
  • ▸The Foundry resource and its VNet must be in the same region. Search, Storage and Cosmos DB can be elsewhere.

A starting layout for one AI workload spoke:

Subnet Purpose Size guidance
snet-agents Foundry Agent Service (delegated to Microsoft.App/environments) /24 recommended, /27 minimum
snet-private-endpoints Private endpoints for Foundry, Search, Storage, Cosmos DB, Key Vault /24 recommended, /27 minimum
snet-app App Service / Container Apps VNet integration Per service requirements
snet-apim AI gateway (if hosted in this VNet) Per APIM tier requirements
IP range gotchaThe agent subnet supports RFC 1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and parts of 100.64.0.0/10. Some ranges are reserved and not supported, including 172.30.0.0/16 and 172.31.0.0/16. Check your IPAM plan before you hand out that /24.

Step 4: Get DNS Right (This Is Where It Usually Breaks)

Private endpoints are useless if names still resolve to public IPs. For a Foundry-based workload you'll typically need these private DNS zones:

Service Private DNS zone
Foundry / Azure OpenAI / AI Services privatelink.cognitiveservices.azure.com
privatelink.openai.azure.com
privatelink.services.ai.azure.com
Azure AI Search privatelink.search.windows.net
Azure Cosmos DB privatelink.documents.azure.com
Azure Storage (blob) privatelink.blob.core.windows.net
Azure Key Vault privatelink.vaultcore.azure.net
  • ▸Host the zones centrally in the connectivity hub and link them to the VNets that resolve through the hub, the same way as the rest of your Private Link estate.
  • ▸Use Azure DNS Private Resolver for on-premises clients, with conditional forwarders for each zone pointing into Azure (the Azure DNS virtual IP is 168.63.129.16).
  • ▸Validate with nslookup from inside the VNet: every AI endpoint must return a private IP.
  • ▸Let Azure Policy create the private DNS records when private endpoints are created, so nobody does it by hand.

Step 5: Control Egress

Default-deny outbound is the whole point. In practice that means:

  • ▸Route the agent and app subnets through the hub firewall with a UDR, and allow only the FQDNs your agents actually need.
  • ▸Allow the AzureActiveDirectory service tag (and the managed identity endpoints) or authentication will fail in confusing ways.
  • ▸Be careful with TLS inspection: a firewall that re-signs traffic with its own certificate can break agent runtimes that don't trust it.
  • ▸Treat every external MCP server or web tool as an explicit, approved egress rule, not a wildcard.
Don't forget the platformPrivate networking doesn't make every feature private. Some tools behave differently under network isolation (for example, certain file-upload flows in Code Interpreter), and web-grounding tools send queries outside your network by design. Check the limitations list before promising "fully private" to your security team.

Step 6: Put the AI Gateway on the Private Path

If you front models with Azure API Management, the tier decides your network options:

APIM tier Inbound Outbound to private backends
Developer / Premium (classic) VNet injection: external or internal mode Yes (injected)
Standard v2 Private endpoint VNet integration (outbound only)
Premium v2 Private endpoint or VNet injection VNet integration or injection
Basic / Standard (classic) Private endpoint No VNet integration

For an enterprise AI gateway, I use either internal-mode injection (Premium classic or Premium v2) or Standard v2 with a private endpoint inbound plus VNet integration outbound. Note that public network access on APIM can only be disabled after a private endpoint is configured.

Step 7: Add a Perimeter for PaaS-to-PaaS

A Network Security Perimeter (NSP) groups PaaS resources (Foundry, AI Search, Storage) into a logical boundary with inbound and outbound rules, and logs every access decision. Start in transition (learning) mode, review the logs, then switch to enforced. It only governs data-plane traffic, so it complements private endpoints rather than replacing them.

The Pre-Go-Live Checklist

  • ✅Public network access disabled on every AI, data and Key Vault resource
  • ✅Agent subnet delegated, /24, dedicated, same region as the Foundry resource
  • ✅All private DNS zones created, linked and resolving to private IPs (checked with nslookup)
  • ✅On-premises DNS forwarding in place through DNS Private Resolver
  • ✅UDRs send agent and app egress through the hub firewall
  • ✅Firewall allows Entra ID and only the approved tool/MCP FQDNs
  • ✅TLS inspection exceptions agreed for AI endpoints
  • ✅AI gateway reachable only privately; public access disabled
  • ✅NSP in transition mode with logs flowing to your SIEM
  • ✅Known feature limitations under network isolation reviewed with the app team

My Take

AI networking isn't harder than any other Private Link design, but it has more moving parts and less tolerance for shortcuts. Plan the subnets and DNS zones before the first deployment, treat agent egress as a security control rather than an afterthought, and test name resolution from inside the network on day one. That's 80% of the incidents I see, avoided.

Earlier in this series: the AI Gateway and 10 decisions that make or break your AI platform.

References
Set up private networking for Foundry Agent Service
Configure managed virtual network for Microsoft Foundry
Configure network isolation for Microsoft Foundry
Add Foundry to a network security perimeter
API Management virtual network options
Secure networking for Azure AI platform services (CAF)
Networking recommendations for AI on Azure infrastructure (CAF)
Baseline Foundry chat architecture in an Azure landing zone
Integrate Container Apps with Azure Firewall
0 Comments



Leave a Reply.

    Author

    Mohammad Al Rousan is a Microsoft Most Valuable Professional (MVP) in Azure, a cloud architect, and a recognized leader in enterprise AI and data platforms. With over a decade of hands-on experience, he specializes in designing and scaling secure, production-grade solutions across Azure AI, Databricks, and modern cloud-native architectures.

    Picture
    Picture
    Top 10 Microsoft Azure Blogs

    Archives

    September 2026
    June 2026
    May 2026
    April 2026
    March 2026
    February 2026
    June 2025
    May 2025
    April 2025
    February 2025
    January 2025
    December 2024
    November 2024
    October 2024
    September 2024
    July 2024
    June 2024
    May 2024
    April 2024
    February 2024
    September 2023
    August 2023
    May 2023
    November 2022
    October 2022
    July 2022
    June 2022
    May 2022
    April 2022
    March 2022
    February 2022
    January 2022
    December 2021
    November 2021
    May 2021
    February 2021
    December 2020
    November 2020
    October 2020
    September 2020
    August 2020
    June 2020
    April 2020
    January 2020
    July 2019
    June 2019
    May 2019
    February 2019
    January 2019

    Categories

    All
    AKS
    Azure
    Beginner
    CDN
    DevOps
    End Of Support
    Fundamentals
    Guide
    Hybrid
    License
    Migration
    Network
    Security
    SQL
    Storage
    Virtual Machines
    WAF

    RSS Feed

    Follow
    Free counters!
Powered by Create your own unique website with customizable templates.