As a Databricks environment grows, letting anyone spin up any cluster they want becomes a real risk — both for cost control and operational quality. A Cluster Policy lets administrators define and restrict the parameters available at cluster creation time. You can govern instance types, node counts, autoscaling ranges, and tags while keeping the flexibility users actually need.
This article walks through how Cluster Policies work, how to write a definition, the three practical angles of cost control, permissions, and standardization, and the points that show up on the Databricks certification exams.
A Cluster Policy is a JSON-defined template of cluster settings. A workspace admin creates the policy and assigns it to users or groups — "use this policy to create your clusters." Users can only configure clusters within the bounds the policy allows; anything out of range is greyed out in the UI or returns an error from the API.
Here are the main parameters a Cluster Policy can control:
| Target | Example Constraint | Effect |
|---|---|---|
| Instance type | allowlist restricts to specific types | Prevents unauthorized use of expensive GPU/large instances |
| Worker node count | maxValue sets the upper bound | Hard ceiling on cost |
| Autoscaling | fixed value forces enable/disable | Prevents clusters from always launching at max nodes |
| Databricks Runtime | Allow only specific versions | Removes environment drift; standardizes on LTS |
| Custom tags | Make specific tags required | Cost allocation (department-level chargeback) |
| Spot instances | Enforce spot/on-demand ratio | Balance cost savings vs. stability |
| Instance Pool | Force use of a specific Pool | Faster startup plus governed instance management |
A Policy definition is JSON. For each parameter, you specify the type of constraint (fixed / range / allowlist / regex, etc.). Here is a skeleton of a pattern commonly used in production:
{
"spark_version": {
"type": "regex",
"pattern": "14\\.3\\.x-scala.*",
"defaultValue": "14.3.x-scala2.12"
},
"node_type_id": {
"type": "allowlist",
"values": ["i3.xlarge", "i3.2xlarge", "m5.xlarge"],
"defaultValue": "i3.xlarge"
},
"num_workers": {
"type": "range",
"minValue": 1,
"maxValue": 8,
"defaultValue": 2
},
"autoscale.min_workers": {
"type": "range",
"minValue": 1,
"maxValue": 4
},
"autoscale.max_workers": {
"type": "range",
"minValue": 2,
"maxValue": 8
},
"custom_tags.CostCenter": {
"type": "fixed",
"value": "engineering"
},
"autotermination_minutes": {
"type": "range",
"minValue": 10,
"maxValue": 120,
"defaultValue": 30
}
}This definition restricts Runtime to the 14.3.x line, limits node types to 3 choices, allows 1-8 workers, auto-termination of 10-120 minutes (default 30), and pins the CostCenter tag to "engineering". Users can configure clusters anywhere inside that range.
The biggest motivation for adopting Cluster Policies is cost control. Once a team grows past about 10 people, accidents like "someone spun up a huge cluster and left it running" or "a GPU instance was used for a quick test and never terminated" become much more common.
Three Policy settings have the biggest impact on cost control:
Combining these lets you enforce constraints like "max 8 nodes, auto-terminate after 30 minutes, no GPUs" at the Policy level, structurally eliminating the risk of users leaving giant clusters running.
Creating a Policy on its own does nothing — you have to assign it to users or groups so they know "which Policy they can use." Assignment goes through Databricks access control (ACLs).
In practice you assign role-based Policies — "a cost-limited Policy for the dev group," "a GPU-enabled Policy for the ML team," "no limits for admins." Anyone with CAN_USE on the Unrestricted Policy can effectively create whatever they want, so you need to be very selective about who gets it.
Policies aren't just for cost — they also govern the environment. Encoding rules like "every team uses the same Runtime version," "always use LTS," "enable Photon," or "force specific Spark settings" into a Policy reduces problems like "it doesn't work because of environment drift" or "the bug doesn't reproduce because of a version mismatch."
Mandatory tagging also runs through Policies. Organizations that do cost allocation (chargeback) can require CostCenter or Project tags so they can accurately track "which team spent how much" after the fact. The real win is that Policy prevents untagged clusters from being created in the first place.
Cluster Policies apply to Job Clusters (used for job runs) as well as All-Purpose Clusters (interactive). When you specify a Policy in the job definition, the cluster the job launches follows that Policy's constraints.
In practice Job Clusters often have the larger cost impact (overnight batches running on a lot of nodes, for example), so it's common to define a separate Policy for jobs and split it like "production batches: max 16 nodes," "dev batches: max 4 nodes."
Databricks exams almost never ask you to write Policy JSON. Instead they test "which feature solves what problem" — questions like the following:
Exams love to put Instance Pool, Cluster Policy, and Permissions in the same answer set to trip you up — make sure you can clearly distinguish each one's purpose.
Data Engineer / Administration
問題 1
A 15-person data engineering team is freely creating clusters. Last month's DBU consumption hit 3x the budget. The admin wants to prevent this from happening again with minimal operational overhead. What is the best action?
正解: A
The cost blowout was caused by unlimited freedom in cluster configuration. A Cluster Policy that limits node count, auto-termination, and instance types structurally prevents a recurrence. Manual checks are too high-effort to sustain, Instance Pool speeds up startup but does not cap cost, and Unity Catalog governs data access — not cluster cost.
Is it a problem to let users freely create clusters without Cluster Policies?
Yes, in production. Without policies, users can spin up clusters with huge instance types or large node counts, leading to runaway costs and environmental drift. It may be acceptable in early-stage dev sandboxes, but once the team grows, introducing Cluster Policies is strongly recommended.
What is the difference between Cluster Policy and Instance Pool?
A Cluster Policy controls the rules for what kind of cluster a user can create (instance type, node count, tags, etc.). An Instance Pool pre-warms instances to speed up cluster startup. The two are complementary: pinning a specific Pool via Policy is a common best practice.
How are Cluster Policies tested on the Databricks exams?
They appear in Data Engineer Associate and Administration-related domains. The three common patterns are: which feature to use for cost control, what to use to restrict the parameters a user can change, and who Policies apply to (users/groups). Understanding the purpose and effect matters more than memorizing the JSON syntax.
Practice with certification-focused question sets
無料で問題を解いてみるNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
Databricks Certifications: All 7 Exams, Difficulty & Study Plan (2026)
Complete guide to all 7 Databricks certifications — Data Eng...
Databricks Exam Difficulty Ranking: All 7 Certs Compared (2026)
Every Databricks certification ranked by difficulty, with st...
Databricks Study Guide: Fastest Pass Route & Time Estimates (2026)
How to pass Databricks certifications efficiently. Official ...
Databricks Data Engineer Associate: Complete Guide (2026)
Domain-by-domain breakdown of the Databricks Certified Data ...
Databricks Data Engineer Professional: Complete Guide (2026)
Tactics for the Databricks Certified Data Engineer Professio...