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

订阅级RBAC角色咨询:类似Reader但限制密钥访问权限

解答:自定义RBAC角色实现你的需求

嘿,这个需求挺实用的!Azure 目前并没有提供现成的内置订阅级角色完全匹配你描述的「类Reader权限,但禁止访问Key Vault机密和Azure Storage blob密钥」的要求。不过咱们可以通过自定义RBAC角色轻松实现这个目标,具体步骤如下:

核心思路

我们可以基于内置的Reader角色权限,通过notActions字段排除掉那些允许访问敏感资源的特定权限,这样就能得到一个符合要求的自定义角色。

具体操作步骤

1. 导出Reader角色的基础定义

首先,把内置Reader角色的权限结构导出来,作为自定义角色的模板。用Azure CLI执行以下命令:

az role definition export --name "Reader" > custom-reader-role.json

2. 修改角色定义文件

打开导出的custom-reader-role.json,添加notActions字段,把需要禁止的权限列进去。重点要排除的权限包括:

  • Key Vault机密读取权限:Microsoft.KeyVault/vaults/secrets/read
  • Storage账户密钥相关操作:Microsoft.Storage/storageAccounts/listKeys/action、Microsoft.Storage/storageAccounts/regenerateKey/action

修改后的核心JSON片段大概是这样:

{
  "properties": {
    "roleName": "Custom Reader (No Secrets/Storage Keys)",
    "description": "Reader role without access to Key Vault secrets and Storage account keys",
    "assignableScopes": [
      "/subscriptions/你的订阅ID"
    ],
    "permissions": [
      {
        "actions": [
          "*/read"
        ],
        "notActions": [
          "Microsoft.KeyVault/vaults/secrets/read",
          "Microsoft.Storage/storageAccounts/listKeys/action",
          "Microsoft.Storage/storageAccounts/regenerateKey/action"
        ],
        "dataActions": [],
        "notDataActions": []
      }
    ]
  }
}

注意:记得把assignableScopes里的订阅ID替换成你实际的订阅ID,也可以设置为根范围"/"让角色在所有订阅可用。

3. 创建自定义角色

用Azure CLI执行以下命令,将修改后的角色定义导入Azure:

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

额外说明

  • 如果你还需要禁止其他敏感操作(比如访问Key Vault的证书、密钥),可以在notActions里添加对应的权限(比如Microsoft.KeyVault/vaults/keys/read)。
  • 自定义角色创建完成后,就可以像内置角色一样,在订阅级别或者资源组级别给用户/组/服务主体分配这个角色了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:52:36