解决Terraform Plan访问Azure受防火墙保护资源的403错误:添加正确IP白名单
解决Terraform Cloud访问Azure受防火墙保护资源的403权限问题
问题背景
当用Terraform Cloud对受防火墙保护的Azure资源执行terraform plan或apply时,会因为Terraform Cloud发起的GET请求无访问权限触发403错误。通过curl --request GET https://app.terraform.io/api/meta/ip-ranges | jq '.'获取IP段后,添加api字段下的IP到Azure防火墙白名单仍无法解决,只能临时开放资源至所有网络才能完成操作。
核心原因
你选错了IP范围:Terraform Cloud的托管工作区运行器在执行plan/apply、访问Azure资源时,使用的是workers字段下的IP,而非api字段的IP。之前的API响应里你没注意到这个关键字段。
解决方案步骤
获取完整的Terraform Cloud IP范围
重新执行命令,拿到包含workers段的完整IP列表:curl --request GET https://app.terraform.io/api/meta/ip-ranges | jq '.'完整响应会包含
workers字段,示例如下:{ "api": [ ... ], "notifications": [ ... ], "sentinel": [ ... ], "vcs": [ ... ], "workers": [ "1.2.3.4/24", "5.6.7.8/22" ] }将
workers段IP添加到Azure防火墙白名单- 登录Azure门户,找到目标资源的防火墙配置界面
- 把
workers字段下的所有CIDR地址全部添加到允许的IP列表中 - 保存配置,等待规则生效(一般几分钟内即可)
验证操作
重新运行terraform plan,此时Terraform Cloud的托管运行器会用workers段的IP发起请求,应该能正常访问Azure资源,不会再出现403错误。
额外说明
api字段的IP仅用于Terraform Cloud API的访问场景(比如你本地机器调用Terraform Cloud API时的来源IP),和运行器执行terraform操作的请求IP无关- 如果你用的是自托管运行器,不需要加Terraform Cloud的
workersIP,而是要把自托管运行器所在服务器的公网IP添加到Azure防火墙白名单
内容的提问来源于stack exchange,提问作者dat
相关产品推荐
相关产品推荐

