Cloud Security

Azure Databricks and Data Factory: use cases and the security controls that matter

Saleem Yousaf 14 July 2026 ~16 min read

The data platform is where an organisation's most sensitive information is concentrated, and it is often the least-secured part of the Azure estate.

Azure Data Factory and Azure Databricks move and process that data at scale. They hold credentials to every source system, and they run code against the data itself. That combination is why the security model is not the same as a typical application, and why the getting-started defaults are the wrong place to leave it.

The mismatch: teams secure the application tier carefully, then wire up a data platform that holds the keys to every source, runs arbitrary notebooks against the crown jewels, and ships with defaults built for a quick proof of concept rather than production. The app was hard to breach. The data platform behind it was not.

What each one does, quickly

Two tools, two jobs, usually working together.

Azure Data Factory is the mover and scheduler. Pipelines, activities, and triggers move and transform data between systems. Integration runtimes do the actual work: the Azure runtime for cloud-to-cloud, the self-hosted runtime for on-premises and private sources, and the SSIS runtime for lift and shift. Linked services hold the connection details to every source and sink it touches.

Azure Databricks is the processor. Apache Spark, notebooks, jobs, SQL warehouses, and machine learning, with Delta Lake for storage and Unity Catalog as the governance layer. It is where the heavy transformation and analytics happen.

A common pattern uses both: Data Factory lands raw data and handles scheduling, and Databricks runs the transformation through the medallion layers, bronze to silver to gold, before the data is served to a warehouse or to business intelligence.

Sources on-prem, SaaS, DB Data Factory move + schedule managed VNet + Key Vault Data lake ADLS Gen2 bronze/silver/gold private endpoint + firewall Databricks transform + ML no public IP + Unity Catalog Serving Power BI, SQL
A typical flow, with the control that matters most at each stage noted underneath. Click to enlarge.

The use cases

The reason this pairing shows up everywhere:

Every one of these concentrates access. That is the whole security story, so it is worth being explicit about why.

Why the security model is different

The controls that matter

Grouped by domain, because that is how you assign and review them.

Identity and access

Secrets

Network

Data protection

Compute hardening

Monitoring and audit

Monitoring and audit verbose audit logs · system tables · SAT · Sentinel Network Private Link · VNet injection · NCC · no public IP Compute policies · governed init scripts · standard access mode Identity and secrets Unity Catalog · managed identities · Key Vault Your data customer-managed keys · column masks · row filters
Defense in depth for the data platform. Each layer assumes the one outside it can fail. Click to enlarge.

The gotchas that cause the incidents

Best practices, in short

  1. No keys or passwords. Managed identities and service principals everywhere, least privileged.
  2. Unity Catalog as the single governance layer, account-level SCIM, grants to groups, standard access mode.
  3. Every secret in Key Vault, referenced, never inline.
  4. Private by default: VNet injection or network connectivity configurations, secure cluster connectivity, private endpoints, storage firewall on, public access off.
  5. Compute policies to enforce the safe configuration, with governed init scripts and libraries.
  6. Customer-managed keys and column-level controls where the data demands it.
  7. Verbose audit logging, system tables, and the Security Analysis Tool, watched rather than just switched on.
  8. Separate workspaces and factories for production and non-production, and isolate the most sensitive workloads.

The part to take away

A data platform concentrates access to everything an organisation knows, and it runs code against it. That combination is why it deserves top-tier security treatment rather than the getting-started defaults. Govern it centrally with Unity Catalog and Key Vault, put it behind Private Link, assume the compute runs untrusted code, and watch the audit trail.

The controls are all there in the platform. The failure, almost every time, is that the defaults were never changed. If you want two questions to start with: where are your credentials stored, and can your compute reach the public internet. The answers tell you most of what you need to know about how exposed your data platform really is.