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

如何通过Terraform为Databricks访问连接器分配存储账户Blob权限?

解决Terraform中Databricks访问连接器角色分配的“principal id is not guid”错误

你遇到的报错根源是:角色分配代码里误用了Databricks访问连接器的资源ID作为principal_id,但这个字段要求传入的是身份主体的GUID,而非资源本身的ID。

错误代码示例:

resource "azurerm_role_assignment" "databricks_connector_role_assignment" {
  scope                = azurerm_storage_account.storage_account.id
  role_definition_name = "Storage Blob Data Contributor"
  principal_id         = azurerm_databricks_access_connector.databricks_cdf_audit_access_connector.id
}

由于你的Databricks访问连接器已经配置了系统分配身份(identity { type = "SystemAssigned" }),正确的principal_id需要引用该系统身份的主体ID,而非资源ID。

修正后的代码:

resource "azurerm_role_assignment" "databricks_connector_role_assignment" {
  scope                = azurerm_storage_account.storage_account.id
  role_definition_name = "Storage Blob Data Contributor"
  principal_id         = azurerm_databricks_access_connector.databricks_cdf_audit_access_connector.identity[0].principal_id
}

说明:当资源启用系统分配身份后,Terraform会在identity列表字段中返回该身份的详细信息,其中principal_id就是符合要求的GUID格式主体ID,通过identity[0].principal_id即可正确引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:53:11