我有一个构建管道,该管道可以部署一些ARM模板。这些资源中的某些资源必须具有RBAC的角色分配。
管道用于连接到订阅的服务原理是所有者,但是如果模板尝试创建角色分配资源,或者如果我尝试在管道中运行az cli来创建分配,则权限不足。 / p>
要拥有此权限,必须拥有所有者以上的权限?
答案 0 :(得分:0)
我想您误解了Global admin
和Owner
。 Global 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'