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

使用Contributor角色服务主体通过Azure CLI设置Key Vault访问策略报权限不足

Azure服务主体调用az keyvault set-policy带--spn参数报权限不足问题解决方案

根因说明

使用--spn参数执行命令时,AZ CLI会自动调用Microsoft Graph接口,根据传入的客户端ID(SPN)查询对应服务主体的Object ID,这一步要求当前执行命令的服务主体拥有Azure AD的应用读取权限。
直接传入--object-id时不需要做额外的AAD查询操作,因此可以正常执行。

解决方案

方案一(推荐,无需额外配置权限)

直接使用--object-id参数执行命令,提前在流水线中配置好目标服务主体的Object ID即可,命令格式如下:

az keyvault set-policy -n testserviceprincipal --secret-permissions list --object-id <目标服务主体ObjectId>

该方案无需为执行命令的服务主体额外开放AAD权限,安全性更高。

方案二(必须使用--spn参数时选用)

为执行命令的Contributor角色服务主体添加Microsoft Graph的应用读取权限:

  • 进入Azure Portal的Azure Active Directory页面,找到当前用于执行AZ CLI命令的服务主体
  • 进入「API权限」配置页,点击「添加权限」,选择「Microsoft Graph」
  • 权限类型选择「应用程序权限」,搜索并勾选Application.Read.All权限
  • 点击「授予管理员同意」完成权限配置,操作需要AAD全局管理员或特权角色管理员权限
  • 等待3~5分钟权限生效后,即可正常使用带--spn参数的命令

注意事项

Application.Read.All权限允许主体读取AAD租户内所有应用注册的信息,权限范围较宽,如无特殊需求优先选择方案一。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:27:05