You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Azure允许工程师仅为托管标识/服务主体分配RBAC角色?

限制Azure工程师仅为系统标识分配RBAC权限的配置方案

核心思路

通过自定义RBAC角色+角色分配条件实现权限精细化控制:

  • 自定义角色仅保留分配/删除RBAC角色的必要动作
  • 利用角色分配条件过滤可操作的主体类型,仅允许托管标识(Managed Identity)和服务主体(Service Principal),禁止普通AD用户/组

具体配置步骤

1. 编写自定义RBAC角色定义JSON

创建仅允许对系统标识进行RBAC操作的角色定义,示例如下:

{
  "properties": {
    "roleName": "系统标识RBAC分配专员",
    "description": "仅允许为托管标识、服务主体分配/删除RBAC角色,无法操作普通AD用户/组",
    "assignableScopes": [
      "/subscriptions/你的订阅ID" // 可替换为特定资源组路径,如"/subscriptions/xxx/resourceGroups/xxx"
    ],
    "permissions": [
      {
        "actions": [
          "Microsoft.Authorization/roleAssignments/write",
          "Microsoft.Authorization/roleAssignments/delete",
          "Microsoft.Authorization/roleDefinitions/read" // 允许查看可用角色定义
        ],
        "notActions": [],
        "dataActions": [],
        "notDataActions": []
      }
    ],
    "conditions": [
      {
        "version": "2.0",
        "operator": "In",
        "target": "Microsoft.Authorization/roleAssignments/principalType",
        "values": [
          "ServicePrincipal",
          "ManagedIdentity"
        ]
      }
    ]
  }
}

2. 创建自定义RBAC角色

使用Azure CLI执行命令创建角色:

az role definition create --role-definition ./custom-role.json

3. 分配自定义角色给工程师团队

将创建好的角色分配给对应的工程师AD组,限定在目标资源范围(如订阅、资源组):

  • 登录Azure门户,进入目标资源组/订阅的「访问控制(IAM)」页面
  • 点击「添加」→「添加角色分配」
  • 搜索并选择刚才创建的「系统标识RBAC分配专员」角色
  • 选择需要授权的工程师AD组,完成分配

验证配置效果

  • 使用工程师账号尝试给普通AD用户/组分配RBAC角色,会收到「权限不足」的提示
  • 尝试给托管标识(用户分配/系统分配)或服务主体分配角色,可正常完成操作

注意事项

  • 确保工程师没有其他包含宽泛RBAC权限的内置角色(如「用户访问管理员」),否则自定义角色的限制会被覆盖
  • 角色分配条件仅对支持条件的RBAC动作生效,当前Microsoft.Authorization/roleAssignments/write/delete已支持主体类型过滤
  • 可根据业务需求调整角色的assignableScopes,实现不同项目/资源的权限隔离

内容的提问来源于stack exchange,提问作者STW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 02:25:46