如何配置Azure Custom Owner Role仅可查看并分配该特定角色
Azure自定义角色权限配置方案(仅可查看/分配指定角色)
你需要通过「权限列表裁剪+分配范围约束+分配条件兜底」三层配置实现需求,具体操作如下:
一、自定义角色权限项配置
编辑自定义角色的JSON权限定义,按如下规则配置Actions和NotActions字段:
- 需加入
Actions的允许权限:Microsoft.Authorization/roleAssignments/read:读取角色分配记录Microsoft.Authorization/roleAssignments/write:创建角色分配Microsoft.Authorization/roleAssignments/delete:删除角色分配Microsoft.Authorization/roleDefinitions/read:读取角色定义
- 需加入
NotActions的禁止权限:Microsoft.Authorization/roleDefinitions/write:禁止修改任意角色定义Microsoft.Authorization/roleDefinitions/delete:禁止删除任意角色定义Microsoft.Authorization/elevateAccess/*:禁止提权操作- 如果你不需要给该角色开放其他Azure资源操作权限,直接移除所有非上述授权项的权限,不要使用
*通配符授权。
二、角色分配范围约束
将配置好的自定义角色分配给目标RBAC组时,不要直接选择订阅/管理组根范围,需拆分两个独立的分配范围:
- 角色定义读取范围:范围精准选择你创建的目标Custom Owner Role的资源ID,仅在这个范围下生效
Microsoft.Authorization/roleDefinitions/read权限,从范围层面限制用户只能看到这一个指定角色,无法枚举其他内置、自定义角色。 - 业务资源分配范围:范围选择你允许用户分配该角色的目标资源层级(可以是指定资源组、单个资源,按需选择),在这个范围下生效角色分配相关的读写删权限。
三、角色分配条件兜底
在业务资源分配范围的角色分配条目上,添加如下权限条件,拦截非目标角色的分配操作:
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] StringEquals <你的Custom Owner Role的完整资源ID>
该条件会校验所有创建/删除角色分配的请求,只有操作对象是你指定的Custom Owner Role时才会放行,彻底避免用户分配其他角色。
注意:配置完成后可以用测试账号登录验证,确认无法枚举其他角色、无法为其他角色创建分配即可。
内容的提问来源于stack exchange,提问作者Hinda
相关产品推荐
相关产品推荐

