Storage Private networking field-manual-complete field-manual field-manual-complete

Storage private endpoint

A storage private endpoint gives a storage service, such as blob, file, queue, table, dfs, or web, a private IP address inside a virtual network. Applications keep using normal storage URLs and credentials, but DNS resolves the service name to the private endpoint when traffic comes from the connected network. This removes the need for the workload to reach the storage public endpoint. It is a network design choice, not an authorization method, so identities, keys, SAS, and RBAC still matter.

Aliases
private endpoint for storage, Azure Storage private endpoint, storage Private Link endpoint, private storage access, storage account private link
Difficulty
Intermediate
CLI mappings
5
Last verified
2026-05-26

Microsoft Learn

A storage private endpoint lets clients on an Azure virtual network access a storage account over Azure Private Link. Microsoft Learn explains that each storage service uses a separate private IP address from the virtual network, and traffic reaches storage over the Microsoft backbone instead of the public internet.

Microsoft Learn: Use private endpoints for Azure Storage2026-05-26

Technical context

Technically, the private endpoint is a network interface created in a subnet and connected to a storage account target subresource such as blob, file, queue, table, dfs, or web. It uses Azure Private Link and normally relies on private DNS zones such as privatelink.blob.core.windows.net. The storage firewall controls public endpoint access separately; private endpoint traffic is approved through the private endpoint connection. The design interacts with virtual networks, DNS forwarding, on-premises connectivity, service endpoints, public network access, redundancy, and application connection strings.

Why it matters

This matters because many organizations want storage access to feel like private network traffic instead of internet-reachable service traffic. A private endpoint can reduce exposure, simplify data exfiltration controls, and help workloads meet security requirements without changing storage SDK behavior. It also introduces real operational responsibilities. DNS must resolve correctly, each required storage service may need its own private endpoint, and on-premises clients need routing into the virtual network. Misconfigured private endpoints cause confusing failures where a workload has valid credentials but reaches the wrong endpoint or public path. Good designs make the intended path obvious and testable. That keeps isolation measurable rather than assumed during audits and production incident reviews.

Where you see it

Signals, screens, and Azure surfaces where this term usually becomes operational.

Signal 01

In the storage account Private endpoint connections blade, each connection shows approval state, target subresource, private endpoint name, virtual network, and associated network interface. inside the approved resource group quickly.

Signal 02

In private DNS zones, records such as privatelink.blob.core.windows.net map a storage account hostname to the endpoint private IP used by workloads.

Signal 03

In CLI or ARM output, private endpoint properties show subnet ID, groupIds, connection state, custom DNS configs, and the storage account resource ID. for deployment reviews.

When this becomes relevant

Specific situations where this term helps solve real Azure design, operations, migration, security, reliability, cost, or governance problems.

  • Move a sensitive blob workload off public endpoint access while keeping application connection strings and SDK usage stable.
  • Connect on-premises clients to Azure Files or Blob Storage through VPN or ExpressRoute without exposing storage publicly.
  • Add a separate queue private endpoint when an application starts using Queue Storage through the same account.
  • Lock down public network access after verifying private DNS resolution from every production subnet.
  • Design secondary-region read access for geo-redundant storage without assuming the primary private endpoint covers every case.

Real-world case studies

Different enterprise-style examples that show the term being used to hit measurable objectives.

Case study 01

Biotech lab isolates sequencing data

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

A biotech research lab stored genome sequencing results in Azure Blob Storage for analysis pipelines. The science network required private access, but the account still had selected public network exceptions.

Business/Technical Objectives
  • Move sequencing pipeline traffic to private endpoint access.
  • Disable broad public endpoint access after validation.
  • Keep on-premises lab instruments uploading through ExpressRoute.
  • Produce evidence for a data handling review.
Solution Using Storage private endpoint

Cloud architects created blob and dfs private endpoints in the analytics virtual network because the pipeline used both Blob APIs and Data Lake paths. Private DNS zones were linked to the hub and lab spokes, and the on-premises resolver forwarded privatelink names through the ExpressRoute path. Public network access stayed enabled for one week while upload tests ran from instruments, compute nodes, and a jump host. After all tests passed, the account default public path was disabled and old IP rules were removed. CLI output captured private endpoint IDs, group IDs, DNS records, and storage firewall settings for the compliance package.

Results & Business Impact
  • Moved 94 percent of sequencing transfers to private endpoint paths in three days.
  • Disabled public access with no missed overnight sequencing uploads.
  • Reduced firewall exceptions from eight IP ranges to zero.
  • Completed the data handling review two weeks earlier than planned because evidence was already scripted.
Key Takeaway for Glossary Readers

Storage private endpoints protect sensitive scientific data when DNS, service subresources, and cutover tests are handled together.

Case study 02

Insurance portal secures document uploads

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

An insurance claims portal accepted customer documents and stored them in Azure Storage. Security reviewers wanted uploads and processing jobs to stay inside the company network boundary.

Business/Technical Objectives
  • Route upload processing to blob storage through Private Link.
  • Keep customer-facing web traffic separate from storage data paths.
  • Prevent developers from using public endpoint shortcuts.
  • Improve troubleshooting during claims deadline peaks.
Solution Using Storage private endpoint

The platform team placed the web tier behind a front-end service but kept storage access from the application subnet through a blob private endpoint. Private DNS was linked only to approved application and operations networks, while developer sandboxes used a separate nonproduction account. The storage firewall blocked public access after the team confirmed uploads, virus scanning, and document indexing all resolved storage names to the private IP. Operators added a workbook that compared DNS answers, private endpoint connection state, and failed upload telemetry. Change management required a CLI evidence file before any new storage account could join the claims platform.

Results & Business Impact
  • Eliminated public endpoint access for 12 production document containers.
  • Reduced storage-related upload failures during month-end from 2.8 percent to 0.6 percent.
  • Blocked two attempted developer shortcuts from unmanaged networks.
  • Cut average troubleshooting time for storage path issues from 75 minutes to 22 minutes.
Key Takeaway for Glossary Readers

Private endpoints help application teams separate public customer experience from private storage dependency paths.

Case study 03

Industrial IoT plant keeps telemetry private

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

A manufacturing plant collected machine telemetry into Azure Queue Storage and Blob Storage. The network team wanted cloud ingestion without exposing storage endpoints to the public internet.

Business/Technical Objectives
  • Create private paths for both queue and blob traffic.
  • Let plant gateways use existing VPN connectivity.
  • Avoid changing gateway connection strings during rollout.
  • Provide a rollback plan for shift operations.
Solution Using Storage private endpoint

Engineers created separate queue and blob private endpoints because gateways wrote events to Queue Storage while batch collectors uploaded diagnostic files to Blob Storage. The private DNS zones were linked to the plant hub virtual network, and VPN-connected gateways were configured to use the hub resolver. The team tested queue puts, queue gets, and blob uploads during a maintenance window while public network access stayed temporarily enabled. Once telemetry stayed stable for two shifts, public access was disabled. The rollback plan kept the previous firewall settings in a change record, but no rollback was needed.

Results & Business Impact
  • Moved 1.2 million daily telemetry messages to private endpoint paths.
  • Kept gateway connection strings unchanged during the migration.
  • Disabled public access after two successful production shifts.
  • Reduced security review exceptions from five storage accounts to one approved network pattern.
Key Takeaway for Glossary Readers

A storage private endpoint design must cover every storage subresource a workload actually uses, not just blobs.

Why use Azure CLI for this?

I use Azure CLI for storage private endpoints because the design spans storage, networking, DNS, and approval state. The portal shows each blade separately, but CLI can inventory private endpoints, connection status, group IDs, subnet IDs, DNS records, and storage account public access in one evidence chain. That is invaluable during cutovers and outages. CLI also makes repeatable deployment practical across blob, file, queue, and dfs endpoints. When a private endpoint fails, I want exact IDs and DNS answers fast, not a tour through six portal screens.

CLI use cases

  • List private endpoints connected to storage accounts and export group IDs, subnet IDs, and connection states.
  • Create a blob, file, queue, table, dfs, or web private endpoint from reviewed infrastructure inputs.
  • Check private endpoint connection approval before blaming DNS or application credentials.
  • List private DNS A records to confirm a storage hostname resolves to the expected private IP.
  • Compare publicNetworkAccess with private endpoint coverage before disabling public endpoint access.

Before you run CLI

  • Confirm tenant, subscription, resource group, storage account ID, virtual network, subnet, and target subresource.
  • Know which storage services the application uses; blob and dfs, or blob and queue, may require separate endpoints.
  • Plan private DNS zone creation, zone links, and on-premises resolver forwarding before traffic cutover.
  • Check whether public network access must remain temporarily enabled for migration, support, or partner access.
  • Verify permissions to create private endpoints, approve storage connections, and modify DNS records.

What output tells you

  • groupIds show which storage service the endpoint targets, such as blob, file, queue, table, dfs, or web.
  • connectionState indicates whether the storage account owner approved, rejected, or left the private endpoint pending.
  • subnet and networkInterface IDs show where the private endpoint IP lives and which network boundary owns it.
  • customDnsConfigs and private DNS records show whether clients should resolve storage names to private addresses.
  • publicNetworkAccess reveals whether public endpoint paths still exist alongside the private endpoint design.

Mapped Azure CLI commands

Storage private endpoint operations

manages
az network private-endpoint list --resource-group <resource-group>
az network private-endpointdiscoverAnalytics
az network private-endpoint show --name <private-endpoint> --resource-group <resource-group>
az network private-endpointdiscoverStorage
az network private-endpoint create --name <private-endpoint> --resource-group <resource-group> --vnet-name <vnet> --subnet <subnet> --private-connection-resource-id <storage-account-id> --group-id blob --connection-name <connection-name>
az network private-endpointsecureStorage
az network private-endpoint-connection list --id <storage-account-id>
az network private-endpoint-connectiondiscoverStorage
az network private-dns record-set a list --resource-group <dns-resource-group> --zone-name privatelink.blob.core.windows.net
az network private-dns record-set adiscoverStorage

Architecture context

In architecture reviews, a storage private endpoint is the preferred pattern when applications should access storage from controlled networks instead of the public internet. I design it per storage service, because blob, file, queue, table, dfs, and web use different target subresources and DNS names. I also decide whether public network access remains enabled for migration, support, or partner paths. The architecture must include private DNS, hub-spoke routing, on-premises resolver behavior, disaster recovery, and monitoring of private endpoint connection changes. The goal is a storage path that is private, predictable, and still operable.

Security

Security impact is direct because a private endpoint moves storage reachability into a virtual network boundary. It reduces exposure to public endpoint scanning and helps prevent data exfiltration to unapproved storage paths when combined with network controls. However, it does not grant or remove data permissions. A compromised VM in the allowed network still needs authorization controls, logging, and least privilege. Security teams should validate private endpoint approval state, DNS zones, public network access, Shared Key posture, RBAC, SAS lifetimes, and Defender alerts together. Private connectivity is powerful, but it is not a substitute for identity. DNS ownership, approval workflow, and subnet change control matter as much as endpoint creation.

Cost

Private endpoints and Private Link data processing introduce direct network costs, and private DNS zones add operational ownership. Those costs are usually justified for sensitive data, regulated workloads, or hub-spoke architectures, but they should be planned. Indirect costs appear when every storage service creates a separate endpoint, when DNS troubleshooting consumes engineering time, or when public access remains enabled because the migration never finishes. FinOps reviews should track endpoint count, linked DNS zones, traffic volume, and exceptions that still require public network rules. The cheapest design is not always the safest or simplest. FinOps reviews should separate private endpoint charges from the higher cost of incident response.

Reliability

Reliability depends heavily on DNS and network path correctness. A private endpoint can make storage access more predictable, but a bad private DNS record, missing endpoint for dfs or queue, subnet change, or resolver issue can break applications that look healthy otherwise. Reliable deployments create endpoints before cutover, test from real application hosts, document public fallback decisions, and monitor private endpoint connection status. Geo-redundant designs may need separate planning for secondary read access. During incidents, teams should compare DNS answers, route paths, storage account status, and public network access before rotating credentials unnecessarily. Teams should document rollback DNS records before migrating production clients behind Private Link.

Performance

Performance impact is usually about network path quality rather than storage engine speed. A private endpoint can reduce public internet variability by keeping traffic on private routing and the Microsoft backbone, but it does not raise storage account throughput limits. Poor DNS, congested VPN paths, forced tunneling, or distant hub routing can still add latency. Applications copying between storage accounts must have access to both accounts, which private endpoint designs can complicate. Performance testing should include name resolution, path latency, throughput, retry counts, and whether traffic uses the expected endpoint for each storage service. Baselines should compare public endpoint behavior with private DNS resolution before and after migration.

Operations

Operators manage storage private endpoints by checking endpoint resources, connection approval, target subresource, NIC IP address, private DNS records, and storage account networking. They troubleshoot failures by resolving the storage hostname from the workload, confirming the returned private IP, checking route tables, and verifying the storage service targeted by the endpoint. Change work often includes adding queue or dfs endpoints after an application expands, linking private DNS zones to spokes, or cleaning up endpoints after an account is retired. Good runbooks include test commands, owner tags, and rollback decisions for public access. Change records should include the subnet, DNS zone, approved connection, and validation command output.

Common mistakes

  • Creating a blob private endpoint and assuming it also covers queue, file, table, dfs, or static website traffic.
  • Disabling public access before private DNS is linked to every spoke or on-premises resolver that needs storage.
  • Treating private endpoint connectivity as a replacement for RBAC, SAS hygiene, or Shared Key controls.
  • Forgetting secondary read access or cross-account copy paths when storage redundancy or migrations are involved.
  • Leaving duplicate DNS records that send some clients to public endpoints and others to private endpoints.