Azure Private Link: Reaching Cloud Services Without Touching the Public Internet

Azure Private Link: Reaching Cloud Services Without Touching the Public Internet

A complete, plain-English guide to private endpoints, private DNS, Private Link service, hybrid access, security benefits, network design, troubleshooting and the mistakes that make private connections quietly fail.

Imagine a large company with a bank next door. Employees could walk out of the front gate, cross the public street and queue at the bank counter with everyone else. Or the company could build a covered corridor from its own lobby straight to a private bank window, so staff never step outside. The corridor is faster to reach, nobody on the street sees who goes in, and strangers cannot use it because it only starts inside the company.

Azure Private Link builds that corridor between your private network and the cloud services you depend on. Services such as storage, databases and key vaults normally live behind public addresses on the internet. Private Link gives them a private address inside your own network, so your servers reach them through the Microsoft backbone and the public door can be locked. In this guide you will learn what it is, how it works inside, why DNS is the heart of every Private Link design, how to connect from on-premises, how to secure, monitor and pay for it, and which mistakes to avoid.

1What Private Link Is and Why It Exists

Begin with the problem of services that live on public addresses, then see how a private address changes the story.

The problem

Most Azure platform services, such as a storage account or a SQL database, are reached through a name that resolves to a public internet address. Even when your own server sits inside a private network, its request to the storage account usually leaves through the network edge and enters the service’s public front door. That front door is open to the world, protected only by passwords, keys and firewall lists. If a key leaks, anyone anywhere can try to use it. Security teams dislike this, and many rules for regulated industries ask for private paths.

What the service is

Azure Private Link lets you access Azure platform services, and also services owned by partners or by your own teams, over a private endpoint: a network interface with a private address from your own virtual network. When your application connects to that address, the traffic stays on the Microsoft private backbone network. You can then switch off public access on the service entirely, so the only way in is through your private corridor.

Everyday analogy

A hospital has a public entrance for visitors and a staff-only tunnel to the pharmacy building across the road. If the pharmacy locks its street door and accepts only people arriving through the tunnel, strangers cannot walk in, yet every staff member still gets there. The tunnel mouth is the private endpoint.

What you gain

Privacy

Traffic off the internet

Packets travel over the Microsoft backbone from your network to the service, never through the public internet.

Exposure

Public door can close

You can disable public access, so stolen keys are useless from outside your network.

Control

Private address you own

The service appears as one address in your range, so firewalls and routing rules treat it like any other internal server.

Reach

Works from on-premises

Offices connected by VPN or private circuits can reach the same private address.

Safety

Protection against data theft

The endpoint points to one specific resource, not the whole service, which limits where data can be sent.

Sharing

Offer your own service privately

You can publish a service of your own so customers connect without exposing it to the internet.

1
private address per endpoint, taken from your own subnet
2
sides of the idea: private endpoints to consume, and Private Link service to publish
0
public internet hops for the traffic inside the connection

2Background: How Cloud Services Were Reached Before

Private Link did not appear from nowhere. It answers weaknesses in earlier ways of connecting to platform services.

The public endpoint

Every platform service started with a public endpoint, a name and address reachable from anywhere. This is simple and works with every device and every country, which is why it is the default. The cost is exposure. Anything reachable from anywhere will be scanned, probed and tested by attackers within hours of existing.

Firewall rules on the service

The first improvement was a firewall built into the service. You could say “accept connections only from these public addresses.” That helps, but your own servers in the cloud may not have stable public addresses, and addresses can be shared or spoofed by mistakes in other layers. You were still talking across the public internet.

Service endpoints

Next came service endpoints. These let a subnet in your virtual network be listed as allowed on the service’s firewall, so traffic from that subnet to the service travels the Azure backbone and the service sees which subnet it came from. This was a real step forward and is easy to enable. But the service still has a public address. Your traffic is just given a better road to it. Also, service endpoints do not work from on-premises networks, and they apply to the whole service type in a region, not to one chosen resource.

Network injection

Some services, such as certain managed databases, can be deployed directly into your virtual network, taking addresses in a dedicated subnet. This gives full privacy but only for services built to be injected, and it needs larger address ranges and special subnets.

Private Link

Private Link takes a different path. Instead of giving the service a better route to a public address, it brings a private doorway for one specific resource into your network. The service resource gets an address in your own range. It works for a wide list of services with a common approach and also reaches from on-premises.

ApproachService address you connect toWorks from on-premisesScope
Public endpointPublicYes, via internetWhole internet unless firewalled
Service firewallPublicYes, if address listedListed public addresses
Service endpointPublic, with backbone routingNoWhole service type in a region
Network injectionPrivate, in your subnetYesOne deployed instance
Private LinkPrivate, in your subnetYesOne specific resource
i
Why this history matters

Teams often ask whether service endpoints are “good enough”. They are useful, but they leave the public door in place. Private Link lets you close that door. Knowing this difference helps you explain the choice to managers and auditors.

3Core Concepts: The Vocabulary of Private Link

Each term below says what it is, why it exists, a picture from daily life and an example.

Term

Private endpoint

A network interface in your subnet with a private address, connected to one specific service resource. Analogy: a private telephone extension wired to one office in another building. Example: an extension reaching one storage account.

Term

Private Link resource

The service instance the endpoint points to, such as a storage account, a database server or a key vault. Analogy: the office at the other end of the extension.

Term

Sub-resource or group ID

The particular part of a service you connect to, such as the blob part or the file part of a storage account. Analogy: a department inside the office. One endpoint serves one sub-resource.

Term

Private Link service

Your own service, placed behind a standard load balancer, offered to other networks through private endpoints. Analogy: you open your own bank window and give customers a private corridor.

Term

Private DNS zone

A private phone book that turns a service name into the private address, visible only inside linked networks. Analogy: a staff directory that lists the extension number, not the public number.

Term

Zone group

A setting that lets the endpoint place its own record automatically into a private DNS zone. Analogy: the receptionist who updates the directory when a new extension is installed.

Term

Virtual network link

The connection that lets a virtual network read a private DNS zone. Analogy: giving a building a copy of the staff directory.

Term

Connection approval

The owner of the service must accept a connection request in some cases, such as when an endpoint comes from a different company. Analogy: the receptionist approving a visitor pass.

Term

Public network access setting

A switch on the service to disable its public door. Analogy: locking the street entrance of the bank.

Term

Conditional forwarder

A DNS rule on a server that sends questions for certain names to another resolver. Analogy: a switchboard that says “for pharmacy calls, ask the pharmacy operator.”

Term

Alias and CNAME

A name that points to another name. Services return a chain of names; the chain is how private and public answers are chosen. Analogy: a nickname that leads to the real name.

Term

NAT IP for Private Link service

An address from the provider’s subnet used to represent consumers when they reach the published service. Analogy: a front-desk badge used for all visitors.

How the words fit together

Read it as a chain: a private endpoint in a subnet points to a Private Link resource through a group ID. A private DNS zone linked to the network makes the service name resolve to the endpoint’s private address. The application keeps using the same name it always used, but now it lands on the private corridor. When the owner has switched off the public network access, no other way remains.

i
The two-part rule

A Private Link design always has two parts: the endpoint that gives a private address, and the DNS that makes names point to it. Missing either part gives a connection that fails or, worse, quietly uses the public path.

4Architecture and Components

Here is the full picture of how a private endpoint connects your network to a platform service.

flowchart LR
  subgraph VNET["Your virtual network"]
    APP["Application server"]
    subgraph PESUB["Private endpoint subnet"]
      PE["Private endpoint network interface"]
    end
    DNSR["DNS resolver"]
  end
  PDZ["Private DNS zone"] -.-> DNSR
  APP -->|"asks for service name"| DNSR
  DNSR -->|"returns private address"| APP
  APP -->|"connects to private address"| PE
  PE ==>|"Microsoft backbone"| SVC["Storage account or database"]
  PUB["Public endpoint of service"] -. "disabled by owner" .-> SVC
Figure 1: A private endpoint places one service resource inside your network

The private endpoint

It is a network interface that lives in a subnet you choose. It takes one private address, and it is linked to exactly one resource and one sub-resource. Think of it as a small receptionist’s desk in your building that forwards every call to one specific office elsewhere.

The platform side

On the service side, the resource keeps a list of private endpoint connections, each with a state such as pending, approved or rejected. Traffic from an approved endpoint is accepted. The service can also be told to refuse all public traffic, leaving the private endpoint as the only entrance.

The DNS part

A private DNS zone holds the record that maps the service name to the private address. The zone is linked to the virtual networks that need it. Without this link, name lookups return the public address and the private endpoint goes unused.

Supporting pieces

ComponentRole
Subnet for endpointsHolds the network interfaces; sized for the number of endpoints planned
Private DNS zoneAnswers name questions with private addresses inside linked networks
Virtual network linkAllows a network to use the zone
Network security groupCan filter traffic to endpoints, if the subnet setting for policies is enabled
Route tableCan steer traffic to endpoints through a firewall when needed
DNS forwarder or resolverLets on-premises networks use the same private answers
Azure MonitorRecords metrics and logs for endpoints and the services behind them
Azure PolicyEnforces rules like “all storage accounts must use private endpoints”

5Private Endpoint, Private Link Service and Service Endpoint

Three similar names cause endless confusion. Separating them makes every later chapter easier.

Private endpoint: the consumer side

A private endpoint is what you create in your network to reach a service. You are the consumer. It brings a remote service to a local private address. This is the most commonly used part of Private Link.

Private Link service: the provider side

A Private Link service is what you create when you want to offer something of yours to others. You put your application behind a standard load balancer, attach a Private Link service to it, and share its identifier. Consumers in other networks, even in other companies, create private endpoints that point to it. Their traffic reaches your load balancer without your service having a public address. You are the provider.

Service endpoint: the older neighbor

A service endpoint, as described earlier, is a routing and firewall feature. It uses the service’s public address but tells Azure to send traffic over the backbone. It is not part of Private Link, although people often compare them.

QuestionPrivate endpointPrivate Link serviceService endpoint
Who creates it?The consumerThe providerThe network owner
What does it give?A private address for a remote resourceA way to publish your service privatelyA better path to a public address
Service keeps a public address?Can be turned offNot neededYes
Reachable from on-premises?YesYes, through endpointNo
ScopeOne resource, one sub-resourceOne published serviceAll instances of a service type in a region
Extra costHourly and data chargesCharges on the endpoint sideFree feature
Everyday analogy

A private endpoint is your office’s direct line to a supplier. A Private Link service is you giving your customers a direct line to you. A service endpoint is telling the courier to use a faster road to the supplier’s public shop. The first two build new private connections; the last only improves a road.

A simple rule to remember

If you want to use something privately, make a private endpoint. If you want to offer something privately, make a Private Link service. If you only want a simple, free improvement and you do not need to close the public door, a service endpoint may do.

6Internal Working: How One Connection Travels

Follow one request from an application to a storage account through a private endpoint.

sequenceDiagram
  participant APP as Application
  participant DNS as Private DNS
  participant PE as Private endpoint
  participant BB as Microsoft backbone
  participant SVC as Storage service
  APP->>DNS: Where is mystorage.blob.core.windows.net?
  DNS-->>APP: Private address 10.1.4.5
  APP->>PE: Open secure connection to 10.1.4.5
  PE->>BB: Forward over private path
  BB->>SVC: Deliver to approved resource
  SVC-->>BB: Response
  BB-->>PE: Return
  PE-->>APP: Response with service identity
Figure 2: The life of one request through a private endpoint

Step by step

1

The application asks for a name

It uses the same service name it always used. Nothing in the application code has to change.

2

DNS answers with a private address

Because the network is linked to the private DNS zone, the lookup returns the endpoint’s private address instead of the public one.

3

The application connects

It opens a normal secure connection to that private address. To the application, the service looks like another server in the network.

4

The endpoint forwards the traffic

The platform carries the connection from the network interface over the Microsoft backbone to the specific service resource.

5

The service checks the connection

It verifies that the connection comes from an approved private endpoint and then applies its normal authentication, such as keys or identity tokens.

6

Data returns the same way

Responses travel back on the same private path.

The name stays the same

A beautiful detail is that applications keep using the public service name. The magic is in DNS, which returns different answers to different askers. Inside the linked network, the answer is private. Outside, the answer is public (or nothing, if public access is off). This avoids changing certificates, since the secure connection is still made to the original name.

Source address seen by the service

The service sees the connection as arriving from the private endpoint’s resource, not from your server’s address. You cannot rely on the service’s log of the client address to identify the specific caller inside your network. Use your own network logs for that.

Encryption still applies

Private Link makes the path private, not the data automatically encrypted by itself. Services still use encrypted connections, and you should keep requiring them. Private path plus encryption plus authentication is the full set.

7DNS: The Heart of Every Private Link Design

More Private Link problems come from DNS than from anything else. Learn this chapter well and most faults become easy to find.

What DNS does

DNS is the phone book of the internet. You give it a name and it returns an address. Without DNS, you would need to remember numbers for every service. In a Private Link design, the whole trick is that the same name returns a different address depending on who asks.

The chain of names

When you look up a storage name, the answer is a chain. The name you typed points to another name, which in turn leads to the final address. With Private Link, Azure adds a special middle step: the public name points to a name inside a special private-link zone. If your network has a private DNS zone for that area, the lookup finds the private address. If it does not, the lookup falls through to the public address.

flowchart TD
  Q["App asks for mystorage.blob.core.windows.net"] --> R{"Resolver linked to private DNS zone?"}
  R -->|"Yes"| P["Private zone returns 10.1.4.5"]
  R -->|"No"| U["Public DNS returns public address"]
  P --> OK["Traffic uses private endpoint"]
  U --> X{"Public access allowed on service?"}
  X -->|"Yes"| PUBP["Traffic uses public internet path"]
  X -->|"No"| FAIL["Connection refused"]
Figure 3: The same name can lead to a private path, a public path or a failure

Private DNS zones

Azure suggests standard zone names for each service type, such as one zone for blob storage, another for SQL databases and another for key vaults. You create the zone, link it to every virtual network that must resolve the private name, and the endpoint adds a record. Using the standard names matters, since they match what the service expects in the chain.

Zone groups

With a zone group on the endpoint, the platform creates and updates the record in the chosen zone automatically. This removes human error when endpoints are created, replaced or have an address change. It is the preferred approach.

Where the lookup comes from

A virtual machine in a virtual network asks the DNS server configured for that network. If it is the default Azure resolver, and the network is linked to the zone, it gets the private answer. If it is a custom DNS server, that server must itself be able to ask Azure’s resolver, or it will return public answers. This is the most common cause of “it worked in the portal, but my server uses the public address.”

DNS setupPrivate answer?What to check
Default Azure resolver, network linked to zoneYesLink exists, record exists
Default resolver, network not linkedNoAdd a virtual network link
Custom DNS server in the networkOnly if it forwards to Azure’s resolverForwarder to the Azure resolver address
On-premises DNS serverOnly with conditional forwardingForwarders point to a resolver inside Azure
Public resolver on the clientNeverDo not bypass corporate DNS

Test with a lookup

From the machine that has the problem, look up the service name using a standard lookup tool. If the answer is a private address from your range, DNS is right. If it is a public address, fix DNS before you touch anything else.

Everyday analogy

Asking “where is the pharmacy?” in the hospital lobby gets the answer “take the tunnel, second door.” Asking the same question on the street gets the address of the street entrance. The question is the same; the helper who answers decides which path you take.

8The Lifecycle of a Private Endpoint Connection

A private endpoint connection moves through states, and knowing them explains many surprises.

stateDiagram-v2
  [*] --> Pending: request created
  Pending --> Approved: owner approves
  Pending --> Rejected: owner rejects
  Approved --> Disconnected: owner removes or resource deleted
  Rejected --> Pending: request again
  Disconnected --> [*]
  Approved --> Approved: traffic flows
Figure 4: States of a private endpoint connection

Automatic and manual approval

When you own both the endpoint and the service, or have the right permissions, the connection is approved automatically at creation. When the service belongs to someone else, or you lack that right, the connection starts as pending until the owner approves. This is a deliberate safety step: the owner of the service decides who may connect.

Creating an endpoint

1

Choose the resource and sub-resource

Pick the service instance and the part you need, such as blob or file for storage.

2

Choose the subnet

Place the endpoint in a subnet with enough free addresses and appropriate rules.

3

Configure DNS

Pick the matching private DNS zone and let the zone group manage the record.

4

Wait for approval if needed

If pending, ask the service owner to approve it.

5

Test from inside the network

Look up the name, connect to the service and confirm it uses the private address.

6

Close the public door

When all clients work privately, disable public network access on the service.

Changing and replacing endpoints

An endpoint cannot be moved to another subnet. To change subnets, you create a new endpoint, switch, and delete the old one. Plan the cutover so DNS is updated cleanly and old records do not linger. Using a zone group helps keep records matched to the live endpoint.

What deletion does

If the endpoint is deleted, its address is released and the DNS record should be removed. If the service resource is deleted, the connection becomes disconnected. Clients will then fail until you rebuild the pieces. Keep deletion under change control.

!
Do not close the public door too early

Disabling public access before every client uses the private path breaks anyone who still connects the old way, including build servers, developer laptops and partner tools. List every client first, then switch carefully.

9Supported Services and Sub-Resources

Private Link works with a long and growing list of Azure services. The list changes often, so treat the tables here as examples and verify the current list.

Why sub-resources matter

Many services have several parts that are reached through different names. A storage account has blob, file, queue, table and other parts. Each needs its own private endpoint with its own group ID and DNS zone. If you create one for blob only, file access still uses the public path or fails when public access is off.

Service (example)Typical sub-resourcesTypical private DNS zone area
Storage accountBlob, file, queue, table, web, data lakeOne zone per part
SQL database serverSQL serverOne zone for SQL
Key VaultVaultOne zone for vaults
Container registryRegistryOne zone, with regional data records
App Service and FunctionsSitesOne zone for web apps
Cosmos databasePer API such as SQL or MongoDBZone depends on API
Service Bus and Event HubsNamespaceShared zone for the namespace family
Azure Monitor private scopeMonitorSeveral zones together

These are examples only. Names of zones and group IDs are published in the official documentation, and they should be copied from there rather than guessed.

Services with extra considerations

Note

Web apps

A private endpoint on a web app controls inbound access only. Outbound connections from the app to other services need a different feature, called virtual network integration.

Note

Container registries

Registries use extra data endpoints per region, so more than one record is needed.

Note

Monitoring

Private monitoring uses a scope object and several DNS zones. Missing one makes agents fall back or fail.

Note

Data analytics services

Some workspaces need separate endpoints for studio, notebooks and data parts.

Note

Cross-region and cross-tenant

An endpoint can usually point to a resource in another region or another directory, with approval.

Note

Limits

Each subscription and network has a maximum number of endpoints. Check current limits.

Checking support before designing

Before promising a private design to a team, confirm in the documentation that the service supports private endpoints, in your region, at your chosen pricing tier. Some tiers of some services do not. Discovering this late can force a service upgrade or a redesign.

10Private Link Service: Publishing Your Own Application

The provider side lets you offer your application to other networks without a public address.

The pieces

You run your application on servers behind a standard internal load balancer. You create a Private Link service attached to the load balancer’s frontend. The service uses one or more addresses from a subnet, called NAT addresses, to represent incoming consumer traffic. Consumers create private endpoints that point to your service’s identifier, called its alias, and you approve them.

flowchart LR
  subgraph CONS["Consumer network"]
    CAPP["Consumer application"] --> CPE["Private endpoint"]
  end
  subgraph PROV["Provider network"]
    PLS["Private Link service with NAT addresses"] --> ILB["Standard load balancer"]
    ILB --> S1["App server 1"]
    ILB --> S2["App server 2"]
  end
  CPE ==>|"private backbone"| PLS
Figure 5: A provider publishes a service behind a load balancer; consumers connect with endpoints

Why use it

Software companies use it to offer private connections to customers without sharing network ranges. Large organizations use it between departments that have overlapping address ranges, because the NAT step hides the consumer’s real addresses. Platform teams use it to share a central service, such as a license server or an internal API, with many spokes.

Overlapping address ranges

Two networks with the same address range normally cannot be connected. With Private Link service, the consumer only sees an address from its own range, and the provider sees addresses from its NAT range. Neither needs to know the other’s ranges, which is a big help when joining networks built independently.

Controlling access

You decide who may connect by subscription visibility lists and by manual approval. Auto-approval can be given to trusted subscriptions, and everyone else must wait for approval. Review the list of connections regularly.

Seeing the consumer

Because of the NAT step, your servers see the NAT addresses, not the consumer’s real addresses. If you need to know the original address, there is an option to pass it along using a header protocol, which your application must be able to read. Check the documentation for the details and limits.

Limits and sizing

Plan

NAT address count

Each NAT address offers a limited number of ports. Many consumers or connections need more addresses.

Plan

Standard load balancer only

The basic load balancer cannot be used with the service.

Plan

Region match

The service and load balancer must live in the same region, though consumers may be elsewhere.

Plan

Protocols

Traffic is carried at the network connection level, so any application protocol over the supported transport works.

Everyday analogy

A supplier gives each customer a private phone line that rings at one desk inside the supplier’s company. The customer sees only their own phone system. The supplier sees only one reception line. Neither needs to learn the other’s internal numbering.

11Network Design: Subnets, Filtering and Routing

Private endpoints are network citizens. They need space, sensible filtering and correct routes.

A subnet for endpoints

You can place endpoints in any subnet, but many teams create a dedicated subnet for them. Each endpoint uses one address, and some services need several addresses for one logical endpoint. Size the subnet with room to grow. A separate subnet lets you apply a clear set of network rules to all endpoints in one place.

Network policies for endpoints

Historically, network security groups and user-defined routes did not apply to private endpoint traffic. A subnet setting now lets you enable network policies so that security groups and routes affect the endpoints. With it on, you can filter who may reach each endpoint and send the traffic through a firewall. Check the current behavior and the exact setting for your case.

Hub-and-spoke designs

flowchart TD
  subgraph HUB["Hub network"]
    FW["Firewall"]
    DNSH["DNS resolver"]
    PEH["Shared private endpoints"]
  end
  subgraph SP1["Spoke 1"]
    A1["Applications"]
  end
  subgraph SP2["Spoke 2"]
    A2["Applications"]
  end
  A1 --> FW
  A2 --> FW
  FW --> PEH
  A1 -.-> DNSH
  A2 -.-> DNSH
  PDZ["Private DNS zones linked to hub and spokes"] -.-> DNSH
  PEH ==> SVC["Platform services"]
Figure 6: Shared private endpoints in a hub, used by many spokes through a firewall

Central or local endpoints

ChoiceBenefitCost
Endpoints in a central hubFewer endpoints, simple DNS, one place to inspectTraffic crosses peering and the hub; shared limits
Endpoints in each spokeIsolation, local traffic, team ownershipMore endpoints and more DNS links
Mix by sensitivityStrict control for critical data, simplicity for the restMore rules to explain

Routing through a firewall

If you want a firewall to inspect traffic to endpoints, add routes that send the endpoint addresses to the firewall. Return traffic must come back the same way, or the firewall will drop it. With network policies enabled, a more specific route to the endpoint address is respected. Test carefully because asymmetric paths cause confusing faults.

Peering and reach

Machines in peered networks can reach an endpoint if routes and rules allow it. The endpoint does not need to be in the same network as the client. DNS, however, must be linked or forwarded for each network that needs the private name.

i
Keep a register

Maintain a simple table of every endpoint: the service it reaches, its subnet, its address, its DNS zone and its owner. Troubleshooting is very quick when this table exists, and very slow when it does not.

12Hybrid Access: Reaching Private Endpoints From On-Premises

Offices and data centers can use the same private corridors, if the path and the names are arranged correctly.

The path

Your on-premises network connects to Azure through a site-to-site VPN or a dedicated private circuit. Once connected, on-premises machines can send traffic to the private address of an endpoint just as they would to any Azure server, provided that routes are advertised both ways and firewalls allow it.

The name

The path is the easy part. The names are harder. On-premises DNS servers know nothing about your private DNS zones in Azure. If an office machine asks for the storage name, its normal DNS returns the public address. To fix this, create a conditional forwarder on the on-premises DNS server that sends questions for the service’s name area to a resolver inside Azure. That resolver, linked to the private zones, returns the private address.

sequenceDiagram
  participant PC as Office computer
  participant ODNS as On-premises DNS
  participant ARES as Azure DNS resolver
  participant PDZ as Private DNS zone
  participant PE as Private endpoint
  PC->>ODNS: Lookup service name
  ODNS->>ARES: Conditional forward for service area
  ARES->>PDZ: Query linked private zone
  PDZ-->>ARES: Private address
  ARES-->>ODNS: Private address
  ODNS-->>PC: Private address
  PC->>PE: Connect over VPN or private circuit
Figure 7: On-premises name resolution for a private endpoint

Which forwarding zone

The recommended forwarding name is the special private-link name of the service, rather than the plain public name. Forwarding the plain public name can break access to other, non-private resources in the same area. Read the current guidance in the documentation to select the right zone name for each service.

The Azure resolver

You need something in Azure that can answer forwarded questions. Options include a managed private DNS resolver service with an inbound address, or a DNS server running on a virtual machine that forwards to the Azure resolver. A managed resolver reduces upkeep.

Common hybrid problems

SymptomLikely causeFix
Office computer gets the public addressNo conditional forwarderAdd forwarder to the Azure resolver
Name works but connection times outRoute or firewall missing on the pathCheck routes in both directions and rules at each firewall
Works for some offices onlyDifferent DNS servers in each officeConfigure all DNS servers the same way
Laptop at home failsRemote users bypass corporate DNSUse a VPN client that sets the corporate DNS
Intermittent failuresOne forwarder or resolver is unhealthyAdd a second resolver and monitor
!
Developers on laptops

Closing the public door also closes it for developer laptops that are not on the private network. Decide in advance how developers will connect: through VPN, a jump host or a private development environment.

13Security Benefits and Data Exfiltration

Private Link improves security in several ways. The biggest is controlling where data may flow.

Closing the public door

The simplest benefit is turning off public network access on the service. After that, an attacker with a stolen key still cannot connect from the internet, because there is no public path to try. The attacker would need to be inside your network or one connected to it.

Data exfiltration

Data exfiltration means data being copied out of your control, whether by an attacker or by a careless insider. With public access and service endpoints, a compromised server inside your network might copy files to any storage account in the same service, including one owned by the attacker, because the route allows the whole service type. A private endpoint points to one specific resource. The only storage account reachable over that private path is the one you chose. This shrinks the places data can be sent.

Everyday analogy

An office mailbox that accepts letters addressed to any post office box in the city lets someone mail secrets to a stranger. A pneumatic tube that connects only to the company’s own archive room cannot deliver anywhere else.

Combined with other controls

Layer

Firewall allow-list

A network firewall denies all outbound traffic except to approved private endpoints and names, so servers cannot reach the public service address.

Layer

Identity-based access

Use managed identities and role assignments instead of shared keys, so a leaked secret is less valuable.

Layer

Service firewall rules

Keep the service’s own network rules strict as a second barrier.

Layer

Approval workflow

Require manual approval for connections from outside your own subscriptions.

Layer

Policy enforcement

Use Azure Policy to deny services that allow public access and to require private endpoints.

Layer

Encryption

Keep secure connections required and manage keys in a vault reached privately.

What Private Link does not do

It does not authenticate users, scan content, or stop a trusted insider from misusing allowed access. It does not replace encryption, role-based access or monitoring. It narrows the paths and removes the public one. A weak password on an application still lets an inside attacker in.

Control of who can create endpoints

Creating a private endpoint is a powerful act, since it opens a path to a service. Restrict the permission to create endpoints, review them in audits and alert on new ones. An attacker with enough rights might create an endpoint to their own resource to move data out, so watch for unexpected connections to unknown resources.

RiskControl
Public access still onDisable it on the service after migration; enforce by policy
Data copied to a foreign resourcePrivate endpoint to specific resources, firewall allow-list
Rogue endpoints createdRestrict permissions, alert on new endpoints, review connections
Leaked keysManaged identities, key rotation, vault access via private path
Wrong DNS exposes traffic to public pathTest lookups, deny public access so mistakes fail closed
Weak internal segmentationNetwork rules on the endpoint subnet

14Access Control and Governance Around Endpoints

A private network path is only one lock. Good governance makes sure the doors, keys and visitors are all managed.

Role-based access

Azure role-based access control decides who can create, change and approve endpoints. Give network engineers the right to create endpoints in network resource groups, give service owners the right to approve connections on their resources, and give auditors read access. Splitting these duties prevents one person from both creating a path and approving it.

Approvals across teams

When one team wants a connection to another team’s service, the request arrives as a pending connection. The service owner reviews: who is asking, which subscription, which network and why. Approve, reject, and record the reason. A shared list of approved consumers is useful for audits.

Azure Policy

Policies are rules that Azure itself enforces. Useful examples include: deny creation of storage accounts with public access, require that selected services have private endpoint connections, audit endpoints that are not linked to the standard private DNS zones, and require that endpoints exist in approved subnets. Policies can also deploy missing DNS records automatically. They turn good intentions into automatic checks.

Naming and tags

Name endpoints in a consistent way that shows the service, the sub-resource, the environment and the region. Tag them with owner, cost center and application. A good name lets anyone read the purpose from the list.

Change control

Deleting a DNS zone link or an endpoint can take down an application instantly. Use resource locks on shared DNS zones and endpoints that production relies on. Apply changes through infrastructure code with review. Keep the earlier version available for quick rollback.

Documentation

Write down the standard design: where DNS zones live, who owns them, which networks are linked, how on-premises forwarding works and who may approve what. A short document with a diagram saves hours during incidents and onboarding.

i
Central DNS zones

Most organizations keep private DNS zones in one shared subscription managed by the network team, with spokes linked to them. This avoids many copies of the same zone with conflicting records.

15Performance, Limits and Scaling

Private endpoints are simple, but they have limits worth knowing before you plan a large estate.

Bandwidth and latency

A private endpoint is not a separate machine with its own throughput cap that you must size. It is a path through the platform. Practical speed depends on the service, on the client, and on any firewall or gateway in the path. Latency is normally very close to the public path because both ride the same backbone, and sometimes better because there are fewer hops at the edge. If you send traffic through a firewall in a hub, that firewall adds its own delay and capacity limit.

Connection counts and ports

For the Private Link service side, NAT addresses limit the number of simultaneous connections per consumer. For heavy use, add more NAT addresses so the pool of ports is larger. Watch connection counts on the load balancer.

Number of endpoints

Each network, each subscription and each service resource has maximum counts of endpoints and connections. Large estates with thousands of resources can reach them. The documentation lists the numbers, and they change over time, so check them while planning, not after the first failure.

Address space

Every endpoint takes at least one address from its subnet, and some take more. A subnet that seemed generous can fill up as teams add endpoints for each storage part, each database and each vault. Reserve ranges and keep a record of use.

A worked sizing example

The numbers below are illustrative, not limits. Suppose a company has 30 applications, and each needs private access to a storage account with three parts (blob, file and queue), a database server and a key vault. That is 5 endpoints per application, or 150 endpoints. If each uses one address and you add a growth margin of 40 percent, you need about 210 addresses. A subnet with 256 addresses has some reserved by Azure, which leaves slightly fewer usable, so choose a larger range, such as one holding 512, or use a few subnets. Compare this plan with the real current limits per network.

Shared endpoints reduce counts

If many applications use the same storage account or vault, one shared endpoint in a hub serves all. This cuts counts but raises the shared-fate risk, as discussed before.

Tip

Plan subnets generously

Changing a subnet later means moving endpoints.

Tip

Count per sub-resource

One storage account can need five endpoints, not one.

Tip

Track limits

Alert when you reach seventy percent of a limit.

16High Availability and Resilience

Private paths must keep working when parts fail. Consider where each piece can break.

The endpoint itself

A private endpoint is a platform-managed construct and is built to be resilient inside its region. It does not need you to run two of them for redundancy against ordinary hardware faults. Its availability follows that of the underlying platform and the service it connects to.

The service behind it

If the service is zone-redundant or geo-replicated, the endpoint reaches the primary location. For cross-region recovery, you need an endpoint for the secondary resource in the secondary region too, plus DNS arrangements that make clients switch. Many services offer a failover that changes which resource a name points to; check how that interacts with private DNS records, because the private record must follow the failover.

DNS is part of availability

If the resolver or the private zone is unavailable, names do not resolve and applications fail even though the endpoint is healthy. Use redundant resolvers, keep DNS zones in resilient configurations, and monitor lookups. Many large outages in private designs were DNS outages.

Regional design

flowchart LR
  subgraph RA["Region A"]
    APPA["Applications"] --> PEA["Private endpoint to primary storage"]
  end
  subgraph RB["Region B"]
    APPB["Standby applications"] --> PEB["Private endpoint to secondary storage"]
  end
  PEA ==> PRIM["Primary storage account"]
  PEB ==> SEC["Secondary storage account"]
  PRIM -. "replication" .-> SEC
  PDZ["Private DNS zones linked to both regions"] -.-> APPA
  PDZ -.-> APPB
Figure 8: Endpoints in both regions so a failover has a private path ready

Failure modes to expect

FailureEffectDefense
Private DNS link removedNames resolve to public addresses, connections fail when public is offLocks, policy, alerts on zone changes
Endpoint deletedApplications lose accessLocks and change control
Resolver downNo name resolutionRedundant resolvers
Region outagePrimary endpoint unavailableSecondary endpoint, tested failover
Service failover without DNS updateClients still point to the old resourceAutomate record changes, test
Subnet fullCannot add endpointsPlan address space

17Monitoring, Logging and Troubleshooting

When a private connection fails, a calm routine finds the cause quickly. Almost always it is DNS, routing or a rule.

What to watch

Metric

Bytes in and out

Traffic through each endpoint, to see use and spot sudden changes.

Metric

Connection state

Pending, approved or disconnected states of each connection.

Log

Network flow logs

Which sources talk to the endpoint address, when and how much.

Log

DNS query logs

Which names are asked and what was answered, to find clients getting public answers.

Log

Activity log

Creation, deletion and approval of endpoints and DNS changes.

Log

Service logs

Access logs of the target service, to confirm requests arrive privately.

A troubleshooting walk

1

Is the connection approved?

Check the state of the endpoint connection on the service. Pending or rejected means no traffic flows.

2

What does DNS return?

From the failing machine, look up the name. A private address means DNS is fine. A public address means a missing zone link, a custom DNS gap or a missing forwarder.

3

Can the machine reach the address?

Test a connection on the service port to the private address. A timeout points to routes or filters.

4

Do rules allow it?

Check security groups, firewall rules and effective routes on the client and, if network policies are on, on the endpoint subnet.

5

Does the service accept this caller?

If the connection is made but requests fail with authorization errors, the problem is identity or keys, not the network.

6

Is the right sub-resource covered?

An endpoint for blob does not help file access. Confirm that each needed part has its own endpoint and zone.

Common error pictures

What you seeUsual cause
“Public access is not permitted”DNS returned the public address while the public door is closed
Timeout connecting to a private addressRoute, security group or firewall blocks the path
Certificate name mismatchClient connects by address instead of by service name
Works from one network, not anotherZone not linked to the second network
Works until the endpoint is recreatedStale DNS record or cached answer
Authorization failure after connectionMissing role or wrong key, not a network fault
?
Clear the cache

Machines remember DNS answers for a while. After changing DNS, flush the cache on the client or wait for the lifetime of the old answer before judging the fix.

18Understanding Cost

Private Link adds charges to the bill. Knowing the parts lets you predict and manage them. Prices change, so use the official calculator for real numbers.

Part 1

Endpoint hours

Each private endpoint is billed per hour while it exists, whether or not it carries traffic.

Part 2

Data processed

A per-gigabyte charge for data sent through the endpoint, in and out, with tiers that may reduce the rate at high volumes.

Part 3

Private DNS

Zones and queries are charged at small rates, which can add up with many zones and heavy lookup traffic.

Part 4

Network transfer

Peering and cross-region transfer between networks may carry separate charges.

Part 5

Firewalls and resolvers

Supporting services, such as a central firewall or a DNS resolver, have their own bills.

Part 6

People

Design, testing and ongoing management take real time.

A worked monthly example

The numbers below are invented to show the method. Suppose an endpoint costs 0.01 dollars per hour. A month of 730 hours is 7.30 dollars per endpoint. With 150 endpoints, that is 150 times 7.30, or 1,095 dollars. If total traffic through all endpoints is 10 terabytes, which is 10,000 gigabytes, at an illustrative 0.01 dollars per gigabyte, data charges are 100 dollars. DNS zones and queries might add 20 dollars. The total is about 1,215 dollars per month. If you consolidate to 60 shared endpoints in a hub, the hourly part falls to 60 times 7.30, or 438 dollars, though you might add a firewall’s cost and peering transfer.

Ways to reduce cost

Share endpoints where isolation does not demand separate ones. Avoid creating endpoints for unused sub-resources. Delete endpoints for retired services. Keep test endpoints out of long-running test environments. Review traffic: very chatty workloads send a lot of data through endpoints, and moving components closer together may cut both cost and delay.

Compare against the risk

A private endpoint costs a few dollars a month. Compared with the cost of a data breach, the price is small. The aim is not to avoid private endpoints, but to avoid waste, such as forgotten test endpoints and duplicated copies.

i
Tag for visibility

Tags for owner, environment and application make it easy to find unused endpoints and charge the right team.

19Choosing Between Private Link and Other Options

Private Link is powerful, but it is not always the right tool. Choose by what you need to achieve.

flowchart TD
  S["Need private access to a platform service"] --> A{"Must close the public door?"}
  A -->|"Yes"| PL["Use Private Link"]
  A -->|"No"| B{"Need access from on-premises?"}
  B -->|"Yes"| PL
  B -->|"No"| C{"Only need a better path from Azure subnets?"}
  C -->|"Yes"| SE["Service endpoint is simple and free"]
  C -->|"No"| D{"Service can be deployed into your network?"}
  D -->|"Yes"| INJ["Consider network injection"]
  D -->|"No"| PL
Figure 9: A simple guide for choosing a private access method
NeedBest fitReason
Strict rules: no public access allowedPrivate LinkLets you disable the public endpoint
Access from officesPrivate LinkReachable over VPN and private circuits
Prevent data being sent to other tenants’ accountsPrivate LinkScoped to one resource
Quick, free improvement, Azure-only clientsService endpointEasy to turn on, no per-hour fee
Offer your service privately to customersPrivate Link serviceNo public address needed
Public website open to everyoneNone of these for inboundUse a web gateway and firewall in front
Dedicated managed instance in your networkNetwork injectionThe service is designed for it

Private Link and a firewall

They work well together. Private Link brings the service inside your network, and a firewall decides which servers may use which endpoint. Without a firewall or security rules, any machine in the network that can route to the endpoint address can use it.

Private Link and web gateways

A web gateway can use a private endpoint to reach a back-end web app, so the web app has no public door and the gateway is the only entrance. This pattern is common for public sites whose back ends must stay private.

Everyday analogy

Choosing between these options is like choosing how to give staff access to an archive. A guarded tunnel for all staff and offsite offices is Private Link. A fast lane on the public road with a guest list is a service endpoint. Moving the archive into your own building is network injection.

20Advantages, Disadvantages and Trade-offs

An honest look at what the service does well and where it brings complications.

Advantages

  • Removes the public path to platform services
  • Scopes access to one specific resource, reducing data theft paths
  • Works from on-premises as well as from Azure
  • Applications keep using the same service names
  • Lets you publish your own service without public addresses
  • Hides address range overlaps between networks
  • Supported by a wide and growing list of services

Disadvantages

  • Adds hourly and data charges for each endpoint
  • DNS design becomes more complex and more critical
  • One endpoint per service part leads to many endpoints
  • Developer access from outside the network needs extra arrangements
  • Troubleshooting involves several layers: DNS, routes, rules and approval
  • Limits on endpoint counts and address space need planning
  • Does not authenticate users or inspect content by itself

Key trade-offs

ChoiceBenefitCost
Public access disabledSmallest exposureEvery client must have a private path
Central shared endpointsFewer endpoints, simpler DNSShared fate, firewall load
Endpoints per applicationIsolation and clear ownershipMore cost and records
Network policies on endpoint subnetFiltering and inspection of endpoint trafficMore rules, risk of asymmetric paths
Manual approvalOwner controls who connectsDelays and an approval queue
Auto-created DNS recordsFewer human errorsMust manage zones centrally

Finding the balance

Choose private access first for sensitive data: databases, vaults, storage holding personal or financial records. For low-risk public content, the extra complexity may not pay off. A risk-based list of which services must be private keeps the design focused.

21Design Patterns and Anti-Patterns

Successful teams repeat a few designs. Struggling teams repeat a few mistakes. Naming both makes them easy to copy or avoid.

Patterns that work

Pattern

Central DNS, local endpoints

Keep private DNS zones in one managed place and link every network to them, while teams create endpoints near their applications.

Pattern

Zone group everywhere

Always create endpoints with a zone group so DNS records follow the endpoint automatically.

Pattern

Deny public by policy

Enforce with policy that new services cannot have public access, which makes private design the default.

Pattern

Hub resolver for hybrid

One managed resolver in the hub answers questions forwarded from on-premises DNS.

Pattern

Firewall allow-list of endpoints

Outbound firewall rules allow only the private addresses of approved endpoints.

Pattern

Endpoint register

A maintained table of endpoints, owners and zones, ideally generated from code.

Anti-patterns to avoid

Anti-pattern

Endpoint without DNS

Creating an endpoint and forgetting the zone link, so clients keep using the public path and nobody notices until public is closed.

Anti-pattern

Many copies of the same zone

Each team makes its own zone for the same service and records conflict across networks.

Anti-pattern

Public door left open “just in case”

The endpoint exists but public access is on, so the security benefit is lost.

Anti-pattern

Hand-edited DNS records

Manual records go stale when endpoints change.

Anti-pattern

Forwarding the wrong name

On-premises forwarders point the whole public service area to Azure, breaking non-private resources.

Anti-pattern

Ignoring developers

Closing public access with no plan for how engineers will reach the service, leading to risky workarounds.

Private Link is a network feature and a DNS feature at the same time. Teams that treat it as only one of them meet the other one at three in the morning.

22Best Practices and Common Mistakes

A checklist to apply before any private design goes live.

Best practices

1

Decide the DNS design first

Choose where zones live, which networks link to them and how on-premises forwards.

2

Use standard zone names

Copy the official names for each service so the name chain matches.

3

Create endpoints through code

Define endpoints, zone groups and links in templates under version control.

4

List every client before closing public access

Include build servers, developers, partners and monitoring tools.

5

Test from each network and from on-premises

Look up the name, connect to the service and confirm the private address in logs.

6

Protect shared DNS and endpoints with locks

Prevent accidental deletion with locks and controlled change.

7

Monitor and alert

Watch connection states, DNS changes, new endpoints and unusual traffic.

8

Review regularly

Every quarter, remove unused endpoints, check ownership and re-test failover.

Common mistakes

MistakeResultPrevention
Zone not linked to a networkPublic address returned, then failures when public is offLink all networks through code and test
Custom DNS server without forwarding to AzurePrivate names never resolveForward service zones to the Azure resolver
One endpoint for all parts of storageOther parts failOne endpoint and zone per part used
Endpoint in too small a subnetCannot add morePlan address space with growth
Public access disabled too earlyPipelines and laptops breakInventory clients, stage the change
Forgetting outbound integration for web appsPrivate inbound works, outbound calls failUse virtual network integration for outbound
No approval processPending connections wait foreverDefine owners and response time
Stale records after rebuildingTraffic goes to a dead addressUse zone groups and remove old records

23Failure Scenarios and Recovery

Walk through the failures in advance, and recovery becomes routine.

Scenario one: everything fails after closing public access

A team disables public access on a storage account and several jobs stop. Cause: some clients, like a build server in another network, still resolve to the public address. Recovery: temporarily re-enable public access with a narrow network rule, link the zone to that network, then close again. Prevention: a client inventory and a staged rollout starting with logging only.

Scenario two: the zone link was deleted

Someone cleans up unused links and removes one that was in use. Applications in that network begin to see public addresses and fail. Recovery: restore the link. Prevention: resource locks, policy and alerts on changes to DNS links.

Scenario three: on-premises users get the public address

Office machines cannot reach the private service. Cause: a missing conditional forwarder on one office DNS server. Recovery: add the forwarder and flush caches. Prevention: configure all offices from one template and test from each site.

Scenario four: a pending connection stays pending

A new team’s endpoint to another team’s database never works. Cause: the connection waits for approval and no one noticed. Recovery: the owner reviews and approves. Prevention: an approval process with notifications and a response time target.

Scenario five: failover moves the service but not the clients

A database fails over to a secondary region, but applications keep connecting to the primary’s private address. Cause: the private record still points to the old endpoint. Recovery: update the record or use a failover-aware name arrangement. Prevention: design and rehearse DNS changes as part of failover tests.

Scenario six: a rogue endpoint

Audit logs show a new endpoint to an unknown storage account in an unusual subscription. Action: investigate who created it and why, remove it if unauthorized, review the account used, and check firewall logs for data sent through it. Prevention: restrict who may create endpoints and alert on every creation.

flowchart TD
  A["Client cannot reach service"] --> B{"Lookup returns private address?"}
  B -->|"No"| C["Fix zone link, custom DNS forwarding or on-premises forwarder"]
  B -->|"Yes"| D{"Connection approved?"}
  D -->|"No"| E["Ask service owner to approve"]
  D -->|"Yes"| F{"Port reachable?"}
  F -->|"No"| G["Check routes, security groups and firewall"]
  F -->|"Yes"| H["Check identity, keys and roles"]
  C --> I["Retest and confirm in logs"]
  E --> I
  G --> I
  H --> I
Figure 10: A quick triage path for a failed private connection
!
Keep a safe fallback plan

Know in advance how you would briefly reopen a narrow public path in an emergency, who may approve it and how it is closed again. A written plan prevents risky improvisation.

24Migrating an Existing Application to Private Endpoints

Most real projects add Private Link to a system that already runs. A careful sequence avoids outages.

1

Inventory

List every service in use and every client that touches it, including scheduled jobs, build pipelines, partner tools and staff laptops.

2

Check support

Confirm each service, region and pricing tier supports private endpoints and note sub-resources.

3

Prepare DNS

Create central zones, link networks, set up forwarding for on-premises and test with a pilot service.

4

Create endpoints

Build endpoints with zone groups, approve them, and keep public access on for now.

5

Verify private use

Check logs to confirm clients now use the private path. Find stragglers that still use public addresses.

6

Fix stragglers

Link missing networks, fix custom DNS, adjust developer access arrangements.

7

Close the public door

Disable public access in a quiet period, watch error rates and keep a rollback plan.

8

Lock in the result

Apply policy to prevent public access in the future, add alerts and document the design.

Use logs to find clients

Before closing, service logs show the source of each request. Requests that come from public addresses reveal clients that are not yet private. Fix these first. This evidence-based approach is far safer than guessing.

Pilot first

Start with one low-risk service and one application. The pilot reveals the DNS and approval problems unique to your organization, so later waves go faster.

Communicate

Tell developers, support teams and partners about the date and about the new way to connect. Provide a short guide: how to reach the service from a laptop, whom to ask for access, and where to find the status page.

Everyday analogy

Moving traffic from the public street to a private tunnel is done by first opening the tunnel, watching who uses it, helping those still on the street, and only then locking the street door.

25Real-World Usage Examples

These are typical, invented scenarios that show the ideas at work. They are not reports about any named company.

Finance

A payments company protects transaction data

The company stores transaction files in storage accounts and records in a database. Rules require that no customer data path crosses the public internet. Private endpoints serve storage and database, public access is disabled by policy, and a firewall allows only the application subnets to reach the endpoint addresses. Audit evidence comes from policy compliance reports and network logs.

Healthcare

A hospital group connects clinics and cloud records

Clinics reach a cloud records system over private circuits. On-premises DNS forwards the service names to a resolver in the hub, which returns private addresses. Staff use the same web address as before, and the records system has no public door.

Software company

A vendor offers a private connection to customers

A data-processing vendor puts its service behind a standard load balancer and publishes it with Private Link service. Enterprise customers create endpoints in their own networks and the vendor approves them. Customers with overlapping address ranges connect without any range changes, and nothing is exposed to the internet.

Government

A department secures a shared key vault

Several teams use one key vault for secrets. Only private endpoints reach it, and a central team approves connections. Policy denies any new vault with public access, and alerts fire on every new endpoint, so unusual connections are noticed within minutes.

Retail

A web app with a private back end

A public shop site goes through a web gateway. The back-end web app and its database have no public doors; the gateway reaches the app through a private endpoint, and the app reaches the database through another. If an attacker finds the back-end name, the connection simply has nowhere to go.

What they share

Each example treats DNS as a first-class part of the design, closes the public door only after checking every client, uses policy to keep the result in place, and watches the logs. The corridor works because it is planned and checked.

26Practical Notes for Storage, Databases and Key Vaults

Three services account for most private endpoint projects. Each has small habits worth knowing in advance.

Storage accounts

Storage is the service with the most parts, so it creates the most endpoints. List which parts your applications really use. A data lake needs the blob part and the data lake part. A file share needs the file part. Static websites use the web part. Create only the endpoints you need, and give each its own zone link. Also remember that tools which copy data between accounts, such as migration utilities, run from a machine that must itself resolve and reach the private addresses of both accounts.

Databases

A database server usually needs one endpoint. Clients connect using the server name and their normal sign-in. One surprise is the connection mode: some database services redirect clients to a different address after the first handshake, and in a private design that redirect must also stay on the private path. Read the documentation for the connection policy that suits private endpoints, and test with the real application driver, not only with a test tool.

Key vaults

A vault holds the keys to everything else, so it is the first candidate for private access. Many services read secrets at start-up, and if a vault is private but the application subnet cannot resolve its name, the application fails to start. This can look like a deployment failure when it is really DNS. When you protect a vault, make sure the services that need it at start-up, such as build pipelines and scaling systems, are covered by the private path.

Common companions

Service

Messaging

Queues and event streams are often used by many applications. One shared endpoint in a hub can serve them all.

Service

Container registries

Build agents and clusters pull images constantly. Check that both control and data records resolve privately.

Service

Monitoring

Agents send logs from every server. Missing private zones here cause silent gaps in monitoring.

A simple order of work

Start with monitoring and the vault, since they support everything else. Then do storage, then databases, then the rest. At each step, verify with a lookup and a real connection, and keep public access on until the logs show no public clients.

i
Test with the real tool

A connection test from a command-line utility proves the network path. A test from the real application proves drivers, certificates and settings. Do both before declaring a service ready.

27Frequently Asked Questions

Short answers to common questions. Where a detail may have changed, confirm in the current Microsoft documentation.

Q1 Is Private Link the same as a service endpoint?
No. A service endpoint improves the route to a public address. Private Link gives the service a private address in your network, and lets you close the public door.
Q2 Do I need to change my application?
Usually not. Applications keep using the same service name, and DNS returns the private address inside your network.
Q3 Why does my server still use the public address?
Most likely the network is not linked to the private DNS zone, or a custom DNS server does not forward to Azure’s resolver.
Q4 Can on-premises machines use private endpoints?
Yes, over a VPN or private circuit, if routes exist and on-premises DNS forwards the service names to a resolver in Azure.
Q5 Do I need one endpoint per storage account or per part?
Per part you use. Blob, file, queue and table each need their own endpoint and DNS zone.
Q6 What is the difference between a private endpoint and a Private Link service?
A private endpoint is used by consumers to reach a service. A Private Link service is created by a provider to offer its own service privately.
Q7 Does Private Link encrypt my data?
It makes the path private, but the service connection should still use encryption, which services normally require.
Q8 Can I filter traffic to an endpoint?
Yes, by enabling network policies on the endpoint subnet and using security groups and routes. Check current behavior for your case.
Q9 Can endpoints connect across regions or directories?
Generally yes, with approval where the service belongs to another owner. Verify support for your service.
Q10 What happens if I delete the endpoint?
Clients lose the private path. If public access is off, they lose access entirely until you recreate it.
Q11 How do developers reach a private service from laptops?
Through a VPN, a jump host, a private development environment, or a similar arrangement that places them on the private network.
Q12 Does it work with web apps?
A private endpoint controls inbound access to a web app. Outbound calls from the web app need virtual network integration.
Q13 How much does it cost?
There is an hourly charge per endpoint and a charge per gigabyte processed, plus DNS and supporting services. Use the official calculator for current numbers.
Q14 Can I enforce it across a whole company?
Yes. Azure Policy can deny public access and require private endpoints, and can deploy missing DNS settings.
Q15 What is the most common cause of trouble?
DNS. Always check what the failing machine resolves before looking at anything else.
Q16 Are the supported services and limits fixed?
No. They change often, so check the current documentation before planning.

28Summary and Key Takeaways

Private Link brings cloud services into your network by giving them private addresses, so that traffic stays on the Microsoft backbone and the public door can be closed.

Key takeaways

  • A private endpoint is a network interface in your subnet connected to one specific service resource and sub-resource; a Private Link service lets you publish your own application privately.
  • Every design has two parts: the endpoint and the DNS. Link private DNS zones to every network, and forward on-premises names to a resolver in Azure.
  • Unlike service endpoints, Private Link allows you to disable public access and limits data exfiltration to the one resource you choose.
  • Plan for each service part, subnet size, endpoint limits and the connection approval process before building.
  • Enforce the design with Azure Policy, locks, role-based access and alerts on new endpoints and DNS changes.
  • Migrate in stages: inventory clients, create endpoints, verify logs, fix stragglers, then close the public door.
  • Most faults are DNS faults. Check what the failing machine resolves first, and verify current services, limits and prices in the official documentation.