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

通过Terraform为Azure组下Databricks非管理员用户启用PAT令牌及报错排查

解决Databricks中配置指定Azure组用户生成PAT的Terraform问题

核心问题修复:databricks_permissions授权类型错误

你遇到的cannot create permissions: tokens tokens does not exist报错,是因为databricks_permissions的authorization参数值错误。正确的令牌管理授权类型应为token-management,而非tokens。

完整解决方案步骤

1. 同步Azure AD组到Databricks

要给指定Azure组授权,需先将Azure AD组同步到Databricks环境中,通过databricks_group资源关联Azure组的对象ID。

2. 修正PAT权限配置

调整databricks_permissions的授权类型,并为同步后的Azure组分配CAN_USE权限,允许用户创建PAT。

3. 配置PAT有效期

通过databricks_workspace_conf设置PAT的最大有效期,同时确保令牌配置功能启用(默认已开启,可保留显式配置)。

修正后的Terraform代码

terraform {
  required_providers {
    databricks = {
      source  = "databricks/databricks"
      version = "1.21.0"
    }
    azurerm = {
      version = ">=3.2.1"
    }
  }
}

provider "azurerm" {
  features {}
}

provider "databricks" {
  azure_workspace_resource_id = azurerm_databricks_workspace.myworkspace.id
  auth_type                   = "azure-client-secret"
}

# 创建资源组
resource "azurerm_resource_group" "myresourcegroup" {
  name     = "samghj2-myresourcegroup"
  location = "centralus"
}

# 创建Databricks Workspace
resource "azurerm_databricks_workspace" "myworkspace" {
  location            = azurerm_resource_group.myresourcegroup.location
  name                = "samghj2-workspace"
  resource_group_name = azurerm_resource_group.myresourcegroup.name
  sku                 = "trial"
}

# 同步目标Azure AD组到Databricks
resource "databricks_group" "azure_target_group" {
  display_name        = "你的Azure组显示名称"
  azure_ad_group_id   = "/subscriptions/你的订阅ID/resourceGroups/资源组/providers/Microsoft.AAD/groups/组对象ID"
  depends_on          = [azurerm_databricks_workspace.myworkspace]
}

# 配置PAT最大有效期
resource "databricks_workspace_conf" "config_map" {
  custom_config = {
    "maxTokenLifetimeDays" = "1"
    "enableTokensConfig"   = true
  }
  depends_on = [azurerm_databricks_workspace.myworkspace]
}

# 授予Azure组令牌管理权限
resource "databricks_permissions" "token_management" {
  authorization = "token-management"

  access_control {
    group_name       = databricks_group.azure_target_group.display_name
    permission_level = "CAN_USE"
  }

  depends_on = [databricks_group.azure_target_group, databricks_workspace_conf.config_map]
}

关键说明

  • Azure组同步:必须通过databricks_group将Azure AD组导入Databricks,才能在权限配置中引用。可以通过azure_ad_group_id直接关联Azure组的资源ID,或仅用display_name(需确保组名唯一)。
  • 权限解释:CAN_USE权限允许组内用户创建、管理自己的PAT,管理员无需提前为用户创建令牌,只需配置好权限即可。之前的误解可能源于初始Workspace的权限默认限制,配置完成后非管理员用户即可自行生成PAT。
  • PAT有效期:maxTokenLifetimeDays设置的是PAT的最大允许有效期,用户创建时不能超过这个天数。

内容的提问来源于stack exchange,提问作者Onki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 13:20:36