Azure Private Link: Bringing Cloud Services Inside Your Private Network

Azure Private Link: Bringing Cloud Services Inside Your Private Network

A complete, plain-English guide to Azure Private Link: private endpoints, Private Link Service, the DNS magic that makes it work, hybrid and hub-and-spoke designs, security benefits, troubleshooting, cost, and the patterns that separate smooth deployments from weeks of confusion.

Imagine a large office building with a strict security desk at the front. Your employees need to use a specialist service, say an external archive that stores company records. The usual way is to walk out the front door, cross a busy public street, and ring the archive’s public doorbell. Even if the archive checks your badge, you have still walked on a public road, and anyone could, in theory, try the same doorbell. Now imagine the archive builds a private door inside your own building, directly connected to its vault by a sealed tunnel. Your staff never step outside. Only those who work in your building can reach that door, and it opens only into your vault, not any other customer’s. That private door is the central idea of Azure Private Link.

This guide assumes you know nothing about it. Each new term is explained when it first appears, with an everyday comparison. We then go deep: what a private endpoint really is, why DNS is the part that trips almost everyone, how traffic flows, how to connect from on-premises networks, how to expose your own service privately to other customers, how to control and monitor the traffic, and how to troubleshoot. Azure networking features evolve, so where limits, prices or behaviors may have changed, we say so and recommend checking the current official documentation.

1The Problem: Public Doors on Private Data

To appreciate the solution, we first look at what the default looks like.

Platform services have public addresses

Many Azure services, such as storage accounts, SQL databases, key vaults and message queues, are called platform services or PaaS services, short for platform as a service. You do not manage their servers; you simply use them. By default, each one is reachable through a public endpoint: a name and an address on the public internet. Authentication and firewall rules protect them, but the front door still faces the street.

For many organizations that is not acceptable. Security policies, regulations and risk reviews often require that sensitive traffic never travels over public addresses at all. Teams want the database to feel like it is sitting inside their own private network, with a private address, reachable only by their own systems.

Simple Analogy

A public endpoint is like a bank branch on a main road: anyone can walk up to the door, and only the guard inside decides who enters. A private endpoint is like a secret internal corridor between your office and your bank’s vault that is not visible from the street at all.

What organizations really want

Four wishes appear again and again. First, reach platform services using private addresses from inside the virtual network. Second, reach them from on-premises networks over private connections without going through the internet. Third, ensure that private access leads to one specific resource, not to the whole service where an insider could copy data to another customer’s account. Fourth, let teams publish their own services to customers or other business units without exposing them publicly. Private Link addresses all four.

Private IP
your service appears inside your own network
1 resource
each endpoint maps to a specific instance
2 sides
consumer endpoint and provider service
i
Good to know

Private Link does not make a service “more encrypted” or change who is allowed to log in. It changes the network path: how the request gets there. Identity, permissions and encryption remain separate controls that you still need.

2What Azure Private Link Is

Private Link is a family of pieces that work together, not a single switch.

Azure Private Link lets you access Azure platform services, and services hosted by other organizations on Azure, over a private connection inside your virtual network. A virtual network, often shortened to VNet, is your own isolated network in Azure with its own address range. Private Link places a private address from that range in front of the target service, so traffic stays on the Microsoft backbone network and never needs the public internet.

flowchart LR
  A["Client VM in your VNet"] --> B["Private endpoint with private IP"]
  B --> C["Microsoft backbone network"]
  C --> D["Azure service resource, for example a storage account"]
        
FIG 1 — The basic idea: a private address in your network leading to one specific service resource
Piece 1

Private endpoint

A network interface in your subnet with a private IP address that represents a specific resource, such as one storage account or one database server.

Piece 2

Private Link resource

The destination: the Azure service instance the endpoint connects to. Many services in Azure support this.

Piece 3

Private Link Service

The provider-side feature that lets you expose your own service, placed behind a standard load balancer, so others can reach it through their own private endpoints.

Piece 4

Private DNS

The naming system that makes the service’s usual name resolve to the private address inside your network. Without it, nothing works as expected.

Piece 5

Connection approval

A workflow in which the owner of the target resource accepts or rejects a private endpoint connection request.

Simple Analogy

Think of an apartment building’s internal phone system. The private endpoint is an extension number inside your building. The resource is the person at the other end. The private DNS is the directory that tells everyone which extension to dial when they ask for that person by name.

Where to find it

The Azure portal offers a Private Link Center that gathers private endpoints, private link services and pending connection requests in one place. This is useful for security teams who want one view across subscriptions.

3Anatomy of a Private Endpoint

A private endpoint is simple to describe and full of detail underneath.

A private endpoint is a network interface, the virtual equivalent of a network card, that is created in a subnet of your virtual network. It receives a private IP address from that subnet’s range. The interface is linked to one specific resource through a connection managed by the platform. Any machine that can reach the private address, whether in the same network, a peered network or on-premises through a private link, can send requests to the target service through it.

1

Choose the target resource

Select the exact service instance, such as a particular storage account in a particular subscription.

2

Choose the sub-resource

Many services expose several separate endpoints inside one resource. A storage account, for example, has separate ones for blob, file, queue, table and web. You pick which one the endpoint represents. This choice is called the group ID or target sub-resource.

3

Place it in a subnet

The endpoint takes one private address from the subnet. Plan the size of the subnet with growth in mind.

4

Wire up DNS

Link the endpoint to a private DNS zone, so the service name resolves to the private address.

5

Get the connection approved

Within the same organization with sufficient permission, this is automatic. Otherwise the owner must approve it.

One endpoint, one sub-resource

A common beginner surprise is that a single private endpoint does not cover every feature of a service. If an application uses both the blob and the file features of one storage account, it needs two private endpoints, one for each sub-resource, and two matching DNS entries. Missing one leaves that feature still trying to use the public path.

!
Common Misconception

“I created a private endpoint, so the service is now private.” Not by itself. Unless you also turn off public network access on the resource, the public endpoint still exists and still works. The private endpoint only adds a second, private way in.

Endpoints are regional but flexible

The endpoint lives in a virtual network in one region, but it can point to a resource in a different region, which supports designs where a service in another region is reached privately. Plan latency and data-transfer cost accordingly. Also remember that the subnet holding the endpoint must exist in the same region as the virtual network, naturally, and the endpoint lives in the same subscription as the network it sits in, which may differ from the subscription of the target.

4Private Link Service: Publishing Your Own Service

The same technology works in reverse, for providers.

Until now we described the consumer side: someone who wants to reach a service privately. The provider side is for organizations that run a service of their own and want customers, partners or other teams to reach it privately. This is called Private Link Service. You place your application behind a standard load balancer, a component that spreads incoming connections across several servers, and then attach a Private Link Service to the load balancer’s front end. Consumers then create private endpoints in their own networks that connect to your service.

flowchart LR
  subgraph Consumer["Consumer network"]
    C1["Client application"] --> PE["Private endpoint"]
  end
  subgraph Provider["Provider network"]
    PLS["Private Link Service"] --> LB["Standard load balancer"]
    LB --> S1["Server 1"]
    LB --> S2["Server 2"]
  end
  PE ==>|Private connection| PLS
        
FIG 2 — Consumer endpoint connecting to a provider’s Private Link Service
Feature

Alias

A unique name for your service that you can share with consumers so they can request a connection even from other organizations.

Feature

Visibility

Controls who can even see and request your service: nobody, specific subscriptions, or everyone who knows the alias.

Feature

Auto-approval

A list of subscriptions whose requests are approved automatically. Others wait for manual approval.

Feature

NAT IP configuration

Traffic from consumers is translated to addresses in a subnet you provide, so consumer address ranges can overlap with yours without conflict.

Feature

Proxy protocol

An optional setting that passes the original consumer connection details to your application, which otherwise only sees the translated address.

Simple Analogy

A provider running a Private Link Service is like a company that installs a private phone line to each important client’s office. Clients dial a local extension in their own building, and the call arrives at the company’s switchboard, which distributes it to available staff. The client never sees the company’s internal numbering.

Why address overlap is not a problem

Different customers often use the same private address ranges, such as the common ranges that begin with ten. Normally two networks with overlapping ranges cannot be connected. Private Link avoids this: the consumer sees an address from its own range, the provider sees translated addresses from its NAT subnet, and no routes are exchanged between the two networks. This makes it ideal for software as a service providers with many customers.

i
Practical Rule

Size the NAT subnet for the number of simultaneous connections you expect, not for the number of customers. Each translated connection uses a combination of address and port, and running short causes failures that are hard to diagnose.

5Private Link, Service Endpoints and Firewalls Compared

Azure offers more than one way to restrict access, and they are not the same.

Service endpoints are an older feature that extends your virtual network’s identity to a service, so that the service can be told “accept traffic only from this subnet”. The service still uses its public address, but the platform tags the traffic as coming from your subnet. Public firewall rules simply allow certain internet addresses. Private Link gives the service a true private address inside your network. Each approach has a place.

AspectPublic with firewall rulesService endpointsPrivate Link
Address used by clientPublic IP of the servicePublic IP of the servicePrivate IP in your VNet
Reachable from on-premises privatelyNo, goes via internetNot directly for on-premises clients in the usual designYes, through VPN or ExpressRoute
Scope of accessAllowed address rangesWhole service in a region, filtered by subnet rulesOne specific resource instance
Protection against data exfiltrationWeakModerateStrong, since endpoint maps to one resource
Extra costNoneNoneHourly endpoint charge plus data processed
Setup effortLowLowHigher, mainly because of DNS

Private Link: Advantages

  • True private address inside your network
  • Works from peered networks and from on-premises
  • Maps to one specific resource, limiting exfiltration
  • Lets you turn off public access completely
  • Lets providers publish services without exposing them
  • Allows overlapping address ranges between networks

Private Link: Trade-offs

  • Costs money per endpoint and per data processed
  • Requires careful DNS design
  • Needs one endpoint per service and sub-resource
  • More resources to manage and govern at scale
  • Some services or features have restrictions or limits
i
Practical Rule

If you need on-premises access, strong exfiltration control or the ability to disable public access entirely, choose Private Link. If you only need a cheap, quick restriction between Azure subnets and the service for a low-risk workload, service endpoints may suffice. Check the current recommendation for your service, since guidance has been moving toward Private Link.

flowchart TD
  A["Need to restrict access to a platform service"] --> B{"Must clients use private IPs or connect from on-premises?"}
  B -->|Yes| C["Use Private Link"]
  B -->|No| D{"Need strong exfiltration control or disabled public access?"}
  D -->|Yes| C
  D -->|No| E{"Only Azure subnets need access and low risk?"}
  E -->|Yes| F["Service endpoints may be enough"]
  E -->|No| G["Public endpoint with strict firewall rules"]
        
FIG 3 — A simplified decision flow for choosing an access approach

6How Traffic Actually Flows

The path of a request tells you where to look when something breaks.

When a client in your virtual network sends a request to a service through a private endpoint, the packet leaves the client with the private address as its destination. The virtual network routes it to the endpoint’s network interface. From there, the Azure platform carries it across the Microsoft backbone network, a private global network owned and operated by Microsoft, directly to the target resource. It does not pass through the public internet, even though the service is a public cloud service.

1

Application asks for a name

The application uses the usual service name. DNS turns it into the private address of the endpoint.

2

Network routes to the endpoint

The client’s network sends the packets to the private address. Network security rules and routes apply here.

3

Platform forwards to the resource

The endpoint passes traffic across the backbone to the specific resource it represents.

4

Service authenticates and responds

The service still checks identity and permissions as usual and returns the response along the same private path.

Simple Analogy

It is like using an internal courier chute inside a skyscraper that drops parcels straight into a specific bank vault on another floor. The chute is private, but the vault still demands the correct key before it hands anything out.

The endpoint does not use your service’s public address at all

The traffic does not leave toward the service’s public address and get redirected. It is addressed to the private one from the start. This is why a correct DNS answer is critical: if the client resolves the public address, the packets go out the public way and ignore your private endpoint entirely.

Special behavior of some services

Certain services have connection modes that affect how private endpoints work. Azure SQL, for example, offers redirect and proxy connection policies. With private endpoints, connections use the proxy approach, so the client talks to the gateway at the private address instead of being redirected to a separate node address. Always read the service-specific guidance before designing firewalls and routes.

7DNS: The Part Everyone Gets Wrong

If Private Link has one secret, it is that the network piece is easy and the naming piece is hard.

DNS, the Domain Name System, is the internet’s phone book. It translates names that humans use, such as the address of a storage account, into the numeric addresses that machines use. When you create a private endpoint, the service’s name must resolve to the private address when asked from inside your network, but still resolve to the public address when asked from anywhere else. Making that split work is the trickiest part of any Private Link design.

The trick: a special alias name

Azure solves this with a chain of names. When someone asks for the normal service name, the public DNS answers with an alias that points to a special name in a “privatelink” zone. For example, the storage blob name is redirected to a name containing the word privatelink. Outside your network, that special name has no private answer, so it falls through to the public address. Inside your network, you create a private DNS zone with the matching privatelink name and put an entry for the private endpoint in it. Your clients then get the private address.

sequenceDiagram
  participant C as Client VM
  participant R as DNS resolver
  participant PZ as Private DNS zone
  participant PD as Public DNS
  C->>R: Ask for service name
  R->>PD: Ask public DNS
  PD-->>R: Alias to privatelink name
  R->>PZ: Ask private zone for privatelink name
  PZ-->>R: Private IP of endpoint
  R-->>C: Private IP
  Note over C: Client connects to the private IP
        
FIG 4 — Name resolution with a private endpoint: public alias, private answer
Simple Analogy

You call a company’s main number and the receptionist says, “for your account, dial our VIP desk”. Outside the building, the VIP desk number goes to the public reception. Inside your building, the same VIP desk number rings a direct internal line. The same words lead to different places depending on where you stand.

Private DNS zones you will meet

ServiceTypical private zone name
Storage, blobprivatelink.blob.core.windows.net
Storage, fileprivatelink.file.core.windows.net
Azure SQL Databaseprivatelink.database.windows.net
Key Vaultprivatelink.vaultcore.azure.net
Cosmos DB, NoSQL APIprivatelink.documents.azure.com
Service Bus and Event Hubsprivatelink.servicebus.windows.net
Container Registryprivatelink.azurecr.io
App Service and Functionsprivatelink.azurewebsites.net
!
Check Before You Plan

Zone names differ by service and by cloud environment, such as government clouds. Use the official table of private DNS zone names for your service and cloud and do not guess them. A zone with the wrong name will quietly do nothing.

The three most common DNS failures

ANTI-PATTERN-01 Avoid
Problem

The private DNS zone exists but is not linked to the virtual network where the clients live.

Why It’s Harmful

Clients in the unlinked network cannot see the zone, so they receive the public address. Connections go the public way, then fail if public access is disabled, or succeed insecurely if it is not.

Correct Approach

Link the private DNS zone to every virtual network whose workloads must resolve the private address, or to the hub network used by your central DNS forwarders.

ANTI-PATTERN-02 Avoid
Problem

On-premises DNS servers are not told how to resolve privatelink names, so on-premises clients still resolve the public address.

Why It’s Harmful

On-premises users either go out to the internet or fail to connect, even though a perfectly good private path exists.

Correct Approach

Configure conditional forwarding from on-premises DNS to a DNS resolver inside Azure that can read the private zones.

ANTI-PATTERN-03 Avoid
Problem

Forwarding the whole public zone, such as the entire windows.net domain, to the private resolver instead of the privatelink zone.

Why It’s Harmful

Names for resources that have no private endpoint stop resolving correctly, causing mysterious outages for unrelated services.

Correct Approach

Forward only the specific privatelink zones, and let everything else use normal public resolution.

8DNS Architectures: From One Network to a Whole Enterprise

The right DNS design depends on how many networks and how much on-premises integration you have.

Design 1

Single network, Azure-provided DNS

Link a private DNS zone to the network. Clients in it use the default Azure resolver and receive private answers. The simplest case.

Design 2

Several spoke networks, shared zones

One set of private DNS zones linked to every spoke, or to a central network. Avoids duplicate zones and conflicting answers.

Design 3

Hub with a DNS resolver

Zones are linked to the hub. Spokes send their queries to a resolver in the hub, which can see the zones. Central control and fewer links.

Design 4

Hybrid with on-premises forwarding

On-premises DNS forwards privatelink zones to a resolver in Azure. Both sides share a consistent view of names.

flowchart LR
  OP["On-premises DNS server"] -->|Conditional forward of privatelink zones| IN["Azure DNS Private Resolver inbound endpoint"]
  IN --> Z["Private DNS zones linked to hub VNet"]
  SP["Spoke VNet workloads"] -->|Custom DNS setting| IN
  Z --> A["Answer: private IP of endpoint"]
        
FIG 5 — Hybrid DNS with a central resolver in the hub

The role of the private resolver

Azure offers a managed DNS Private Resolver. It has an inbound endpoint that accepts questions from on-premises or other networks and answers them using the private zones, and an outbound endpoint with rules that forward chosen names to other DNS servers. Before it existed, teams had to run their own forwarder virtual machines, which needed patching, scaling and high availability. The managed resolver removes that work and is generally the preferred design today.

Simple Analogy

A central DNS resolver is like a company switchboard operator. Instead of every department keeping its own contact book, everyone asks the operator, who knows which numbers are internal extensions and which are outside lines.

Records that update themselves

When you attach a DNS zone group to a private endpoint, Azure automatically creates and removes the matching records in the private zone. If you delete the endpoint, the record disappears with it. Doing this by hand is a common source of stale entries pointing to addresses that no longer belong to the endpoint.

i
Practical Rule

Keep exactly one private zone per privatelink name across the whole organization, in a central subscription, and link it where needed. Several competing copies of the same zone are the number one cause of “it works in one network but not the other”.

9Connection Approval and Lifecycle

Who decides whether a private door may be opened?

A private endpoint is a request to connect to a resource. The owner of the resource must be able to control which requests are accepted. Each connection has a state that you will see in the portal.

State

Approved

The connection is active and traffic can flow through the endpoint.

State

Pending

The request was made but the resource owner has not yet accepted it. Traffic does not flow yet.

State

Rejected

The owner declined the request. The endpoint remains but cannot be used.

State

Disconnected

The other side removed the connection, so the endpoint exists but is no longer attached.

Automatic versus manual approval

If the person creating the endpoint also has sufficient permission over the target resource, as is usual inside one team, the connection is approved automatically. When the target belongs to another team or another organization, or when the creator lacks the permission, the connection waits in a pending state, and the resource owner must approve it. Providers of private link services can pre-approve specific subscriptions to speed this up.

Simple Analogy

Approval is like a building reception. Your own employees badge straight in. A visitor from another company waits at the desk until the host comes down and confirms they are expected.

Permissions that matter

Creating a private endpoint requires rights on the network side to create the interface and on the resource side to request the connection. Approving requires rights on the target. Separating these roles supports good governance: network teams manage endpoints and DNS, while data owners decide who may connect to their data.

!
Common Mistake

Leaving endpoints in a pending state and then debugging the network for hours. If a freshly created endpoint does not work, check the connection state before anything else.

10Controlling Traffic: NSGs, Routes and Firewalls

A private address is still a network address, and network controls can apply to it.

Network security groups

A network security group, or NSG, is a set of allow and deny rules attached to a subnet or interface. Historically, private endpoints ignored NSG rules by default, and a subnet setting called the network policy had to be enabled before NSG rules and custom routes would apply to them. Platform behavior has evolved, so check the current option for private endpoint network policies on your subnet. Where it is enabled, you can write rules that restrict which clients may talk to the endpoint, which is a valuable second layer of defense.

User-defined routes and inspection

Many organizations send traffic through a central firewall for inspection. Private endpoints add a wrinkle: the platform creates a very specific route for each endpoint address, which normally wins over your custom route and sends traffic straight to the endpoint, skipping the firewall. To inspect that traffic, you use the subnet network policy setting that lets your own routes apply to private endpoints, and you handle address translation so that return traffic comes back through the same firewall. Without that, you can get asymmetric routing: requests go through the firewall but replies take a shortcut, and the connection breaks.

flowchart LR
  A["Client in spoke"] --> B["Central firewall in hub"]
  B --> C["Private endpoint"]
  C --> D["Target resource"]
  D -.->|Reply must return the same way| B
  B -.-> A
        
FIG 6 — Inspecting private endpoint traffic requires symmetric paths
Simple Analogy

Airport security checks you on the way in. If you could leave through a side door without passing the same checkpoint, the record of your visit would be incomplete and the guards would be confused. Symmetric routing keeps entry and exit on the same checked path.

Application-level filtering

Some firewalls can filter traffic aimed at private endpoint addresses by name or by application rule. Whether you inspect or not depends on your security requirements. Inspecting everything adds cost and latency; not inspecting trusts the endpoint’s inherent resource scoping and the service’s own authentication.

i
Good to know

Put private endpoints in a dedicated subnet where possible. It makes NSG rules, route tables and address planning much simpler than mixing endpoints with virtual machines.

11Security Benefits and Governance

Private Link is a security feature, so let us be precise about what it protects.

Benefit 1

Removes public exposure

With public network access disabled on the resource, the service is unreachable from the internet. Scanners and attackers have nothing to probe.

Benefit 2

Limits data exfiltration

The endpoint maps to one resource, so a compromised or careless insider cannot use it to copy data into a different account of the same service.

Benefit 3

Keeps traffic on the backbone

Traffic avoids the public internet, which reduces exposure to interception and certain denial-of-service paths.

Benefit 4

Supports compliance

Many regulations and internal standards require private network access to sensitive data, and Private Link provides evidence for it.

Simple Analogy

Data exfiltration protection is like a mailroom that can only send parcels to one registered address. Even if a dishonest employee tries to mail secrets to a rival, the machine only addresses the approved vault.

What it does not protect against

Private Link does not stop a stolen password or key. It does not stop an authorized user from misusing their rights. It does not protect against vulnerabilities inside the service. It does not inspect content. You still need strong identity, least privilege, encryption, monitoring and patching. Private Link narrows the doors; it does not replace the locks.

Governance at scale

Large organizations manage private endpoints through policy and automation rather than by hand. Azure Policy can audit or deny services whose public access is enabled, and can automatically deploy private endpoints or DNS zone groups for resources that lack them. Naming conventions, tags for ownership and cost center, and central visibility in the Private Link Center help keep order when hundreds of endpoints exist.

!
Common Mistake

Enabling Private Link everywhere but never disabling public access, then reporting the environment as “private” in an audit. A private endpoint with an open public door is a second door, not a closed one.

12Which Services Support Private Link

A long and growing list, grouped here by purpose.

CategoryExamples of services with private endpoint support
Storage and data lakesBlob, files, queues, tables, data lake storage
DatabasesAzure SQL Database, Managed Instance connectivity patterns, Cosmos DB, PostgreSQL and MySQL flexible servers
Security and secretsKey Vault, Managed HSM
Messaging and eventsService Bus, Event Hubs, Event Grid
Compute and webApp Service, Functions, Container Registry, private Kubernetes control planes
Analytics and AISynapse, Data Factory, Azure OpenAI and other AI services, Machine Learning workspaces
MonitoringAzure Monitor through a Private Link Scope
Edge and deliveryOrigins for certain tiers of content delivery and application gateway offerings
!
Check Before You Plan

Support, sub-resource names, DNS zone names, tier requirements and limitations differ per service and change over time. Always confirm in the service’s own documentation that your tier supports private endpoints and which group IDs you must create.

Service-specific notes worth knowing

Storage accounts

Remember one endpoint per sub-resource. Disable public network access once private access works, and consider a firewall exception only for trusted services that cannot use the endpoint.

Azure SQL Database

Private endpoints use the proxy connection style. Verify that the name resolves to the private address from every place the application runs, including build agents and reporting tools.

Key Vault

Applications use the vault name constantly, often at startup. A DNS mistake here breaks deployments and secrets retrieval across many applications at once.

App Service and Functions

Private endpoints control inbound access to the app. Outbound access to other private services is a separate feature, regional virtual network integration, and many designs need both.

Azure Monitor

A Private Link Scope groups the monitoring resources you want reachable privately. It needs several DNS zones and affects data ingestion, so plan it carefully before enabling.

13Hybrid Connectivity: From On-Premises to Private Endpoints

The private address works for any client that can route to it.

One of the biggest reasons to adopt Private Link is that on-premises systems can use platform services privately. Connect the data center to Azure with a site-to-site virtual private network, which builds an encrypted tunnel across the internet, or ExpressRoute, a dedicated private circuit. Once the on-premises network can route to the subnet holding the private endpoint, the on-premises client simply connects to the private address.

flowchart LR
  A["On-premises application"] --> B["VPN or ExpressRoute"]
  B --> C["Hub virtual network"]
  C --> D["Private endpoint subnet"]
  D --> E["Storage account or database"]
  A -.->|DNS query forwarded| F["Azure DNS resolver"]
        
FIG 7 — On-premises client reaching a platform service through a private endpoint
1

Establish the private link to Azure

Set up VPN or ExpressRoute and verify routes are exchanged so that on-premises sees the endpoint subnet.

2

Place the endpoint

Create the endpoint in a subnet reachable from the hub or gateway, usually in the hub or a shared services network.

3

Make DNS work from on-premises

Add conditional forwarders so privatelink zones are answered by the Azure resolver.

4

Open firewall paths

Allow the required ports in on-premises firewalls and in network security rules in Azure.

5

Test from the real client

Resolve the name and connect from an actual on-premises machine, not just from a test virtual machine in Azure.

i
Practical Rule

Check address overlap early. If your on-premises ranges overlap with the Azure virtual network that holds the endpoint, routing breaks. Plan address space for the whole enterprise before you create networks.

14Hub-and-Spoke and Landing Zone Design

Where you place endpoints and zones shapes cost, security and simplicity.

Many enterprises use a hub-and-spoke network layout. A central hub network holds shared components such as the firewall, gateways and DNS resolvers. Separate spoke networks hold individual workloads and are peered to the hub. Private endpoints can be placed in the hub, in a dedicated shared-services network, or in each workload’s spoke.

flowchart TD
  H["Hub: firewall, gateway, DNS resolver, shared private endpoints"]
  S1["Spoke 1: Workload A"] --- H
  S2["Spoke 2: Workload B"] --- H
  S3["Spoke 3: Data platform with own private endpoints"] --- H
  OP["On-premises"] --- H
        
FIG 8 — A typical hub-and-spoke layout with central DNS and shared endpoints
PlacementStrengthWeakness
Endpoints in the hubCentral control, shared by many spokes, easy on-premises accessHub grows large, blast radius is wider, ownership is blurred
Endpoints in each spokeClear ownership, isolated per workloadMore endpoints, more cost, more DNS entries to manage
Dedicated shared-services networkBalanced: central but separate from the hub’s network functionsOne more network to connect and secure
Simple Analogy

Putting endpoints in the hub is like one shared mailroom for a campus; placing them in each spoke is like a mailbox in every building. The shared mailroom is cheaper and easier to guard, but a problem there affects everyone.

Reuse an endpoint across peered networks

A private endpoint in one virtual network can be used by clients in other networks that are peered to it, as long as routing and DNS allow it. This is often more economical than creating one endpoint per spoke for the same service, but be aware that traffic crossing peering incurs data charges, and shared endpoints centralize risk.

Standardize with policy and modules

In a landing zone, teams should not hand-build endpoints. Provide approved templates, infrastructure-as-code modules and Azure Policy that deploys the endpoint and its DNS zone group automatically when a team creates a supported service. This produces consistent naming, correct DNS and measurable compliance.

15Setting It Up Step by Step

The order matters; doing DNS last is the classic mistake.

1

Plan the address space and subnet

Reserve a subnet for private endpoints with room to grow. Each endpoint uses at least one address, and some services use more.

2

Decide the DNS design first

Choose where private zones will live, which networks link to them, and how on-premises will forward queries.

3

Create the private endpoint

Pick the resource and sub-resource, choose the subnet, and attach a private DNS zone group so records are created automatically.

4

Check the connection state

Confirm that it is approved. If pending, ask the resource owner to approve.

5

Verify name resolution

From a client in each network that needs access, resolve the service name and confirm it returns the private address.

6

Test the application path

Run a real operation, such as reading a blob or running a query, and confirm it succeeds over the private address.

7

Migrate clients and then close the public door

After every client is confirmed on the private path, disable public network access on the resource. Do this last, ideally in a quiet window.

8

Document and monitor

Record the design, owners and DNS zones, and enable logging and alerts.

!
Common Mistake

Disabling public access before every client, including pipelines, monitoring tools, backup services and developers’ laptops, has a private route. This is how projects cause outages on the first day. Inventory every consumer first.

16Common Patterns for Platform Services

Recipes that appear in nearly every enterprise design.

Private web application with private data

A web app integrated with a virtual network makes outbound calls to a database and a storage account through private endpoints. Inbound traffic reaches the app through a gateway or a private endpoint on the app itself. No part of the data path touches a public address.

Secure data platform

Analytics workspaces, data lake storage, a key vault and a metadata database all have private endpoints in a data subnet, with public access disabled. Data engineers reach the platform through a private route from their network.

Private container pipeline

A container registry and a private Kubernetes control plane use private endpoints, so that build agents and cluster nodes pull images and talk to the control plane without public exposure.

Secrets and configuration without public exposure

A key vault with a private endpoint serves secrets to applications inside the network. Public access is disabled, and access policies or role assignments restrict which identities may read.

Private monitoring pipeline

A Private Link Scope for Azure Monitor lets agents in private networks send telemetry without public endpoints. Careful DNS and scope configuration prevent ingestion from silently failing.

Pairing inbound and outbound controls

A subtle point: a private endpoint on a service controls how others reach it. To let that service reach other private resources, it may need its own outbound network integration. Treat inbound and outbound as separate decisions for each component, and draw both on your architecture diagram.

Simple Analogy

Giving a shop a private front door for deliveries does not give its staff a private back road to the warehouse. Inbound access and outbound access are separate roads that must both be built.

17Publishing Services Privately as a Provider

For software vendors and internal platform teams, Private Link Service opens a clean delivery model.

1

Put the service behind a standard load balancer

The Private Link Service attaches to a load balancer front end, so your service must be reachable through one.

2

Create the Private Link Service

Choose the front end, define the NAT subnet and addresses, and decide on visibility and auto-approval.

3

Share the alias

Give consumers the alias or the resource identifier so they can create private endpoints that point to it.

4

Approve and monitor connections

Approve requests, track each consumer’s connection, and revoke when a contract ends.

5

Provide DNS guidance

Tell consumers which private DNS name to create so their applications can find your service by a friendly name.

Provider Advantages

  • Customers never receive routes into your network
  • No exposure of the service on the public internet
  • Overlapping customer address ranges are fine
  • Granular approval and revocation per customer
  • Strong selling point for security-sensitive customers

Provider Trade-offs

  • Requires a standard load balancer in front of the service
  • The NAT subnet needs careful capacity planning
  • Applications see translated addresses unless proxy protocol is used
  • Operational work grows with the number of customers
i
Good to know

If your application logs or rules rely on the caller’s address, enable the proxy protocol option and make your application parse it. Otherwise, every customer appears to come from the same small range of translated addresses.

Simple Analogy

A provider’s service is like a restaurant with a private delivery chute built into each regular customer’s office wall. Orders arrive straight in the kitchen through a numbered slot. The restaurant never needs to know how the customer’s building is laid out.

18Monitoring, Logging and Troubleshooting

When something cannot connect, work through the layers in order.

What you can observe

Signal

Endpoint metrics

Bytes in and out through the endpoint, helpful to confirm traffic really uses the private path.

Signal

Connection state

Approved, pending, rejected or disconnected status for each connection.

Signal

Flow logs

Records of allowed and denied traffic at the network security group level, useful for spotting blocked flows.

Signal

DNS query logs

Logs from the resolver showing what was asked and answered, helpful for catching public answers where private ones were expected.

Signal

Service diagnostic logs

The target service often logs the source address of requests, letting you confirm whether calls arrive from the private range.

flowchart TD
  A["Cannot connect"] --> B{"Connection state Approved?"}
  B -->|No| C["Approve or recreate the connection"]
  B -->|Yes| D{"Name resolves to private IP from the client?"}
  D -->|No| E["Fix DNS: zone link, forwarders, custom DNS settings"]
  D -->|Yes| F{"Route and NSG allow the path?"}
  F -->|No| G["Fix routes, network policy, NSG, firewall"]
  F -->|Yes| H{"Public access disabled and client using private path?"}
  H -->|Unsure| I["Check service logs and client network"]
  H -->|Yes| J["Check authentication, permissions and service-specific settings"]
        
FIG 9 — A layered troubleshooting flow for private endpoint problems
SymptomLikely causeWhat to do
Name resolves to a public addressZone not linked, client uses other DNS, missing forwarderCheck which resolver the client uses and the zone links
Resolves to private IP but connection times outNSG, route, firewall or on-premises routing blocks itUse connection tests and flow logs to find the block
Connection works from Azure but not on-premisesOn-premises DNS or routing missingAdd conditional forwarders and verify routes
Intermittent failures with a central firewallAsymmetric routingMake forward and return paths symmetric, review translation
Works for blob but not fileMissing endpoint for the second sub-resourceCreate the endpoint and DNS entry for each sub-resource
Access denied despite private pathIdentity or permission issue, not networkCheck roles, keys and service access policies
Stale or wrong address after changesManually managed records or cached answersUse zone groups and flush caches
i
Practical Rule

Always run a name lookup from the exact client that fails. Ninety percent of Private Link problems are solved by that single step, because the answer shows immediately whether the client is even trying to reach the private address.

ANTI-PATTERN-04 Avoid
Problem

Troubleshooting by testing from the engineer’s own machine or from a convenient virtual machine that uses different DNS than the failing application.

Why It’s Harmful

The test succeeds or fails for reasons that do not apply to the real client, so the team chases the wrong problem for hours.

Correct Approach

Test from the actual failing host or from a machine in the same network with the same DNS settings.

19Cost, Capacity and Limits

Private Link is not free, and design choices change the bill.

Private endpoints are typically billed per hour that they exist, plus a charge for the data processed through them in each direction. Private Link Service has its own pricing structure. Data transfer between virtual networks over peering, between regions, or through gateways adds to the total. Prices and billing details change, so confirm current figures on the official pricing page before you build a budget.

Saver

Share endpoints across peered networks

One endpoint in a shared network can serve many spokes, reducing hourly charges, though data and routing costs still apply.

Saver

Create only needed sub-resources

Do not create endpoints for every possible sub-resource of a service. Create those the application truly uses.

Saver

Delete orphaned endpoints

Endpoints left over from decommissioned test environments keep billing. Review periodically with a tag-based report.

Saver

Keep chatty traffic close

Place clients and endpoints in the same region where possible. Cross-region private access adds latency and transfer cost.

Limits and capacity planning

Subscriptions and virtual networks have limits on the number of private endpoints, and a private link service has limits on NAT addresses and connections. These limits are documented and can change. In large estates, track endpoint counts per network and per subscription so that you do not discover a ceiling in the middle of a project.

Simple Analogy

Every private door you build has a monthly maintenance fee and a toll for each parcel passing through. Building a door for every cupboard is wasteful; build doors for the rooms people really use.

!
Common Mistake

Estimating cost by endpoint count alone and ignoring the data processed. A high-volume data pipeline through a few endpoints can cost more than many idle endpoints. Model both parts.

20Patterns and Anti-Patterns

Habits that work, and habits that cause incidents.

Patterns worth adopting

Central DNS with one zone per privatelink name

Keep one authoritative private zone for each service type in a central subscription and link it where needed, with automated record management.

Dedicated endpoint subnets

Group endpoints in their own subnets with clear NSG rules and simple route tables.

Policy-driven enforcement

Use policy to require private endpoints for sensitive service types and to deny or audit public access settings.

Staged rollout

Add the private endpoint, move clients, verify through logs, then disable public access last.

Infrastructure as code modules

Package endpoint and DNS configuration into reusable modules so every team gets a correct, consistent setup by default.

Ownership tagging

Tag every endpoint with an owner, application and cost center so cleanup and troubleshooting are quick.

Anti-patterns to avoid

ANTI-PATTERN-05 Avoid
Problem

Each team creates its own private DNS zones for the same privatelink name in different subscriptions.

Why It’s Harmful

Different networks see different answers for the same name. Some work, some do not, and no one knows which zone is authoritative.

Correct Approach

Centralize zone ownership and automate record creation through zone groups and policy.

ANTI-PATTERN-06 Avoid
Problem

Using hard-coded private IP addresses in application settings instead of service names.

Why It’s Harmful

Certificates fail to validate, addresses change when endpoints are recreated, and failover or region changes break the application.

Correct Approach

Always use the normal service name and let DNS return the private address.

ANTI-PATTERN-07 Avoid
Problem

Treating Private Link as the only security control and relaxing identity and permission discipline because “it is private”.

Why It’s Harmful

An attacker already inside the network, or a compromised workload, can use the private path with stolen credentials.

Correct Approach

Layer controls: private networking, strong identity, least privilege, encryption and monitoring together.

“Private Link changes the road, not the lock; keep both strong.”

21Best Practices Checklist

A review list before going to production.

Do

  • Design DNS before creating endpoints
  • Use one central private zone per privatelink name
  • Attach zone groups so records are managed automatically
  • Create an endpoint for each sub-resource actually used
  • Confirm connection approval and name resolution before testing the application
  • Disable public access only after all clients are confirmed on the private path
  • Use dedicated endpoint subnets with documented rules
  • Enforce and audit through Azure Policy
  • Tag endpoints with owner and cost center
  • Test from real clients including on-premises ones

Avoid

  • Assuming an endpoint makes the service private by itself
  • Forwarding whole public domains to the private resolver
  • Hard-coding private IP addresses
  • Leaving pending or orphaned endpoints behind
  • Ignoring address overlap with on-premises networks
  • Skipping a plan for inspection and symmetric routing
  • Forgetting build agents, monitoring and backup tools as consumers
  • Relying on network privacy instead of identity controls
i
Practical Rule

Create a reusable test checklist that records, for each service, the resolved address from each client network, the connection state and a successful sample operation. Keep it with your design documents for audits and future troubleshooting.

22Real-World Scenarios

How organizations apply these ideas.

Bank protecting customer data

A bank places storage, databases and key vaults behind private endpoints with public access disabled, and routes all traffic through a central firewall with symmetric paths. Policy blocks any new resource that enables public access, and auditors review endpoint inventories every quarter.

Manufacturer with factories and a data center

A manufacturer connects plants and its data center to Azure through ExpressRoute. Plant systems send telemetry to storage and messaging services through private endpoints in a central network, using conditional forwarding for DNS so that every site resolves the same private addresses.

Software vendor serving regulated customers

A vendor exposes its application with Private Link Service. Each customer creates a private endpoint in their own network, with manual approval and a contract-driven revocation process. The vendor avoids exchanging network routes with hundreds of different address plans.

Healthcare analytics platform

A healthcare organization builds a data platform in which storage, analytics workspaces and secrets all sit behind private endpoints. Researchers connect through a controlled virtual desktop network, and data exfiltration protection ensures that data cannot be copied to unapproved accounts.

Retailer with a multi-team landing zone

A retailer gives each product team a spoke network and a policy-driven setup that creates endpoints and DNS records automatically when teams deploy supported services. A platform team owns central DNS and gets an alert when any zone link is missing.

Public sector with data residency rules

A government agency keeps private endpoints in-region, uses private connectivity only, and documents the network path for each dataset to satisfy residency and audit requirements.

23Frequently Asked Questions

Quick answers to questions that come up constantly.

Q1What is Azure Private Link in one sentence?

It is a feature that gives a platform service or your own service a private address inside your virtual network, so that traffic stays on the Microsoft backbone and does not need to use the public internet.

Q2What is the difference between a private endpoint and Private Link Service?

A private endpoint is the consumer side: an interface in your network that connects to a service. Private Link Service is the provider side: a way to publish your own service, behind a standard load balancer, so that others can connect to it through their private endpoints.

Q3Does a private endpoint automatically block public access?

No. You must disable public network access on the resource, or restrict it with firewall rules, to remove the public path. The endpoint only adds a private path.

Q4Why does my service name still resolve to a public address?

Usually because the private DNS zone is not linked to the client’s network, the client uses a different DNS server that does not know the zone, or on-premises DNS lacks a conditional forwarder.

Q5Do I need an endpoint for every feature of a service?

You need one for each sub-resource you use. For example, a storage account needs separate endpoints for blob and for file if you use both.

Q6Can on-premises systems use private endpoints?

Yes, through VPN or ExpressRoute, provided that routing reaches the endpoint subnet and on-premises DNS resolves the private address through forwarding to an Azure resolver.

Q7How is Private Link different from service endpoints?

Service endpoints keep the service’s public address and add a subnet-based rule, while Private Link gives the service a private address in your network, works from on-premises, and maps to a single resource, which gives stronger protection against data exfiltration.

Q8Can I use Private Link between different subscriptions or organizations?

Yes. The connection may require approval from the resource owner, and providers can share an alias and pre-approve selected subscriptions.

Q9Do network security groups apply to private endpoints?

Behavior has changed over time and depends on the subnet’s network policy setting. Check the current documentation and enable the policy that lets NSG rules and custom routes apply if you need them.

Q10Does Private Link cost extra?

Yes. Private endpoints are generally billed per hour plus data processed, so check current pricing and design to avoid unnecessary endpoints.

Q11Can two virtual networks with the same address range both use Private Link Service?

Yes. Because the provider sees translated addresses and no routes are exchanged, overlapping ranges are not a problem, which is a major advantage for providers.

Q12What is the first thing to check when a connection fails?

Check that the connection is approved, then resolve the service name from the failing client and confirm it returns the private address. Only then investigate routes and firewalls.

Q13Is the guidance in this article permanent?

The concepts are stable, but supported services, limits, network policy behavior, zone names and prices change. Always confirm details in the current official Azure documentation before finalizing a design.

24Summary and Key Takeaways

Azure Private Link brings cloud services inside your own network. A private endpoint gives a platform service a private address in your subnet, tied to one specific resource. A Private Link Service lets providers publish their own services without exposing them or exchanging routes. The network side is straightforward; the naming side, DNS, decides success or failure. Good designs centralize DNS, link zones correctly, forward on-premises queries to a private resolver, place endpoints thoughtfully in a hub-and-spoke layout, and apply policy to keep things consistent. They disable public access last, after every client is confirmed on the private path, and they keep strong identity and monitoring in place because private networking narrows the doors but does not replace the locks. Treat the details of services, prices and limits as things to verify, and the ideas in this guide will serve you across any Azure environment.

Key Takeaways

  • A private endpoint is a private door to one resource — it lives in your subnet, maps to a specific instance and sub-resource, and keeps traffic on the Microsoft backbone.
  • DNS is the hard part — the service name must resolve to the private address from every client, using linked private zones, central resolvers and on-premises forwarding of privatelink zones only.
  • The endpoint alone does not close the public door — disable public network access after confirming all clients, including pipelines and tools, use the private path.
  • One endpoint per sub-resource — services such as storage need separate endpoints and DNS entries for each feature in use.
  • Private Link Service is for providers — publish behind a standard load balancer, control visibility and approval, and avoid address overlap issues with customers.
  • Plan routing and inspection — use network policies deliberately and keep paths symmetric when a central firewall is involved.
  • Govern and verify — use policy, tagging and central DNS ownership at scale, and always confirm current service support, limits and pricing in the official documentation.