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

Terraform部署Azure Databricks授权报错及配置问题咨询

问题1:报错是否由当前databricks provider配置块导致?

是的,报错直接和该配置相关,根因有两个:

  • 你配置了azure_use_msi = true,代表要求Databricks provider使用Azure托管身份(MSI)进行认证,但你执行terraform apply的环境(本地电脑、未配置MSI的流水线代理等)不存在可用的托管身份,所以请求实例元数据服务169.254.169.254获取MSI token时返回500错误。
  • 就算执行环境配置了MSI,该MSI也未被授予Databricks工作区的管理员权限,所以操作用户、组等RBAC资源时会返回User not authorized错误。

临时本地测试可以将provider调整为Azure CLI认证模式,修改配置如下:

provider "databricks" {
  host = azurerm_databricks_workspace.db-workspace.workspace_url
}

调整后先在本地执行az login登录拥有Databricks工作区管理员权限的AAD账号,再执行terraform apply即可正常认证。如果是在Azure环境的自动化流水线中使用,需要为执行资源分配MSI,并为该MSI授予Databricks工作区的管理员角色。

问题2:从Azure门户点击Databricks URL自动登录的配置

Azure Databricks默认集成Azure AD身份认证,无需额外特殊配置即可实现自动登录,只需满足两个条件:

  • 你登录Azure门户使用的AAD账号,和Databricks工作区所属的AAD租户为同一租户
  • 该账号已被授予Databricks工作区的访问权限(可在Azure门户Databricks资源的「访问控制(IAM)」中分配Databricks Admin或Databricks User角色,也可在工作区内部配置RBAC权限)

如果开启了Databricks工作区的私有端点,需要确保访问端的网络可以连通工作区私有地址,避免跳转失败。

问题3:为什么需要分别在required_providers和provider块中声明databricks provider

两个配置的作用完全不同:

  • required_providers块属于依赖声明配置,作用是告诉Terraform工具,当前项目需要用到databricks provider,以及该provider的下载源、版本约束范围,执行terraform init时会根据这个配置拉取对应版本的provider二进制文件
  • provider块属于运行时参数配置,作用是给databricks provider传入连接、认证所需的参数,比如工作区地址、认证方式等,如果不配置该块,provider不知道该连接哪个Databricks实例、用什么身份认证,自然会报authentication is not configured for provider错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:24:04