AzureUSGovernment环境下Managed Identity配合Terraform认证失败问题
问题原因
你遇到的报错本质是azurerm provider默认请求Azure公有云的Resource Manager端点,未适配Azure US Government的专属服务端点,因此哪怕本地az cli已经切换到政府云环境,provider的请求仍会发到公有云,自然无法找到仅存在于政府云租户下的订阅ID。
解决方案
- 修改你的
provider.tf配置,新增environment参数指定云环境为美国政府云:
provider "azurerm" { features {} use_msi = true subscription_id = "MYSUB-ID" tenant_id = "MYTENANT-ID" environment = "usgovernment" # 新增该行指定云环境 }
- 保存配置后执行
terraform init --upgrade重新初始化provider,让配置生效后,再执行plan/apply操作即可。
异常排查补充
如果调整配置后仍有报错,可依次核对以下项:
- 确认你填写的订阅ID确实归属于所用的Azure US Government租户,未和公有云订阅ID混用
- 确认虚拟机绑定的托管身份已在对应政府云订阅下分配了足够权限
- 在虚拟机内执行
az account show,确认当前az cli上下文的订阅ID、租户ID、云环境和provider配置完全一致
内容的提问来源于stack exchange,提问作者Ismail
相关产品推荐
相关产品推荐

