我有一个部署一些ARM模板的构建管道。其中一些资源需要为 RBAC 分配角色。
管道用于连接到订阅的服务主体是所有者,但如果模板尝试创建角色分配资源,或者我尝试在管道中运行 az cli 来创建分配,则权限不足。
需要所有者以上的哪些权限才能允许此操作?
我想你误解了Global admin
和Owner
.Global admin
是 Azure AD 中的Administrator role
,Owner
是订阅中的RBAC role
。它们是不同的东西。
使用如下所示的 azure CLI 创建角色分配时,它会将服务主体joytestsp
作为Owner
添加到存储帐户。登录的服务主体需要先调用 AAD 图来获取对象,然后调用 Azure 管理 rest 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'