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

如何为Azure DevOps ARM服务连接授予Key Vault访问权限

解决Azure DevOps服务连接无法访问Key Vault的问题

不管你用的是服务主体还是工作负载身份联合类型的ARM服务连接,核心都是把服务连接对应的身份添加到Key Vault的权限控制体系中,以下是具体操作步骤:

一、先获取服务连接对应的身份ID

不管哪种认证方式,都需要先拿到服务连接关联的Azure AD身份的对象ID:

  • 打开Azure DevOps项目,进入「项目设置」→「服务连接」,找到目标ARM服务连接,点击「编辑」。
    • 服务主体类型:直接复制页面上的「服务主体ID」;
    • 工作负载身份联合类型:复制「应用程序ID」,然后到Azure Portal的「Azure AD」→「应用注册」,搜索这个应用程序ID,进入后复制该应用的「对象ID」。

二、给Key Vault添加访问策略(默认权限模型)

  1. 打开Azure Portal,找到目标Key Vault,进入「访问策略」→「创建」;
  2. 在「主体」步骤,点击「无选择」,在搜索框粘贴刚才复制的对象ID,选中对应的身份;
  3. 根据预填充密钥的需求,勾选对应的权限:比如密钥的「获取」「列出」「设置」,机密的「获取」「列出」「设置」等;
  4. 完成后续步骤,保存访问策略。

三、若Key Vault启用了RBAC权限模型

如果你的Key Vault用的是Azure RBAC权限模型(而非默认的访问策略),则需要给服务连接对应的身份分配Key Vault相关角色:

  1. 进入Key Vault的「访问控制(IAM)」→「添加」→「添加角色分配」;
  2. 选择合适的角色:比如「Key Vault Secrets Officer」(可管理密钥/机密)、「Key Vault Contributor」(全权限)等;
  3. 在「成员」步骤,粘贴身份的对象ID搜索并选中,完成角色分配。

四、ARM模板中直接配置(推荐自动化部署)

如果是通过ARM模板创建Key Vault,可直接在模板中嵌入访问策略配置,避免手动操作:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "keyVaultName": {
      "type": "string"
    },
    "location": {
      "type": "string"
    },
    "servicePrincipalObjectId": {
      "type": "string"
    }
  },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2023-02-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[parameters('location')]",
      "properties": {
        "sku": {
          "family": "A",
          "name": "standard"
        },
        "tenantId": "[subscription().tenantId]",
        "accessPolicies": [
          {
            "objectId": "[parameters('servicePrincipalObjectId')]",
            "tenantId": "[subscription().tenantId]",
            "permissions": {
              "keys": ["get", "list", "set"],
              "secrets": ["get", "list", "set"],
              "certificates": []
            }
          }
        ],
        "enabledForTemplateDeployment": true
      }
    }
  ]
}

部署时传入服务主体的对象ID参数,即可在创建Key Vault的同时配置好访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:20:26