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

Azure中允许从密钥库读取证书的最小RBAC角色是什么?

最小权限实现方案

首先明确你测试的几个角色失效的原因:

  • Reader是Azure资源管理器层面的只读角色,仅可查看密钥库的资源配置(如位置、定价层),无权读取密钥库内部存储的证书、机密等业务数据,因此不满足需求
  • Key Vault Secrets User仅拥有机密数据的读取权限,而CertificateClient.DownloadCertificateAsync首先需要读取证书对象的元数据和公钥,因此单独分配该角色无法完成操作
  • Key Vault Certificates Officer确实包含证书创建、更新、删除等写入权限,生产场景不建议为仅需读取权限的工作负载分配该角色

最优最小权限实现方式

根据你的使用场景二选一即可,所有方案均无多余写入权限:

场景1:使用内置角色(无需自定义配置,接入最快)

仅需要读取证书公钥

仅为托管标识分配Key Vault Certificate User内置角色即可,该角色仅拥有证书对象的读取权限,无任何写入权限,可支持不带私钥的DownloadCertificateAsync调用。

需要读取带私钥的完整证书

同时为托管标识分配两个内置角色即可:

  • Key Vault Certificate User:读取证书元数据、公钥部分
  • Key Vault Secrets User:读取证书对应的私钥内容(密钥库中证书的私钥默认存储为关联的机密条目)

场景2:自定义RBAC角色(单角色统一权限管理)

如果希望用单个角色覆盖需求,可创建自定义RBAC角色,仅添加必要的权限:

{
  "actions": [
    "Microsoft.KeyVault/vaults/certificates/read",
    // 需要私钥的场景添加下面这行权限
    "Microsoft.KeyVault/vaults/secrets/get"
  ],
  "notActions": [],
  "dataActions": [],
  "notDataActions": []
}

场景3:使用传统访问策略模型

如果你用的是密钥库的经典访问策略而非Azure RBAC权限模型,直接为托管标识配置以下访问权限即可:

  • 证书权限:勾选Get
  • 机密权限:需私钥时额外勾选Get

注意事项

权限分配完成后需等待2-5分钟让权限生效,再调用CertificateClient.DownloadCertificateAsync即可正常获取证书。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:27:03