通过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
相关产品推荐
相关产品推荐

