Terraform管理下,SCIM同步AAD组分配Databricks管理员角色失败
解决Azure Databricks通过Terraform分配SCIM同步组为工作区管理员的报错问题
错误原因
databricks_permission_assignment资源仅适用于对象级权限分配(如集群、作业、笔记本、仓库等),无法用于分配全局工作区管理员角色。该资源的ADMIN权限是针对特定资源的,而非工作区全局权限,因此触发"Permission assignment APIs are not available for this workspace"错误。
Azure Databricks的工作区管理员角色分配分为两种模式:Azure RBAC集成模式(默认)和Databricks本地权限模式,不同模式对应不同的Terraform配置方式。
方案一:使用Azure RBAC分配工作区管理员(推荐,适用于Azure托管Databricks)
Azure Databricks默认与Azure RBAC集成,通过给AAD组分配Azure Databricks Workspace Admin角色,即可让组内成员自动获得Databricks工作区管理员权限,无需操作Databricks端的SCIM组权限。
配置代码:
# 获取目标AAD管理员组的ID(直接使用AAD组,而非SCIM同步后的Databricks组) data "azuread_group" "aad_admin_group" { display_name = "你的AAD管理员组名称" } # 分配Azure Databricks Workspace Admin角色 resource "azurerm_role_assignment" "databricks_workspace_admin" { scope = data.azurerm_databricks_workspace.adb_ws.id role_definition_name = "Azure Databricks Workspace Admin" principal_id = data.azuread_group.aad_admin_group.id }
方案二:使用Databricks本地权限配置(适用于禁用Azure RBAC的工作区)
如果你的Databricks工作区禁用了Azure RBAC集成,可通过databricks_workspace_conf资源直接配置工作区管理员组:
配置代码:
resource "databricks_workspace_conf" "admin_groups" { custom_config = { # 多个管理员组用英文逗号分隔 "workspace.admin.groups" = data.databricks_group.dbricks_admin_group.id } }
注意事项
- 使用方案一时,无需再操作Databricks端的组权限,Azure RBAC会自动同步权限到Databricks平台。
- SCIM同步的组由AAD管控,请勿直接修改Databricks端的组角色,避免与SCIM同步逻辑冲突。
- 当前配置的Terraform Provider版本(azurerm >=3.8.0、databricks >=1.6.3)均支持上述两种方案。
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

