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

执行Terraform计划遇子网错误,Azure跨租户认证失败求助

解决方案

一、先解决Azure CLI认证失败问题

你的az login报错是因为CLI尝试自动认证多个租户,但部分租户的跨租户访问策略或权限拒绝了访问。虽然浏览器显示登录成功,但CLI上下文未切换到你实际操作的租户,导致后续Terraform无法获取正确的资源权限。

解决步骤:

  • 明确指定目标租户登录:执行命令
    az login --tenant <你的目标租户ID或域名>
    
    替换<你的目标租户ID或域名>为Azure门户操作的租户ID(可从Azure Active Directory -> 属性中获取)或租户域名(如xxx.onmicrosoft.com)。
  • 切换到正确的订阅:登录后查看当前订阅
    az account show
    
    若显示的订阅不是目标订阅,执行切换命令:
    az account set --subscription <目标订阅ID或名称>
    

二、解决Terraform的Subnet (Subscription) was not found错误

该错误大概率是Terraform使用的订阅上下文与资源所在订阅不一致,或子网引用有误:

  • 检查terraform.tfvars文件中的subscription_id变量值,确保和你切换后的订阅ID完全一致。
  • 检查Terraform配置中的子网引用:
    • 若直接引用资源名称,确认子网所在的资源组、虚拟网络名称均正确,且这些资源确实存在于目标订阅中。
    • 推荐使用资源ID引用(如azurerm_subnet.my_subnet.id),避免名称冲突或上下文错误。
  • 确保Azure Provider配置正确:若Terraform Provider块未指定subscription_id和tenant_id,可手动添加,确保和当前CLI上下文一致:
    provider "azurerm" {
      features {}
      subscription_id = "<你的订阅ID>"
      tenant_id       = "<你的租户ID>"
    }
    

完成以上步骤后,重新执行terraform init确保Provider配置生效,再运行terraform plan -var-file=C:\dev\terraform.tfvars即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:52:33