You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 12:27:40