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