Azure Databricks账户级Terraform角色分配及自定义角色创建求助
Azure Databricks账户级组角色分配错误及自定义角色创建
问题现象
- 已启用账户级SCIM,完成AAD组到Azure Databricks组的同步
- 用Terraform创建账户级安全组,分配
account_admin角色成功 - 尝试分配
workspace_admin或billing_admin角色时,报错:Error : cannot create group role : invalidValue Invalid role value workspace_admin - 需要了解账户级自定义角色的创建方法
错误原因
workspace_admin是工作区级别角色,不能在账户级资源下分配- 账户级内置角色有专属标识符,并非直观的名称(比如
billing_admin的正确标识符是account_billing_admin)
解决方案
1. 使用正确的账户级内置角色标识符
账户级组角色的有效值如下:
| 角色名称 | Terraform中使用的标识符 |
|---|---|
| 账户管理员 | account_admin |
| 账户计费管理员 | account_billing_admin |
| 账户市场管理员 | account_marketplace_admin |
修正后的账户级角色分配脚本:
provider "databricks" { alias = "manager" host = "https://account.azuredatabricks.net" account_id = "..." } resource "databricks_group" "test_group" { provider = databricks.manager display_name = "test_group_uc" } # 分配账户管理员角色 resource "databricks_group_role" "my_group_account_admin"{ provider = databricks.manager group_id = databricks_group.test_group.id role = "account_admin" } # 分配账户计费管理员角色 resource "databricks_group_role" "my_group_billing_admin"{ provider = databricks.manager group_id = databricks_group.test_group.id role = "account_billing_admin" } # 分配账户市场管理员角色 resource "databricks_group_role" "my_group_marketplace_admin"{ provider = databricks.manager group_id = databricks_group.test_group.id role = "account_marketplace_admin" }
2. 工作区管理员角色的正确分配方式
如果需要给组分配工作区管理员角色,必须配置工作区级的Terraform provider(指定工作区的host地址):
provider "databricks" { alias = "workspace" host = "https://<你的工作区ID>.azuredatabricks.net" # 配置工作区级认证,比如Azure CLI或服务主体认证 } resource "databricks_group_role" "my_group_workspace_admin"{ provider = databricks.workspace group_id = databricks_group.test_group.id role = "workspace_admin" }
3. 创建账户级自定义角色
使用databricks_account_role资源定义自定义角色,配置所需权限后分配给目标组:
# 创建自定义账户角色 resource "databricks_account_role" "custom_account_operator" { provider = databricks.manager name = "custom_account_operator" display_name = "自定义账户操作员" # 根据业务需求添加权限,示例包含部分常用账户级权限 permissions = [ "accounts/read", "workspaces/create", "workspaces/delete", "billing/read" ] } # 将自定义角色分配给组 resource "databricks_group_role" "my_group_custom_role"{ provider = databricks.manager group_id = databricks_group.test_group.id role = databricks_account_role.custom_account_operator.id }
权限列表可参考Databricks内置账户角色的权限集合,按需组合。
内容的提问来源于stack exchange,提问作者Arghya Ganguly
相关产品推荐
相关产品推荐

