Storage Storage accounts complete field-manual-complete

Storage account secondary endpoint

A storage account secondary endpoint is the backup address for reading data from the replica of a geo-redundant storage account. It usually matters when the account uses RA-GRS or RA-GZRS, because those redundancy choices expose a secondary region for read access. You cannot write to that endpoint during normal operations, but applications can read from it when the primary region is unavailable or when you deliberately test read-failover behavior. Treat it as a disaster-recovery access path, not a second active storage account.

Aliases
Storage account secondary endpoint, storage account secondary endpoint, storage-account-secondary-endpoint, storage secondary endpoint, account secondary endpoint, RA-GRS secondary endpoint
Difficulty
advanced
CLI mappings
5
Last verified
2026-05-25

Microsoft Learn

A storage account secondary endpoint is the read-only service URL for data replicated to a paired Azure region when the account uses read-access geo-redundant redundancy. Applications use it for planned read fallback, disaster recovery testing, and latency-aware secondary reads. It appears in account properties and should be tested before incidents.

Microsoft Learn: Azure Storage redundancy2026-05-25

Technical context

In Azure architecture, the secondary endpoint sits in the storage data plane and depends on the account redundancy configuration. The control plane property appears on the storage account resource, while clients reach service-specific endpoints such as Blob, Queue, Table, or File when supported. Its usefulness is tied to replication status, secondary location, DNS, private endpoints, and application retry logic. Engineers typically inspect it with storage account properties, pair it with RA-GRS or RA-GZRS decisions, and validate that authentication, firewalls, and client libraries allow read-only secondary calls.

Why it matters

The secondary endpoint matters because disaster recovery is only useful when applications know where to read during trouble. Many teams buy read-access geo-redundant storage but never test the secondary URL, DNS path, private endpoint configuration, or authorization model. During a regional incident, that gap turns a paid resilience feature into a scramble. A well-understood secondary endpoint lets architects design controlled read fallback for reports, archives, static assets, ingestion buffers, or restore workflows. It also forces honest conversations about data staleness, since geo-replication is asynchronous. Operators should know which workloads can tolerate stale reads, which must wait for primary recovery, and who can switch clients safely.

Where you see it

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

Signal 01

In the storage account Properties blade, secondary endpoints appear beside primary endpoints when the redundancy option supports read access to the replicated region during recovery planning.

Signal 02

In Azure CLI output from az storage account show, secondaryEndpoints, secondaryLocation, and statusOfSecondary reveal whether the account exposes usable read-only regional paths for clients today.

Signal 03

In disaster recovery runbooks or application settings, you may see URLs using the account-secondary host name for Blob or other supported storage services during fallback tests.

When this becomes relevant

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

  • Validate that RA-GRS or RA-GZRS accounts have a tested read path before a regional outage forces emergency discovery.
  • Route read-only reporting, archive lookup, or media retrieval to the secondary region when the primary endpoint is degraded.
  • Design Private Link and DNS records for secondary storage access instead of assuming the primary private endpoint covers both paths.
  • Document which applications can tolerate asynchronously replicated, potentially stale data during disaster recovery operations.
  • Inventory expensive read-access redundancy accounts and prove whether each one has an operational recovery use case.

Real-world case studies

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

Case study 01

City records portal gains regional read fallback

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

Scenario

A city clerk office hosted permit scans in a read-access geo-redundant storage account, but the emergency portal only knew the primary Blob endpoint.

Business/Technical Objectives
  • Keep permit lookup available during a primary-region outage.
  • Avoid write operations during disaster recovery mode.
  • Validate private DNS and firewall rules for secondary reads.
  • Document data staleness for emergency staff.
Solution Using Storage account secondary endpoint

The platform team inventoried the account with Azure CLI, confirmed the RA-GRS SKU, secondaryLocation, statusOfSecondary, and Blob secondary endpoint, then added the endpoint to an emergency-only configuration slot. They created a dedicated private endpoint for the secondary Blob subresource and linked the matching private DNS zone to the virtual network used by the records portal. The application team changed the read path so staff could switch to secondary mode through a feature flag that disabled uploads and marked results as replicated data. Monthly drills used a short-lived test container and CLI evidence rather than real citizen documents.

Results & Business Impact
  • Portal read tests succeeded from the secondary endpoint in 11 minutes, down from an untested manual process.
  • Emergency staff could retrieve 96 percent of sampled permit scans during a simulated regional outage.
  • Private DNS failures found in staging were fixed before production rollout.
  • Runbook evidence satisfied the city continuity review without exposing document contents.
Key Takeaway for Glossary Readers

A secondary endpoint is valuable only when the network, identity, application mode, and staleness rules are rehearsed together.

Case study 02

Robotics manufacturer keeps telemetry dashboards readable

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

Scenario

A robotics manufacturer stored daily factory telemetry exports in Blob Storage and needed dashboards to remain readable during planned regional maintenance.

Business/Technical Objectives
  • Use secondary reads for dashboards without accepting new telemetry writes.
  • Separate analytics fallback from manufacturing control systems.
  • Measure replication delay before publishing maintenance guidance.
  • Keep support teams from manually editing endpoint URLs.
Solution Using Storage account secondary endpoint

Engineers confirmed the account used RA-GZRS and exported primary and secondary endpoint values into a controlled configuration file. The dashboard service was updated with a read-only fallback mode that queried the secondary Blob endpoint only for completed daily export folders. CLI checks ran before each maintenance window to capture sku.name, secondaryLocation, endpoint URLs, and secondary availability. Because the account used private networking, the network team added a secondary private endpoint path and tested DNS resolution from the analytics subnet. Operators published a banner showing the last replicated export timestamp so plant managers understood the freshness of dashboard data.

Results & Business Impact
  • Dashboard availability during the maintenance test improved from 62 percent to 99 percent.
  • Manual endpoint edits were eliminated from the support runbook.
  • Replication delay stayed under 14 minutes for the tested export folders.
  • Manufacturing control traffic remained isolated from the analytics fallback path.
Key Takeaway for Glossary Readers

Secondary endpoint design works best when only workloads that tolerate read-only, delayed data are allowed to use it.

Case study 03

Film distributor protects archive lookup during incident response

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

Scenario

A film distributor used Blob Storage for rights agreements and trailer archives, and legal teams needed read access while a primary-region incident was being investigated.

Business/Technical Objectives
  • Provide read-only access to archived contracts during a regional event.
  • Prevent accidental uploads or overwrites while operating from secondary storage.
  • Capture audit-ready evidence of the endpoint used.
  • Avoid granting broad account keys to legal operations.
Solution Using Storage account secondary endpoint

The cloud operations group reviewed the account redundancy and exposed only the secondary Blob endpoint to a temporary legal lookup tool. Access used Azure AD roles and a managed identity rather than shared keys. The tool blocked upload, delete, and metadata update actions, and it displayed a warning that results reflected asynchronously replicated data. CLI output was saved in the incident record, showing the secondary endpoint, secondary location, and status. Storage diagnostics and application logs were correlated to prove that legal users read from the secondary endpoint during the incident window without expanding their normal permissions.

Results & Business Impact
  • Legal search access was restored in 25 minutes without granting account keys.
  • Zero write attempts reached the secondary workflow because the tool removed mutation actions.
  • Audit review accepted CLI and diagnostic evidence from the incident record.
  • The team avoided a full account failover while engineers assessed primary-region impact.
Key Takeaway for Glossary Readers

The secondary endpoint can reduce pressure during incidents when access is limited to safe, read-only business workflows.

Why use Azure CLI for this?

After ten years of Azure operations, I trust CLI for secondary endpoint work because failover readiness needs evidence, not screenshots. The portal can show endpoints, but CLI lets you inventory every account, capture secondary location, compare SKU and redundancy, and export the exact endpoint values used by runbooks. It also helps validate private endpoint subresources, firewall settings, and automation drift across subscriptions. For a disaster-recovery review, I want commands that produce repeatable JSON and fail loudly when the account is not RA-GRS or RA-GZRS. That is how you separate real recovery capability from a checkbox someone enabled years ago. It is practical operational insurance.

CLI use cases

  • List all RA-GRS and RA-GZRS accounts in a subscription and export their secondary endpoint values for disaster recovery evidence.
  • Inspect secondaryLocation, statusOfSecondary, sku.name, and secondaryEndpoints before adding an application fallback path.
  • Validate that private endpoint connections exist for the secondary storage subresource when private networking is required.
  • Run a controlled read test against the secondary Blob endpoint using approved credentials or a short-lived SAS token.
  • Compare production and nonproduction endpoint configuration to catch missing secondary DNS or firewall settings before rehearsal.

Before you run CLI

  • Confirm you are in the correct tenant and subscription because storage account names are global and secondary endpoint changes can affect production recovery paths.
  • Use a role with read access to the storage account, plus network or Private Link permissions if you inspect private endpoints.
  • Check whether the account uses RA-GRS or RA-GZRS; locally redundant and standard geo-redundant accounts may not expose read-access endpoints.
  • Avoid printing SAS tokens or keys while testing secondary reads; prefer JSON queries that show endpoints without exposing credentials.
  • Know the paired region and business staleness tolerance before using secondary data in reports, exports, or customer-facing workflows.

What output tells you

  • The secondaryEndpoints object shows the service-specific URLs that clients can use when the redundancy setting supports secondary read access.
  • The sku.name and secondaryLocation fields tell you whether the account is configured for read-access redundancy and where the replica resides.
  • The statusOfSecondary value indicates whether the secondary location is currently available, unavailable, or not applicable for the account.
  • Private endpoint output shows whether secondary subresources have dedicated network paths instead of relying only on primary endpoint connectivity.
  • Denied request logs or failed read tests usually point to firewall, identity, DNS, SAS scope, or unsupported redundancy rather than missing storage data.

Mapped Azure CLI commands

Storage account secondary endpoint CLI commands

direct
az storage account show --name <account-name> --resource-group <resource-group> --query "secondaryEndpoints"
az storage accountdiscoverStorage
az storage account show --name <account-name> --resource-group <resource-group> --query "{sku:sku.name,secondaryLocation:secondaryLocation,statusOfSecondary:statusOfSecondary}"
az storage accountdiscoverStorage
az storage account show --name <account-name> --resource-group <resource-group> --query "primaryEndpoints"
az storage accountdiscoverStorage
az network private-endpoint-connection list --resource-group <resource-group> --name <account-name> --type Microsoft.Storage/storageAccounts
az network private-endpoint-connectiondiscoverStorage
az storage blob list --account-name <account-name> --container-name <container> --blob-endpoint https://<account-name>-secondary.blob.core.windows.net --auth-mode login
az storage blobdiscoverStorage

Architecture context

Architecturally, a secondary endpoint belongs in the read-continuity layer of a storage design. It is not a second writable region, and it does not replace account failover planning. I use it when a workload can survive on eventually consistent reads, such as serving cached documents, loading product media, checking exported reports, or proving that backup data is reachable outside the primary region. The design has to include endpoint discovery, authentication, network rules, private DNS, and client retry behavior. For private storage, the secondary endpoint may need its own Private Link path and DNS records. The architecture decision is less about the URL itself and more about whether the application has a tested, safe way to use it.

Security

Security impact is direct because the secondary endpoint is another reachable data-plane address for the same replicated data. Authorization still depends on the account configuration, Azure AD, SAS, shared keys, network rules, and private endpoints, but a forgotten secondary path can weaken a carefully locked-down primary path. Teams should confirm that firewall rules, public network access, Private Link, DNS, and logging cover secondary reads. SAS tokens and shared keys that work against the account may also work against the secondary endpoint, so token scope and expiry need review. Compliance evidence should show that secondary access follows the same controls as primary access.

Cost

The secondary endpoint does not create a separate line item by itself, but it exists because the account uses a more expensive redundancy option. RA-GRS and RA-GZRS cost more than locally redundant designs, and secondary reads can add transaction and data-transfer charges depending on workload behavior. The larger cost risk is paying for read-access redundancy without building any tested recovery path. FinOps reviews should identify which accounts expose secondary endpoints, which applications actually use them, and whether the business needs read continuity. Extra private endpoints, DNS zones, testing traffic, monitoring, and runbook maintenance also add operational cost that should be owned.

Reliability

Reliability impact is high when the workload depends on regional continuity. A secondary endpoint gives read access before account failover only for read-access geo-redundant configurations, and replicated data can lag behind the primary. That means it helps reports, backups, restore checks, and static reads, but it does not solve write availability or strict consistency. Operators should test secondary endpoint reachability before an incident, monitor replication status, document staleness expectations, and rehearse application routing. Private endpoint and DNS mistakes can make the secondary unreachable even when replication is healthy. Reliability comes from testing the whole access path, not from enabling redundancy alone.

Performance

Performance impact depends on client location, routing, replication lag, and whether the read workload is designed for secondary access. A secondary endpoint can reduce pressure on the primary during degraded operations or provide regional read access closer to some users, but it can also return stale data. Applications should avoid mixing primary writes with immediate secondary reads unless they understand eventual consistency. Private endpoint routing, DNS resolution, and client retry settings can introduce latency surprises. Operators should test request latency, authorization failures, and throughput separately from the primary endpoint, because a healthy primary path tells you little about secondary read performance.

Operations

Operators manage secondary endpoints by inspecting account properties, validating redundancy, checking secondary location, and confirming that application runbooks know the exact endpoint names. Useful operational work includes exporting endpoints for all RA-GRS and RA-GZRS accounts, verifying private endpoint subresources, testing read-only access with approved credentials, and checking diagnostics for denied requests. Change records should note whether clients are allowed to switch automatically or only during an incident command decision. Operators also need rollback guidance, because returning clients to the primary endpoint after recovery can expose stale cache, DNS, or connection pooling behavior. Evidence should be repeatable and subscription-wide. Keep the evidence current.

Common mistakes

  • Assuming every geo-redundant account has a readable secondary endpoint, even though read access requires RA-GRS or RA-GZRS.
  • Testing only the primary endpoint and discovering during an incident that DNS, firewall, or Private Link blocks the secondary path.
  • Treating secondary reads as strongly consistent and using them immediately after primary writes in transactional workflows.
  • Creating a runbook that switches URLs but forgets authentication, SAS scope, CORS, or client retry behavior.
  • Paying for read-access redundancy on accounts that no application or recovery process is allowed to use.