Required permissions for the workspace service account
The workspace service account requires permissions in the following IAM roles on the workspace project to operate and manage a workspace. These roles are automatically created by Databricks when you deploy your workspace.
-
Databricks Project Role v2: This role is required to operate and manage project-level resources such as instances, disks, cloud operations, and service accounts managed by Databricks. It is granted at the project level to the workspace service account.
-
Databricks Resource Role v2: This role is required to operate and manage Google Compute Engine (GCE) instances, storage disks, and other workspace-level resources managed by Databricks. This role is granted at the project level to the workspace service account. The workspace-level scoping is enforced using an IAM condition on the workspace ID. The following example uses
1234567890in place of an actual workspace ID:Bashresource.name.extract("{x}databricks”) != "" &&
resource.name.extract("{x}1234567890”) != "" -
Databricks Network Role v2: This role is required to use subnetwork resources under a customer-managed VPC network. The role must exist in the VPC project in the primary subnet of the customer-managed VPC.
If customer-managed keys are enabled for your workspace, Cloud KMS CryptoKey Decrypter and Cloud KMS CryptoKey Encrypter roles are required on the Cloud KMS Key resource.
Permissions for Databricks Project Role v2
Permission | Purpose | Use case |
|---|---|---|
| List disks | Manage Google Compute Engine (GCE) resources to run workloads |
| List cloud operations | Manage Google Compute Engine (GCE) resources to run workloads |
| List regional cloud operations | Manage Google Compute Engine (GCE) resources to run workloads |
| List zonal cloud operations | Manage Google Compute Engine (GCE) resources to run workloads |
| List GCE instances | Manage Google Compute Engine (GCE) resources to run workloads |
| List available zones | Manage Google Compute Engine (GCE) resources to run workloads |
| Get zone description | Manage Google Compute Engine (GCE) resources to run workloads |
| Get region description | Manage Google Compute Engine (GCE) resources to run workloads |
| List enabled services | Needed for Databricks to check that required services are enabled |
| Get quota details | Manage Google Compute Engine (GCE) resources to run workloads |
| List Databricks-managed GCS buckets | Manage Google Compute Engine (GCE) resources to run workloads |
| Get on-demand capacity recommendations | Get zone/machine type recommendations for on-demand instances based on available capacity in the region |
| Get spot capacity recommendations | Get zone/machine type recommendations for spot instances based on available capacity in the region |
| Get details of a GCE reservation | Get details of a GCE reservation for use in zone/machine type selection |
| List all GCE reservations | List details of all GCE reservations for use in zone/machine type selection |
Following permissions are retained for compatibility with legacy permissions. They can be removed or modified as applicable
Permission | Purpose | Use case |
|---|---|---|
| Impersonate service account | Required for clusters to use Google Service Account. Can be removed if GSA is not used or can be granted only on specific service accounts used by your Databricks clusters. |
| Impersonate service account | Required for clusters to use Google Service Account. Can be removed if GSA is not used or can be granted only on specific service accounts used by your Databricks clusters. |
| Impersonate service account | Required for clusters to use Google Service Account. Can be removed if GSA is not used or can be granted only on specific service accounts used by your Databricks clusters. |
Permissions for Databricks Resource Role v2
Permission | Purpose | Use case |
|---|---|---|
| Create Databricks-managed disks | Manage Google Compute Engine (GCE) resources to run workloads |
| Delete Databricks-managed disks | Manage Google Compute Engine (GCE) resources to run workloads |
| Get Databricks-managed disk info | Manage Google Compute Engine (GCE) resources to run workloads |
| Resize Databricks-managed disks | Manage Google Compute Engine (GCE) resources to run workloads |
| Set Labels on Databricks-managed disks | Manage Google Compute Engine (GCE) resources to run workloads |
| Update Databricks-managed disks | Manage Google Compute Engine (GCE) resources to run workloads |
| Attach Databricks-managed disks to a VM | Manage Google Compute Engine (GCE) resources to run workloads |
| Attach Databricks-managed disks to a VM in read-only mode | Manage Google Compute Engine (GCE) resources to run workloads |
| Create Databricks-managed instances | Manage Google Compute Engine (GCE) resources to run workloads |
| Delete Databricks-managed instances | Manage Google Compute Engine (GCE) resources to run workloads |
| Attach a disk to a Databricks-managed instance | Manage Google Compute Engine (GCE) resources to run workloads |
| Detach a disk from a Databricks-managed instance | Manage Google Compute Engine (GCE) resources to run workloads |
| Get instance details | Manage Google Compute Engine (GCE) resources to run workloads |
| Get instance guest attributes | Manage Google Compute Engine (GCE) resources to run workloads |
| Get instance serial port logs | Debug failed Google Compute Engine (GCE) resources |
| Set labels on an instance | Manage Google Compute Engine (GCE) resources to run workloads |
| Set tags on an instance | Manage Google Compute Engine (GCE) resources to run workloads |
| Update an instance | Manage Google Compute Engine (GCE) resources to run workloads |
| Set metadata on an instance | Manage Google Compute Engine (GCE) resources to run workloads |
| Set service account on an instance | Manage Google Compute Engine (GCE) resources to run workloads |
| Cancel a multipart upload to Databricks-managed GCS bucket | Manage Google Cloud Storage (GCS) upload sessions when uploading large files |
| Create a multipart upload to Databricks-managed GCS bucket | Manage Google Cloud Storage (GCS) upload sessions when uploading large files |
| List multipart uploads to Databricks-managed GCS bucket | Manage Google Cloud Storage (GCS) upload sessions when uploading large files |
| List parts uploaded for a specific multipart upload to a Databricks-managed GCS bucket | Manage Google Cloud Storage (GCS) upload sessions when uploading large files |
| Create a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Delete a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Get details of a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Get IAM policy of a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Set IAM policy of a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Update a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Create a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Delete a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Get details for a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| List objects in a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
| Update objects in a Databricks-managed GCS bucket | Manage Google Compute Engine (GCE) resources to run workloads |
Additional permissions for workspaces on Databricks-managed VPC network
The following permissions are also required for workspaces that use Databricks-managed VPC network:
Permission | Purpose | Use case |
|---|---|---|
| Launch VMs in the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Get details of the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Launch VMs in the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Launch VMs in the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Get details of the Databricks-managed router | Manage Google Compute Engine (GCE) resources to run workloads |
| Get details of the Databricks-managed subnet | Manage Google Compute Engine (GCE) resources to run workloads |
| Launch VMs in the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Launch VMs in the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Get IAM policy for Databricks-managed subnet | Manage Google Compute Engine (GCE) resources to run workloads |
| Launch VMs in the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Create the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Delete the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Update the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Update the Databricks-managed VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Create the Databricks-managed subnet | Manage Google Compute Engine (GCE) resources to run workloads |
| Delete the Databricks-managed subnet | Manage Google Compute Engine (GCE) resources to run workloads |
| Expand CIDR range on the Databricks-managed subnet | Manage Google Compute Engine (GCE) resources to run workloads |
| Set IAM policy on the Databricks-managed subnet | Manage Google Compute Engine (GCE) resources to run workloads |
| Configure Private Google API Access on the Databricks-managed subnet | Manage Google Compute Engine (GCE) resources to run workloads |
| Update the Databricks-managed subnet | Manage Google Compute Engine (GCE) resources to run workloads |
| Create the Databricks-managed router | Manage Google Compute Engine (GCE) resources to run workloads |
| Delete the Databricks-managed router | Manage Google Compute Engine (GCE) resources to run workloads |
| Update the Databricks-managed router | Manage Google Compute Engine (GCE) resources to run workloads |
| Create the ingress firewall rule to allow Databricks VMs to communicate | Manage Google Compute Engine (GCE) resources to run workloads |
| Delete the ingress firewall rule on workspace teardown in order to clean up the VPC | Manage Google Compute Engine (GCE) resources to run workloads |
| Get the ingress firewall rule details | Manage Google Compute Engine (GCE) resources to run workloads |
| Update ingress firewall rule details | Manage Google Compute Engine (GCE) resources to run workloads |
Permissions for Databricks Network Role v2
Permission | Purpose | Use case |
|---|---|---|
| Use the subnet in the customer managed network | Manage Google Compute Engine (GCE) resources to run workloads |
| Get the info of the subnet in the customer-managed network | Manage Google Compute Engine (GCE) resources to run workloads |
Legacy permissions
In the legacy GKE deployment model, the workspace service account required permissions in the following IAM roles on the workspace project to operate and manage a workspace:
- GKE Admin Role: Required to operate and manage customer workloads running on GKE.
- GCE Storage Admin Role: Required to operate and manage Google Compute Engine (GCE) persistent storages associated with GKE nodes.
- Databricks Workspace Role: Required to grant additional permissions needed to manage a workspace.