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

Terraform AzAPI Provider出现ChainedTokenCredential认证失败问题求助

AzAPI Provider认证失败但Azurerm正常的解决方案

问题背景

使用Terraform的AzAPI Provider创建Azure虚拟机镜像模板时,触发ChainedTokenCredential认证失败,错误提示尝试访问http://169.254.169.254/metadata/identity/oauth2/token(实例元数据服务IMDS)失败,但同一配置下的Azurerm Provider可通过Azure CLI正常认证工作。

核心原因

AzAPI Provider默认采用ChainedTokenCredential认证链,会优先尝试IMDS认证(适用于Azure虚拟机内部环境),再回退到Azure CLI认证。在本地开发环境中,IMDS地址不可达,且旧版本AzAPI Provider存在回退逻辑失效的bug,导致认证直接失败。

解决步骤

1. 强制禁用IMDS认证

在AzAPI Provider配置中添加disable_imds = true,强制Provider仅使用Azure CLI认证:

provider "azapi" {
  subscription_id   = <Subscription ID>
  use_cli           = true
  disable_imds      = true # 新增此行,跳过IMDS认证尝试
}

2. 验证Azure CLI登录上下文

确保当前终端的Azure CLI已正确登录目标订阅:

# 检查当前登录的订阅信息
az account show

# 若订阅不正确,切换到目标订阅
az account set --subscription <Subscription ID>

3. 升级AzAPI Provider版本

你使用的1.10.0版本存在认证链回退的已知问题,升级至较新的稳定版本(如1.15.0及以上):

terraform {
  required_providers {
    azapi = {
      source  = "Azure/azapi"
      version = ">=1.15.0"
    }
  }
}

4. 重置Terraform本地状态(可选)

若上述步骤无效,清理本地状态文件后重新初始化:

# 删除本地Terraform缓存和锁文件
rm -rf .terraform .terraform.lock.hcl

# 重新初始化Provider
terraform init

内容的提问来源于stack exchange,提问作者ayoub-m

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:02:14