使用Terraform创建Azure资源组时报403授权错误该如何解决?
解决步骤
- 校验
ARM_SUBSCRIPTION_ID参数正确性
报错明确提示存在作用域无效的可能性,优先检查GitHub Actions中传入的ARM_SUBSCRIPTION_ID是否和目标订阅完全匹配,secrets存储的内容不要有多余空格、换行符,也不要误填为其他订阅的ID。可以临时在工作流中加一行echo ${{ secrets.ARM_SUBSCRIPTION_ID }}打印验证,确认后立即删除该步骤避免信息泄露。 - 检查服务主体的权限范围
你提到操作现有资源时无报错,大概率是之前给对应ARM_CLIENT_ID的服务主体授予的是已有资源组级别的权限,而创建新资源组需要订阅级别的权限:- 登录Azure门户,进入目标订阅的「访问控制(IAM)」页
- 查找对应服务主体的现有角色分配
- 新增订阅级别的角色分配,至少要包含
Microsoft.Resources/subscriptions/resourcegroups/read、Microsoft.Resources/subscriptions/resourcegroups/write权限,直接授「参与者」角色即可满足需求 - 权限授予后最多等待15分钟生效,也可以直接重新触发工作流刷新凭据重试
- 升级AzureRM provider版本
你当前使用的azurerm provider 2.7.0属于已停止维护的旧版本,和新的Azure API存在兼容性问题,可能会引发异常的鉴权报错,可以将版本约束修改为~>3.0后重试。
内容的提问来源于stack exchange,提问作者Tilak Raj
相关产品推荐
相关产品推荐

