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

使用Azure API查询账单账户成本时如何解决RBACAccessDenied错误?

Azure Cost Management API RBACAccessDenied 权限问题排查

问题详情

我是新手,遇到了权限问题。在Azure AD中创建了一个应用,用于读取账单账户的成本,调用Cost Management的Usage查询API。发送请求:
https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{{billing_account}}/providers/Microsoft.CostManagement/query?api-version=2023-03-01
收到错误响应:

{
    "error": {
        "code": "RBACAccessDenied",
        "message": "The client does not have authorization to perform action. Request ID: 98c2999a-5964-483f-b8d6-3f2a024fe915"
    }
}

已在账单账户中为该应用添加了Cost Management Reader和Cost Management Contributor权限,也修改过账单账户的Access Control(IAM)角色和权限,但问题仍未解决。

排查与解决步骤

  • 确认权限作用范围:检查IAM角色是否直接分配在账单账户层级,而非订阅、资源组等子资源。针对账单账户的Cost Management查询,权限必须绑定到账单账户实体本身。
  • 验证应用权限分配状态:在Azure门户的账单账户IAM页面,搜索应用名称,确认角色分配状态为已生效,且分配范围明确指向当前账单账户(而非继承自父级资源)。
  • 补充必要的API权限:调用账单账户级查询API,除Cost Management Reader/Contributor外,需确保应用拥有Microsoft.Billing/billingAccounts/read权限。可通过添加内置的Billing Reader角色,或创建包含该权限的自定义角色来补充。
  • 检查访问令牌权限:获取应用的访问令牌后,用JWT解析工具查看roles声明,确认包含CostManagementQuery.Read或对应权限标识。若使用客户端凭据流,需确保应用注册中已添加Cost Management API的应用权限(非委派权限),且完成了管理员同意。
  • 等待权限生效:Azure RBAC权限分配可能存在5-15分钟的延迟,若刚修改权限,等待后重试请求。
  • 匹配账单账户类型:不同账单账户类型(EA、MCA、Pay-as-you-go)的权限配置要求有差异,确认当前账户类型对应的IAM规则是否正确配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:45:52