我有一个使用Azure REST API的正在运行的应用程序,并且想扩展它以收集有关Azure RI(预留实例)的信息。无论我使用文档页面(https://docs.microsoft.com/en-us/rest/api/reserved-vm-instances/reservationorder/list)上的“尝试”链接,还是通过我的应用程序中的API调用,都会出现相同的错误。有问题的用户是该帐户的全局管理员。
{
"error": {
"code": "AuthorizationFailed",
"message": "The client 'admin-user@domain.com' with object id 'e127xxxx-f0b7-4b52-802f-yyyyb171zzzz' does not have authorization to perform action 'Microsoft.Capacity/reservationOrders/read' over scope '/providers/Microsoft.Capacity'."
}
}
想法?如果这是RBAC的问题,那么提供一个“ Try It”链接,其中没有有关使该链接正常工作的先决条件的信息,似乎毫无意义。
谢谢。
答案 0 :(得分:0)
好吧,全局管理员角色仅适用于Azure AD,您需要owner \ contributor角色才能执行该调用(您特别需要Microsoft.Capacity/reservationOrders/read
权限)。
您还可以创建一个自定义角色以应用最低特权原则
https://docs.microsoft.com/en-us/azure/role-based-access-control/overview
https://docs.microsoft.com/en-us/azure/role-based-access-control/custom-roles
答案 1 :(得分:0)
默认情况下,购买预订的人和帐户管理员在预订上具有所有者角色。因此,购买预订的人或管理员需要向您或您的应用授予对预订的访问权限。您可以执行Azure门户。转到预订,然后选择预订,转到预订顺序并委托访问。您可以选择所需的任何类型的角色(例如,阅读器)。之后,您的用户/应用可以访问该预订顺序下的所有预订。不幸的是,您需要对所有预订订单执行该操作。