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

使用系统托管身份认证Terraform时遇ARM配置错误求助

系统托管身份部署Terraform资源时的认证错误排查

我尝试使用系统托管身份执行Terraform资源部署,却遇到如下错误:

Error: Error building ARM Config: Authenticating using the Azure CLI is only supported as a User (not a Service Principal).

我已配置以下环境变量,且在terraform init前已通过托管身份登录:

export ARM_ENVIRONMENT=public
export ARM_USE_MSI=true
export ARM_SUBSCRIPTION_ID=${ENV_SUBSCRIPTION_ID}
export ARM_TENANT_ID=${ENV_TENANT_ID}

系统托管身份已拥有订阅的Contributor和Owner权限,请问遗漏了什么配置?


排查与解决方案

  • 清除Azure CLI认证缓存:若之前用过Azure CLI的用户身份登录,Terraform可能优先读取CLI的认证缓存而非使用MSI。执行az account clear清除缓存后,重新运行Terraform命令。
  • 移除冲突环境变量:如果存在ARM_CLIENT_ID、ARM_CLIENT_SECRET这类服务主体相关的环境变量,会干扰MSI认证逻辑,需删除这些变量。
  • 验证MSI可用性:在运行Terraform的环境中执行以下命令,检查能否正常获取MSI访问令牌,确认托管身份可正常使用:
    curl http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com/ -H Metadata:true
    
  • 指定MSI资源ID(多身份场景):若环境中有多个托管身份,需添加ARM_MSI_RESOURCE_ID环境变量,明确指定要使用的系统托管身份资源ID,避免身份识别错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:34:54