使用Terraform为Azure应用网关分配用户托管身份遇错误
问题解决:Azure应用网关Terraform身份配置错误
你的问题出在两个核心点:
- 把Terraform资源属性引用当成纯字符串处理,导致Terraform没有解析实际的资源属性值,直接把
"azurerm_user_assigned_identity.app-gw-identity.principal_id"当成了资源ID,格式完全不符合Azure资源ID的要求 - 用错了字段:
identity_ids需要的是用户托管身份的资源ID(id字段),而非principal_id(主体ID仅用于RBAC授权,不属于资源标识范畴)
正确配置代码
将identity块修改为如下内容:
identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.app-gw-identity.id] }
关键说明
- 不要给资源属性引用加引号:引号会让Terraform把内容视为纯文本,而非读取对应资源的实际属性值
identity_ids数组必须填入用户托管身份的资源ID(即id字段),这个ID是包含订阅、资源组等信息的标准Azure资源格式,能满足Terraform的解析要求- 确认你的用户托管身份资源
azurerm_user_assigned_identity.app-gw-identity在当前配置中存在,且名称拼写完全一致
修改后重新执行terraform plan即可解决该解析错误。后续应用网关就能通过该身份访问密钥保管库的SSL证书(注意AAD组的角色分配可能需要几分钟同步生效)。
内容的提问来源于stack exchange,提问作者Pallab
相关产品推荐
相关产品推荐

