Data Localization Suite — Full Curriculum

Personal study reference, not customer-facing. DLS is a compliance tool, not a performance feature — it exists purely to answer "where exactly does my data get processed, stored, and decrypted," and every answer below is sourced from live Cloudflare docs (full list at the bottom).

Module 1Fundamentals — the three components

Data Localization Suite (DLS) is an Enterprise-only paid add-on made of three independently licensed, independently configured components. Most customers only need one, depending on exactly what their compliance requirement is actually about.

If the requirement is about......use this componentControls where...
Where HTTPS traffic gets decrypted/inspectedRegional Servicesyour live traffic is processed
Where request logs and analytics are storedCustomer Metadata Boundaryyour logs are stored
Where your private TLS/SSL keys are storedGeo Key Manageryour certificate private key lives

Set expectations correctly up front: this is a compliance tool, not a speed booster. Deliberately restricting where traffic can be processed means it's sometimes NOT routed to the geographically closest data center — only the closest in-region one. Some latency cost is the expected trade, not a bug. It's also genuinely expensive and Enterprise-only — not something a small business buys without a specific legal or contractual reason (GDPR, government contracts, banking, healthcare, or a client contract mandating data residency).

Module 2Regional Services, in full

Controls which Cloudflare data centers are allowed to decrypt and process your HTTPS traffic. Traffic is still accepted anywhere worldwide for basic network-layer DDoS protection, but if it arrives outside your region, it's forwarded still encrypted and only decrypted once it reaches an in-region data center. Everything that needs to read decrypted traffic — WAF, Bot Management, Cache, Workers, Load Balancing — only runs inside that region.

Naming history — important if you hear "RSv1" or "RSv2"

These three options used to be labeled with version numbers. Cloudflare has moved away from that naming because it wrongly implied each one supersedes the last — in reality each is a distinct approach with its own tradeoffs, and the right one depends entirely on how your traffic reaches Cloudflare.

Current namePreviously known as
Regional HostnamesRegional Services v2 (RSv2)
Regionalized Spectrum ApplicationsRegional Services v1 (RSv1)
Regionalized IP BindingsRegional Services for BYOIP / regionalized address maps

The three configuration methods, compared

MethodTraffic addressed byGranularityStatic IP/BYOIPBest for
Regional HostnamesCloudflare shared IPsPer hostnameNot supportedMost deployments — the default choice
Regionalized Spectrum ApplicationsDedicated IP via Spectrum appPer zone (all Spectrum HTTP/S apps share one region)SupportedIP-addressed traffic needing Static IPs or BYOIP
Regionalized IP BindingsBYOIP prefix at the IP layerPer CIDR — scales to whole prefixesBYOIP onlyBroad, fully self-serve regionalization via address maps

All three require the base Regional Services entitlement from your account team. Spectrum Applications additionally need the Spectrum entitlement; IP Bindings additionally need the Regional Services for BYOIP entitlement. None of this is self-serve out of the box for Hostnames or Spectrum — only IP Bindings becomes fully self-serve via API once entitlements are enabled.

Configure Regional Hostnames (the common path)

  1. Go to DNS → Records for the zone you want to regionalize.
  2. Create or edit the DNS record for the hostname.
  3. From the Region dropdown on that record, select the region — this applies to every DNS record sharing that hostname.

Verify it's actually working — the CF-RAY trick

Every Cloudflare HTTP response's CF-RAY header ends with a 3-letter IATA airport code identifying the data center that terminated TLS. This is a fast, concrete way to prove regionalization is actually working, not just configured:

curl --head https://www.example.com 2>&1 | grep -i cf-ray
// cf-ray: 80cc9e64fd8a1519-MUC
// MUC = Munich -> confirms this request was processed inside the EU

A request sent from outside the configured region still returns an in-region airport code, because out-of-region traffic gets forwarded to the region for processing — that's the whole point. You can also check the IngressColoName field in Zero Trust Network Session logs for the same confirmation.

A real operational gotcha with IP Bindings: creating or changing a binding can take 4-6 hours to propagate across Cloudflare's network. If the IP addresses are already carrying live traffic when you do this, clients get TCP resets during propagation. Always bind unused addresses and wait for the binding to show active before pointing production traffic at them. Separately: Spectrum regionalization has its own quota — by default, an account is limited to 10 unique Spectrum hostnames using Cloudflare-managed IPv4 addresses, account-wide, not per zone.

Failover — the SLA exception that matters most

Regionalizing to a single-country region other than the US removes Cloudflare's standard automatic failover for that traffic, since it literally can't fail over to data centers outside that one country — confirmed as an explicit SLA exclusion. Multi-country regions (like the European Union) keep the standard SLA and failover behavior. If a customer wants strict data residency AND full failover resilience, that tension needs to be named explicitly — they usually can't have the strictest possible single-country residency without giving up some failover guarantee.

Module 3Customer Metadata Boundary

Controls where your logs live — not live traffic. A simpler, account-wide setting: choose EU or US as the boundary; by default, no boundary applies and logs can be stored anywhere globally.

Configure it

  1. Dashboard: Settings → Configurations
  2. Under Customer Metadata Boundary, select eu, us, or Global (removes any boundary — the default)

Scope limitation to lead with: CMB applies at the account level only, never per-zone. If a customer wants it on some zones but not others, those zones need to move to a separate account first — there's no partial application within one account. Only SuperAdmin and Admin roles can change this setting.

The "no data" support ticket this setting causes

Once a boundary is set, dashboard analytics/log views are only visible to users whose sessions happen to route to the configured region's core data center — this is based on network routing, not the user's physical location, so someone can see "no data" unexpectedly even sitting right next to a colleague who can see it fine. Fix: enable Allow out-of-region access, which keeps the actual data stored in-region but lets authorized users view it regardless of where their own session happens to route. This single setting resolves a large share of "CMB is broken" tickets that are actually working as designed.

FedRAMP customers specifically set CMB to the United States boundary. Logpull (legacy) is only available when CMB = US; Logpush is the recommended path and supports a defined set of datasets under a CMB boundary — anything outside that list needs your account team.

Module 4Geo Key Manager

Controls where your TLS private keys are stored. By default, keys are encrypted and distributed to every Cloudflare data center for fast local decryption — Geo Key Manager restricts that distribution to specific countries or regions.

Hard limitation to state up front: Geo Key Manager only works with custom (uploaded) certificates — never Cloudflare-managed Universal SSL certificates. The newer version (v2) is configured entirely through the API; there is no v2 dashboard option today.

v1 (dashboard-available)v2 (API-only, Closed Beta)
RegionsUS, EU, or Highest-security data centers only — a fixed choiceConfigurable allow/block lists of specific countries/regions
Example policy"EU data centers only""Store in EU and US" or "store in EU but never France"
SetupStandard custom-cert upload, pick a Private Key Restriction optionSame upload flow via API, with a policy parameter instead of the older geo_restrictions parameter (mutually exclusive — pick one)

The latency mechanic worth knowing

If a data center near your visitor doesn't hold a copy of your private key, it has to request a temporary session key from a data center that does before it can decrypt traffic — adding up to roughly a second of latency on the first connection if the key-holding data center is far away. This is the direct cost of restricting key distribution, same spirit as Regional Services' latency trade.

Module 5Supported regions

Not every region is available for every component — and regions come in two fundamentally different flavors.

Managed vs. Custom regions (Regional Services only)

TypeWhat it isAvailable for
ManagedPredefined regions Cloudflare maintains (e.g. eu, us) — available to all accounts, some requiring specific entitlementsAll three Regional Services methods
CustomBespoke region restricting processing to a specific data center set, set up with your account team, for when managed regions don't meet the requirementRegionalized Spectrum Applications and IP Bindings only — not Regional Hostnames

Compliance-framework regions, not just geography

Region support, by component

Regional Services supports by far the widest range — individual countries, every compliance framework above, and "exclusive of" regions. Customer Metadata Boundary is limited to just US or EU (countries within the EU can use the EU boundary; FedRAMP uses the US boundary). Geo Key Manager's list depends entirely on v1 (US/EU/High-Security only) vs. the v2 Closed Beta (broader country list).

Module 6Interactions with other Cloudflare products

Cloudflare Tunnel — a frequent point of confusion

The --region parameter in cloudflared controls where the tunnel connector establishes its own connection to Cloudflare — this is completely separate from Regional Services, which controls where end-user traffic is decrypted and processed. For public hostnames served through a tunnel, Regional Services is configured at the DNS record level, same as any other hostname — the tunnel connector region and the Regional Services region operate independently of each other. Don't conflate the two when a customer asks about tunnel + data residency together.

Access

To ensure all reverse-proxy requests for Access-protected applications only occur in FedRAMP-compliant data centers, use Regional Services (Regional Hostnames) with the region set to FedRAMP. Note: Access App SSL keys can use Geo Key Manager, but the Access JWT itself is not yet localized — a real gap to flag if asked specifically about JWT data residency.

Zero Trust / Gateway logs

By default, Cloudflare stores and delivers logs from data centers across the whole network. CMB restricts this the same way it does for any other logs. Customers can further reduce what's logged at all — excluding PII from Gateway logs, or disabling/limiting logging to only blocked requests — independent of CMB.

Module 7Decision framework

Customer says...They need...
"Our regulator requires traffic to be decrypted only within [country/region]"Regional Services
"Our logs/analytics can't leave the EU"Customer Metadata Boundary
"Our private key can never touch a data center outside [US/EU]"Geo Key Manager
"We need all three because of a broad data-sovereignty mandate"All three, independently licensed and configured — there's no bundled "turn it all on" switch
"We're a FedRAMP customer"Regional Services (FedRAMP region) + CMB set to US + Geo Key Manager scoped to US FedRAMP Moderate Domestic

Always name the latency/failover trade-off explicitly when recommending Regional Services for a single-country (non-US) region — it's a real, documented SLA exclusion, not a minor footnote.

Module 8Rapid-fire Q&A

"If we turn on Regional Services, does ALL our traffic get processed in-region, even from visitors on the other side of the world?"

Yes — out-of-region traffic is forwarded to your configured region still encrypted and only decrypted there. Basic network-layer DDoS protection still happens at whichever data center first receives the packet, but anything requiring decrypted traffic (WAF, Bot Management, Workers, etc.) only runs in-region.

"One of our admins can't see our EU-boundary logs from the US office — is something broken?"

Almost certainly not broken — this is the expected behavior of Customer Metadata Boundary without "Allow out-of-region access" enabled. Visibility depends on which region their session happens to route to, not their physical location. Enable that setting to let authorized users view in-region data from anywhere.

"Can we apply Customer Metadata Boundary to just our EU zones and leave the rest global?"

Not within one account — CMB is account-level only. The EU zones would need to move into a separate Cloudflare account first.

"We want our TLS key locked to France specifically, not just the EU generally."

That needs Geo Key Manager v2 (API-only, Closed Beta) — v1 only offers fixed US/EU/Highest-security options, no individual-country granularity.

"How do we prove to an auditor that traffic is actually staying in-region, not just configured to?"

Pull the CF-RAY header from a real response and decode the trailing airport code, or check IngressColoName in Zero Trust Network Session logs — both show the actual data center that handled the request, which is concrete, auditable evidence rather than a configuration screenshot.

Self-testQuiz

Click a question to reveal the answer. No peeking before you commit to one.

1. A customer needs their request logs stored only in the EU, but has no requirement about where live traffic is decrypted. Which DLS component do they need?

Customer Metadata Boundary only — Regional Services controls live traffic decryption location, which isn't their requirement here. No need to buy/configure all three components just because one is needed.

2. True or false: "Regional Services v2" is the current official name for regionalizing proxied hostnames.

False — that's the old name. The current name is Regional Hostnames. Cloudflare moved away from version-number naming because it wrongly implied one option supersedes another.

3. A customer wants to regionalize traffic that's addressed by IP rather than hostname, using their own BYOIP prefix broadly across many addresses. Which method?

Regionalized IP Bindings — scales to whole CIDR prefixes and is fully self-serve via API once entitlements are enabled, unlike the other two methods.

4. What's the real risk of creating a Regionalized IP Binding on an address that's already carrying live traffic?

Propagation takes 4-6 hours, and if the IP is already in use during that window, clients receive TCP resets. Always bind unused addresses and wait for "active" status before pointing production traffic at them.

5. A customer regionalizes to a single non-US country. What SLA exception applies?

Automatic failover is excluded for that traffic — it can't fail over to data centers outside that one country. Multi-country regions (like the EU) keep the standard SLA and failover behavior.

6. An admin in the US says they can't see log data stored under an EU Customer Metadata Boundary. Is this necessarily a misconfiguration?

No — this is expected default behavior. Visibility depends on which region the admin's session happens to route to (network routing, not physical location). Enable "Allow out-of-region access" to fix it while keeping data stored in-region.

7. Can Customer Metadata Boundary be applied to just some zones in an account?

No — CMB is account-level only. Zones needing a different boundary (or no boundary) must be moved to a separate Cloudflare account.

8. What's the hard limitation on Geo Key Manager that applies regardless of v1 or v2?

It only works with custom (uploaded) certificates — never Cloudflare-managed Universal SSL certificates.

9. A customer wants their TLS key stored in the EU and US, but explicitly never in France. Which Geo Key Manager version supports this?

v2 (API-only, Closed Beta) — it supports configurable allow/block lists of specific countries. v1 only offers fixed US/EU/Highest-security options with no individual-country exclusion.

10. True or false: "Cloudflare Green Energy" is a geographic region.

False — it's an energy-sourcing constraint (restricts to renewable-powered data centers), not a geographic restriction at all.

11. What does an "Exclusive of Russia and Belarus" region actually do?

The opposite of a normal restriction — it allows any data center worldwide except those two countries, rather than restricting processing to a specific set.

12. Does setting a Cloudflare Tunnel's --region parameter also regionalize the end-user traffic served through it?

No — cloudflared --region only controls where the tunnel connector itself connects to Cloudflare. End-user traffic regionalization for a public hostname through a tunnel is configured separately via Regional Services at the DNS record level. The two operate independently.

13. Can Custom (non-managed) regions be used with Regional Hostnames?

No — Custom regions are only available for Regionalized Spectrum Applications and Regionalized IP Bindings, not Regional Hostnames.

14. How would you prove to an auditor that traffic actually stayed in-region, not just that it was configured to?

Pull the CF-RAY header from a real response and decode its trailing 3-letter IATA airport code (or check IngressColoName in Zero Trust Network Session logs) — both show the real data center that handled the request, concrete auditable evidence rather than a dashboard screenshot.

15. Is the Access JWT itself covered by Geo Key Manager localization?

No — Access App SSL keys can use Geo Key Manager, but the Access JWT itself is not yet localized. Worth flagging explicitly if a customer asks about JWT-specific data residency.

Sources Regional Services overview Regional Hostnames Regionalized Spectrum Applications Regionalized IP Bindings IP Bindings changelog Customer Metadata Boundary CMB — get started Geo Key Manager Geo Key Manager setup Region support — full list Compatibility matrix Data localization with Zero Trust