使用所有者服务原则无法在管道中创建角色分配

时间:2019-09-25 06:23:17

标签: azure-active-directory azure-ad-graph-api service-principal

我有一个构建管道,该管道可以部署一些ARM模板。这些资源中的某些资源必须具有RBAC的角色分配。

管道用于连接到订阅的服务原理是所有者,但是如果模板尝试创建角色分配资源,或者如果我尝试在管道中运行az cli来创建分配,则权限不足。 / p>

要拥有此权限,必须拥有所有者以上的权限?

1 个答案:

答案 0 :(得分:0)

我想您误解了Global adminOwnerGlobal admin是Azure AD中的Administrator role,而Owner是订阅中的RBAC role。他们是不同的东西。

当您使用如下所示的Azure cli创建角色分配时,会将服务主体joytestsp作为Owner添加到存储帐户。您登录的服务主体需要先调用AAD Graph来获取对象,然后再调用azure管理剩余api将其添加到存储帐户中。

az role assignment create --assignee 'joytestsp' --role 'Owner' --scope '/subscriptions/xxxxxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/joyfunction'

因此,要解决此问题,您可以导航至门户网站中的Azure Active Directory-> Roles and administrators->单击Global administrator-> Add assignments->添加服务曾经以Global administrator登录的主体。然后它应该起作用。


此外,如果您不想将其Global administrator赋予服务主体,则还可以在“ object id”中指定服务主体/用户命令,那么它也将起作用。

az role assignment create --assignee 'b4d3c922-xxxxxxx-3ab785333011' --role 'Owner' --scope '/subscriptions/xxxxxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/joyfunction'