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

Azure Pipelines部署VNet对等连接遇403权限错误求助

解决Azure Pipelines部署Terraform VNet对等时的403权限错误

错误核心原因

当前Azure Pipelines使用的服务主体(SP)没有订阅级别的Microsoft.Authorization/roleDefinitions/write权限。角色定义属于订阅范围的资源,你之前仅在VNet范围配置了网络对等相关权限,无法覆盖角色定义的创建/更新操作。而Azure Portal中你使用的是用户身份(通常具备更高的订阅级权限),因此部署成功。

具体解决步骤

  • 确认Pipeline使用的服务主体
    检查Azure Pipelines中配置的Azure资源管理器服务连接,确认其对应的服务主体对象ID。可通过Azure CLI查询:

    az ad sp list --display-name "<服务连接名称>" --query "[].objectId" -o tsv
    
  • 给服务主体添加订阅级权限
    需要在目标订阅范围内,给该服务主体分配允许创建/更新角色定义的权限,两种操作方式:

    1. Azure CLI命令:
      # 分配RBAC管理员角色(包含角色定义写入权限)
      az role assignment create --assignee <SP-object-id> --role "Role Based Access Control Administrator" --scope /subscriptions/<your-subscription-id>
      
      如需更细粒度控制,可创建自定义角色,仅包含Microsoft.Authorization/roleDefinitions/write、Microsoft.Authorization/roleDefinitions/read权限。
    2. Azure Portal操作:
      • 进入目标订阅 → 选择「访问控制(IAM)」→ 点击「添加角色分配」
      • 角色选择「Role Based Access Control Administrator」(或自定义角色)
      • 成员选择对应的服务主体,完成权限分配
  • 验证Pipeline认证配置
    确保Azure Pipelines中的服务连接正确关联了已授权的服务主体,无需手动执行az login——服务连接会自动处理Azure资源的认证。若使用手动脚本认证,需确保凭据对应具备权限的SP:

    az login --service-principal -u <SP-client-id> -p <SP-secret> --tenant <tenant-id>
    az account set --subscription <your-subscription-id>
    
  • 权限生效与缓存清理
    Azure权限变更通常需要1-5分钟生效,刚完成分配后可等待片刻再重新运行Pipeline。若仍有问题,可在Pipeline脚本中添加az account clear清除本地缓存后重新认证。

  • 检查变量配置
    确认Pipeline中存储的订阅ID、服务主体密钥等变量无误,避免因变量错误导致访问未授权的订阅。

内容的提问来源于stack exchange,提问作者Michał Dziepak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:07:32