Storage Storage accounts complete field-manual-complete

Storage account private endpoint

A storage account private endpoint is a private doorway into a storage account from your virtual network. Instead of clients reaching storage through a public endpoint, Azure creates a network interface with a private IP address and maps it to a specific storage subresource, such as blob, file, queue, table, dfs, or web. Applications still use normal storage URLs, but private DNS resolves them to the private address. This is how teams keep storage traffic inside controlled network boundaries without running a VPN to the service.

Aliases
storage private endpoint, Private Link for storage account, storage Private Link endpoint, private storage endpoint
Difficulty
advanced
CLI mappings
5
Last verified
2026-05-25

Microsoft Learn

A storage account private endpoint connects a storage service to a private IP address in an Azure virtual network. It lets clients reach Blob, File, Queue, Table, DFS, or Web endpoints over Private Link instead of the public internet, with DNS directing traffic privately.

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

Technical context

In Azure architecture, a storage account private endpoint is a Private Link connection scoped to a storage account subresource. The endpoint lives in a subnet, uses a network interface, and creates a private endpoint connection on the storage account control plane. DNS is the practical data-plane hinge: clients call the familiar storage FQDN, but private DNS zones resolve that name to the endpoint IP. Operators usually combine it with disabled public network access, firewall rules, identity-based authorization, and monitoring for private endpoint connection state.

Why it matters

Private endpoints matter because storage accounts often hold business-critical data that should not be reachable from arbitrary public network paths. They let teams preserve normal storage SDK behavior while moving the network path into a governed virtual network. That reduces exposure, simplifies firewall reviews, and supports regulated workloads that require private connectivity. Misconfigured private endpoints can still cause outages, especially when DNS zones are missing or the wrong subresource is connected. For learners and operators, this term is a key bridge between storage security, networking, DNS, identity, and application configuration. It is rarely just a checkbox; it changes how clients actually resolve and reach data.

Where you see it

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

Signal 01

In the storage account Networking blade, private endpoint connections show approval state, target subresource, connection name, and whether the account still allows public endpoint access.

Signal 02

In CLI output, operators inspect privateEndpointConnections, publicNetworkAccess, subnet IDs, groupIds, and privateLinkServiceConnectionState before approving requests or disabling public network access during audited cutover reviews and approvals.

Signal 03

In private DNS zones, records such as blob.core.windows.net or dfs.core.windows.net resolve to private IP addresses used by application subnets during cutover testing.

When this becomes relevant

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

  • Move Blob or Data Lake traffic from public endpoints to private virtual network paths before handling regulated data.
  • Disable public network access only after applications prove they resolve storage names to private endpoint IP addresses.
  • Connect hub-spoke workloads to storage without opening inbound firewall rules or publishing storage endpoints to the internet.
  • Separate blob, dfs, file, queue, table, and web access decisions when different workloads require different private paths.
  • Generate audit evidence showing storage accounts have approved private endpoint connections and no unexpected public exposure.

Real-world case studies

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

Case study 01

Logistics platform closes public telemetry path

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

Scenario

A global logistics platform collected truck telemetry into Blob and Data Lake Storage. A security review found that the storage account still allowed public endpoint access from several legacy ingestion workers.

Business/Technical Objectives
  • Move telemetry ingestion to private network paths before the next fleet expansion.
  • Preserve existing SDK connection strings so field devices did not need firmware changes.
  • Prove that blob and dfs endpoints resolved privately from every processing subnet.
  • Remove public endpoint exposure without increasing message loss during route changes.
Solution Using Storage account private endpoint

The platform team created separate private endpoints for blob and dfs subresources, linked private DNS zones to the hub and analytics spokes, and tested resolution from container jobs, Stream Analytics workers, and support jump boxes. CLI inventory showed which accounts still had publicNetworkAccess enabled and which private endpoint connections were approved. The team changed workers to use the same storage hostnames, validated that DNS returned private IP addresses, and then disabled public access in a controlled window. Storage metrics and diagnostics were watched for failed requests, authorization denials, and ingestion lag while the old public path was closed.

Results & Business Impact
  • Public endpoint traffic dropped from 100 percent to less than 2 percent during validation, then to zero after cutover.
  • Telemetry ingestion loss stayed under 0.05 percent during the DNS and endpoint transition.
  • Security review time for the fleet expansion fell from three weeks to six business days.
  • The team retired 14 temporary firewall IP rules that previously required monthly review.
Key Takeaway for Glossary Readers

Private endpoints let storage remain familiar to applications while removing broad public network reachability.

Case study 02

Legal archive isolates evidence storage

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

Scenario

A litigation services firm stored evidence exports in Azure Files and Blob Storage. Auditors objected to public endpoint reachability even though every container and share required authentication.

Business/Technical Objectives
  • Restrict evidence access to approved office and review-room networks.
  • Keep SMB file access working for case managers without deploying a custom file gateway.
  • Create audit evidence showing private endpoint approval and DNS ownership.
  • Reduce emergency firewall changes during time-sensitive discovery deadlines.
Solution Using Storage account private endpoint

The infrastructure group placed file and blob private endpoints in a secured services subnet and connected review-room networks through existing private DNS forwarding. They used CLI to document endpoint groupIds, connection states, network interface IDs, and storage account public network posture. Case managers kept using mapped drives and storage URLs, but name resolution moved to private IPs. The firm also required endpoint requests to be approved by the platform team, not project administrators, and added activity-log alerts for private endpoint deletion or public access re-enablement.

Results & Business Impact
  • External public-path access attempts fell by 96 percent after the account moved to private-only networking.
  • Discovery workspace setup time dropped from two days to four hours because endpoint and DNS steps became scripted.
  • Auditors accepted CLI evidence instead of requesting manual screenshots for each archive account.
  • Unplanned firewall exceptions during active cases decreased from nine per quarter to one.
Key Takeaway for Glossary Readers

Private endpoint design is strongest when DNS, approval workflow, and evidence collection are treated as one operating model.

Case study 03

Game studio protects build artifacts

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

Scenario

A multiplayer game studio stored large build artifacts and crash dumps in storage accounts shared by studios in three regions. A leaked SAS URL raised concern that public endpoint reachability could magnify future mistakes.

Business/Technical Objectives
  • Keep build agents uploading artifacts without routing through the public internet.
  • Limit storage reachability to studio build networks and Azure-hosted workload subnets.
  • Add a safe rollback path for release-week build pipelines.
  • Detect any drift where public access or endpoint approval changed outside the pipeline.
Solution Using Storage account private endpoint

The platform squad created blob private endpoints for the artifact accounts and linked private DNS zones to build-network virtual networks. Self-hosted build agents were moved behind approved resolvers, while hosted agents used a temporary exception until replacement pools were ready. CLI checks became part of the release pipeline: verify privateEndpointConnections approved, verify publicNetworkAccess disabled for production accounts, and fail the deployment if DNS returned a public address. The team also rotated old SAS tokens and replaced ad hoc artifact upload scripts with managed identity where possible.

Results & Business Impact
  • Build artifact upload latency became 18 percent more predictable during release windows.
  • Public endpoint access was disabled on six production artifact accounts without stopping nightly builds.
  • Pipeline drift checks caught two attempted manual network changes before they reached production.
  • The studio reduced emergency token-rotation events from five in a quarter to one.
Key Takeaway for Glossary Readers

A private endpoint does not fix weak credentials, but it sharply reduces where stolen storage URLs can be used.

Why use Azure CLI for this?

After years of Azure operations, I use CLI for private endpoint work because portal views hide too much state across blades. One command can show the storage account ID, public network setting, private endpoint connections, subnet, private DNS zone links, and approval state. That repeatability matters during migrations, incident response, and evidence collection for auditors. CLI also prevents hand-built endpoint drift by letting teams template the group-id, connection name, subnet, and DNS checks in deployment pipelines. The portal is fine for learning, but CLI is better when you must prove every storage account has the expected private path before disabling public access.

CLI use cases

  • Inventory private endpoint connections for every storage account in a subscription and flag missing blob or dfs endpoints.
  • Create a private endpoint for a specific storage subresource with a known subnet, group-id, and connection name.
  • Validate private DNS zone links and A records before disabling public network access on the account.
  • Export approval states for private endpoint connections during security reviews or platform readiness checks.
  • Compare production and disaster-recovery accounts to confirm both have equivalent private endpoint and DNS coverage.

Before you run CLI

  • Confirm tenant, subscription, resource group, storage account name, target subresource, virtual network, subnet, and whether the endpoint is new or an approval request.
  • Verify permissions for both the storage account and network scope; private endpoint creation often crosses application, platform, and network ownership boundaries.
  • Check whether public network access will be changed, because disabling it before DNS validation can immediately break clients.
  • Confirm private DNS zone ownership, expected region, provider registration, and whether hub-spoke resolver forwarding already exists.
  • Choose JSON or table output deliberately; JSON is better for drift automation, while table output is faster during live troubleshooting.

What output tells you

  • privateEndpointConnections shows whether the storage account has pending, approved, rejected, or disconnected private endpoint relationships.
  • groupIds identifies which storage subresource the endpoint targets, such as blob, dfs, file, queue, table, or web.
  • subnet and networkInterface IDs show where the private IP lives and which network team owns reachability.
  • private DNS records show whether clients can resolve the normal storage hostname to the expected private IP address.
  • publicNetworkAccess indicates whether the account still accepts traffic through public storage endpoints after private connectivity exists.

Mapped Azure CLI commands

Storage account private endpoint CLI commands

direct
az storage account show --name <account-name> --resource-group <resource-group> --query "{publicNetworkAccess:publicNetworkAccess,privateEndpointConnections:privateEndpointConnections}"
az storage accountdiscoverStorage
az network private-endpoint list --resource-group <resource-group>
az network private-endpointdiscoverAnalytics
az network private-endpoint show --name <endpoint-name> --resource-group <resource-group>
az network private-endpointdiscoverDatabases
az network private-endpoint create --name <endpoint-name> --resource-group <resource-group> --vnet-name <vnet-name> --subnet <subnet-name> --private-connection-resource-id <storage-account-resource-id> --group-id blob --connection-name <connection-name>
az network private-endpointsecureStorage
az network private-dns record-set a list --zone-name privatelink.blob.core.windows.net --resource-group <dns-resource-group>
az network private-dns record-set adiscoverStorage

Architecture context

Architecturally, a storage account private endpoint turns a platform service into something that behaves like a private network dependency. The storage account remains a managed Azure service, but traffic from selected clients enters through a private IP in a chosen subnet. That makes DNS design, subnet ownership, network security groups, route tables, and application configuration part of the storage architecture. A good design treats each storage subresource separately because blob, dfs, file, queue, table, and web endpoints may need different DNS records. Architects also decide whether endpoint approval is centralized, whether public access is disabled immediately, and how hub-spoke networks share private DNS resolution.

Security

Security impact is direct and significant. A private endpoint reduces public network exposure by moving the storage access path into a virtual network, but it does not replace authorization. Callers still need valid keys, SAS tokens, Microsoft Entra credentials, or RBAC permissions. The main risks are weak DNS controls, leaving public network access enabled unexpectedly, approving rogue private endpoint requests, or granting broad storage permissions after the network path is private. Teams should monitor private endpoint connections, enforce policy on publicNetworkAccess, restrict who can create endpoints, and review whether trusted services exceptions are still needed. Encryption remains handled by Storage, but network reachability becomes much tighter.

Cost

Private endpoints have direct and indirect cost implications. The endpoint resource and Private Link data processing can add charges, and private DNS zones may add operational overhead even when their line-item cost is small. The larger cost benefit is risk reduction: fewer public exposure exceptions, simpler compliance evidence, and less emergency work caused by firewall misconfiguration. Design choices still matter. Creating separate endpoints for every subresource, region, and environment can multiply operational effort. Keeping unused private endpoints after migrations also leaves avoidable charges. FinOps teams should track endpoint counts, traffic patterns, account redundancy, and whether public access remains enabled despite the private path.

Reliability

Reliability impact is practical because private endpoints introduce dependencies beyond the storage account itself. A healthy account can appear unavailable if private DNS records are wrong, a subnet is deleted, a private endpoint connection is rejected, or clients resolve the public address from the wrong resolver. Zone and regional redundancy choices still govern data durability, while the endpoint governs reachability. Operators should test name resolution from every workload subnet, document rollback to public access if policy allows it, and avoid deleting endpoint resources during network cleanups. Private endpoints reduce internet exposure, but they also make DNS hygiene part of storage availability.

Performance

Performance impact depends on routing, DNS, client location, and the storage service path. Private endpoints usually keep traffic on private Azure networking, which can reduce unpredictable public routing, but they are not a cache and do not raise account throughput limits. Latency can worsen if clients resolve through a distant DNS path, traverse unnecessary hub routing, or use the wrong regional account. File workloads may feel DNS or SMB path issues quickly, while Blob workloads often expose problems through higher tail latency. Operators should compare client-side latency before and after cutover, watch storage throttling metrics, and confirm private endpoint traffic reaches the intended regional account.

Operations

Operators manage private endpoints by inspecting endpoint connections, DNS records, network interfaces, subnet placement, and storage account network settings together. Common tasks include approving pending requests, validating that blob and dfs endpoints both exist for Data Lake workloads, checking private DNS zone links after hub-spoke changes, and confirming applications resolve the private IP before disabling public access. Automation should export endpoint inventory by account, group-id, subnet, approval state, and DNS zone. Troubleshooting usually starts with az storage account show, az network private-endpoint show, nslookup from the workload subnet, and storage diagnostic logs for failed authorization or network denials. This keeps human approvals aligned with automated deployment evidence.

Common mistakes

  • Creating a blob private endpoint for a Data Lake workload but forgetting the dfs endpoint required by hierarchical namespace clients.
  • Disabling public network access before testing DNS resolution from every subnet, build agent, function app, and integration runtime.
  • Assuming a private endpoint grants permissions; storage authorization still depends on RBAC, keys, SAS tokens, ACLs, or identities.
  • Leaving stale private endpoint connections approved after application migrations, which keeps an unnecessary private path open.
  • Using manual portal approvals without recording who requested the endpoint, which subnet it uses, and which workload owns it.