Azure Databricks - Networking & Security - Simple Mode

Private Link, DNS & Topologies, Without the Memorizing

A plain-English version of Lesson 4. The goal is to understand the four moves that take Databricks from "backbone-private by default" to "fully private with no public-IP hop": put each path on a private IP (Private Link), make DNS point at it, place the endpoints in a reused hub, and force leftover egress through one inspected door. Private Link is a building retrofit, not a new building.
Azure-first How it works Customer talk-track No FQDN memorization

The One Mental Model

Think of your Databricks workspace like an office building you already own. It has three doors and is already reachable over the Microsoft backbone - but it still has a public phone number anyone can dial. Private Link is a retrofit of that building, not a new one.

Front-end PE

The line users dial in on (UI / BI / REST).

Back-end PE

The line the cluster room dials out on (to control plane).

Web-auth PE

The receptionist's line that confirms SSO callers. One per region.

Private DNS

The directory edit that reroutes the public number to the private line.

Transit hub VNet

One guarded lobby - front door, DNS, firewall - reused by every spoke.

Workspace spoke

The floor each workspace is injected into; holds the back-end PE.

Azure Firewall (DEP)

The customs officer on the single exit, with an FQDN guest list.

Public Network Access

The master switch you set to Disabled once all three paths are private.

Azure Databricks Private Link topology: front-end and web-auth PEs in a transit hub, back-end PE in the workspace spoke, egress through an Azure Firewall, ADLS over a private endpoint, DNS linked to both VNets
Read it as a story: three paths put on private IPs, DNS pointing at them, endpoints living in a reused hub, and leftover internet egress passing one inspected door.

Interactive diagrams live in each tab

Each tab below has its own clickable whiteboard: Three private extensions → Connection Types, Private DNS path → Private DNS, Exfiltration protection → Exfiltration Protection. Open a tab, then click a box to see what it does in plain English.

What matters for Databricks

Stage 2 traffic is already backbone-private. Private Link removes the public-IP hop on each path; DNS decides whether anyone lands on the private IP; hub-and-spoke decides where the endpoints live; and DEP forces leftover internet egress through one inspected, default-deny door. Flip Public Network Access = Disabled once all three paths are private.

Private Link Connection Types: Three Private Extensions

Start here (plain English)

Your workspace can normally be reached over the public internet. Private Link gives it a private address inside your own network instead - like adding a private side-entrance into a building you already own, so traffic never has to step out onto the public street. There are three of these side-entrances, one for each kind of traffic: users coming in, clusters dialing out, and the login check.

Simple version: Private Link lets a normally-public service be reached over a private IP inside your VNet. The concrete artefact is a Private Endpoint (PE) - a NIC with a private IP that maps to a target service.

Azure Databricks has three connection types, one per path:

Interactive: click the boxes

Click each box to see which path it privatizes and why.

Back-end (classic)Front-end (inbound)Web-auth
SecuresCluster -> control plane (SCC + REST)User/BI/REST -> workspaceSSO/OAuth login callback
groupIddatabricks_ui_apidatabricks_ui_apibrowser_authentication
Lives inWorkspace VNetTransit VNetTransit VNet (web-auth ws)
How many1 per workspace VNet1 per transit VNet1 per region / DNS zone
NSG modeNoAzureDatabricksRulesAllRules (hybrid)NoAzureDatabricksRules

Two facts to anchor on

Only two groupIds exist: databricks_ui_api (used by both front-end and back-end - the VNet you place it in decides the role) and browser_authentication (SSO only). And Private Link does not replace SCC - it removes the last public hop SCC left behind.

Customer explanation

"Your workspace ships with a public phone number. Private Link gives it unlisted internal extensions - one for users dialing in, one for clusters dialing out, and one for the SSO check. The public number stays printed until we flip Public Network Access to Disabled; then only the private lines work."

What breaks

Private DNS: The Switch That Makes Anyone Use the Private IP

Start here (plain English)

Building the private side-entrance isn't enough if everyone keeps walking to the public front door out of habit. DNS is the phone book that turns a name into an address - so to actually use the private door, you have to edit the phone book so the same workspace name points at the new private address.

DNS turns a name into an IP. By default the workspace name resolves to a public control-plane IP. Once you create a Private Endpoint, you must override DNS so the same name resolves to the private IP - otherwise traffic keeps going out the public door.

The override is a chain: the public zone hands out a CNAME to ….privatelink.azuredatabricks.net; your private zone holds the A record to the private IP. The zone name is fixed: privatelink.azuredatabricks.net.

Interactive: click the boxes

Click the boxes to see why a Private Endpoint also needs a DNS override.

Sub-resourceA-record namePoints to
databricks_ui_apiadb-<id>.<n> (host label only)Private IP of the workspace/back-end PE
browser_authentication<region>.pl-auth (e.g. westus.pl-auth)Private IP of the web-auth PE

Important idea

Private Link gives you the private IP; DNS is the switch that decides whether anyone lands on it. If a Private Link deployment "doesn't work," suspect the directory (DNS) before the phone line (the endpoint).

Customer explanation

"From a VM inside the VNet, nslookup of the workspace URL must return the private IP, with the public name shown as an alias. If you run your own DNS, you conditional-forward *.azuredatabricks.net, *.privatelink.azuredatabricks.net, and *.databricksapps.com to Azure's resolver 168.63.129.16."

What breaks

Transit / Hub-and-Spoke: Build the Private Front Door Once

Start here (plain English)

Picture an office tower with one guarded lobby. Everyone enters through that lobby - where security, the directory, and the switchboard live - and each team's floor wires back to it, never directly to each other. You build the shared front door, DNS, and firewall once in that lobby, then connect every workspace to it instead of rebuilding it floor by floor.

A hub-and-spoke network is a central hub VNet that every spoke peers to. Spokes route through the hub, where shared services live (firewall, DNS, gateways, shared private endpoints).

DimensionStandard (dedicated transit VNet)Simplified (combined PE host)
browser_authentication PEDedicated locked web-auth workspaceOn an existing workspace
Blast radius of deleting the hostLow - web-auth ws does nothing elseHigh - breaks SSO region-wide
Infra & costMore (extra VNet + workspace)Fewer resources
Recommended forProduction, multi-ws, regulatedNon-prod, single-ws-per-region, PoC

Common gotcha

VNet peering gives IP reachability only - not DNS. Peering is a hallway, not the directory. You still must link the privatelink.azuredatabricks.net zone to both VNets (or conditional-forward), or clusters and users resolve the public IP and Private Link silently does nothing.

Customer explanation

"The transit hub is the guarded lobby of an office tower - everyone enters through one reception desk where security, the directory, and the switchboard live. Each team's floor wires back to the lobby, never to each other. We build the private front door, DNS, and egress firewall once, then peer every workspace spoke to it."

Quick sizing note

Transit PE subnet /26-/25; web-auth workspace host+container /28 or /27 each; classic back-end PE subnet /27. Stop all compute before NSG / Private Link changes on an existing workspace (15+ minutes).

Data Exfiltration Protection (DEP): One Inspected Exit

Start here (plain English)

Think of an airport with exactly one exit and a customs officer. People move freely inside the terminal, but the only way out to the street is past the officer, who checks a short printed guest list and turns away anyone not on it. DEP does the same for your clusters: there is one inspected way out to the internet, and only a few approved destinations are allowed - so a compromised notebook can't quietly ship your data off to a random site.

DEP is the architecture pattern that makes data exfiltration almost impossible: put compute in a locked-down VNet, force every outbound packet through a single inspected chokepoint (an Azure Firewall in a central hub), and only allow a short, explicit FQDN allowlist out.

DEP is not one switch - it is the combination of VNet injection + SCC + back-end Private Link + a UDR (0.0.0.0/0 -> firewall) + an FQDN allowlist.

Interactive: click the boxes

Click the boxes - two paths bypass the firewall by design.

FlowPathTouches the firewall?
Control plane + SCCBack-end Private Link (private IP)No - bypasses by design
Internet-bound 0.0.0.0/0UDR -> Azure Firewall -> allowlist onlyYes
ADLS / your storagePrivate Endpoint or Service EndpointNo - per-GB would be ruinous
Everything elseFirewall default-denyYes - dropped

Two paths bypass the firewall by design

With back-end Private Link on, the docs say the AzureDatabricks service tag isn't required in the UDR - the control plane/SCC drop off the firewall entirely. ADLS uses a Private/Service Endpoint. So you pay to inspect a trickle of genuine internet egress, not your data. Always allowlist by FQDN / service tag, not raw IP (Azure rotates IPs); allowlist the SCC relay as tunnel.<region>.azuredatabricks.net.

Customer explanation

"DEP is an airport with one exit and a customs officer. People move freely inside the terminal, but the only way out to the street is past the officer, who checks a printed guest list - pypi, the artifact store, Entra ID - and turns away anyone not on it. Your control plane and data use private tunnels that never touch that public door."

Why it breaks - sequence matters

Attach the 0.0.0.0/0 -> firewall UDR before allowlisting / Private Link -> clusters can't reach the relay/artifacts and won't launch. Route SCC through the firewall -> latency + per-GB cost + fragile rules. Route table on only one subnet -> the un-routed subnet's egress escapes the firewall. Assume DEP covers serverless -> it doesn't (that's NCC + network policies, Stage 5).

Field Notes: How To Think During Troubleshooting

Don't start by memorizing ports or FQDNs. Start by asking: is the path private, does DNS point at it, and where does egress go?

SymptomFirst Thing To Think
Browser login spins/fails but REST worksIs web-auth missing, or does <region>.pl-auth not resolve to the private IP?
Cluster start fails Control Plane Request FailureIs the zone linked to the workspace VNet, and does the URL resolve privately from a cluster subnet?
Connectivity drops after enabling back-endWrong NSG mode - NoAzureDatabricksRules for back-end?
Region-wide login outageWas the web-auth host workspace deleted? Does WEB_AUTH_DO_NOT_DELETE_<region> still have a Delete lock?
Clusters won't launch after the UDR goes onUDR attached before allowlist/Private Link? Check firewall deny logs.
Egress "leaks" past the firewallIs the route table on both host and container subnets?
"Does this protect our serverless?"No - serverless egress is NCC + network policies, not DEP.
The architect one-liner
"Private Link puts every Databricks path - user-in, cluster-out, and the SSO callback - on a private IP inside your VNet, so we set Public Network Access to Disabled and answer 'nothing touches the internet.' DNS is the switch that moves traffic onto those private IPs. We build the private front door, DNS, and one inspected egress firewall once in a transit hub and reuse it fleet-wide; the control plane and your storage bypass the firewall, so you pay to inspect a trickle of internet egress, not your data - and web-auth is the shared region-wide piece we protect with a delete lock."

The eight questions

  1. Is each of the three paths on a private IP yet (front-end, back-end, web-auth)?
  2. Does DNS resolve the name to that private IP - including the pl-auth SSO name?
  3. Did we link the private DNS zone to every VNet that must resolve privately?
  4. Are endpoints placed correctly - front-end/web-auth in the transit hub, back-end in the spoke?
  5. Is the web-auth workspace locked so an accidental delete can't take down a region?
  6. Does internet egress pass one inspected firewall with an FQDN allowlist?
  7. Do the control plane and storage bypass that firewall on private paths?
  8. Is this classic compute (DEP applies) or serverless (NCC + network policies)?