你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在自定义文件中使用 Azure Key Vault 机密

在自定义 YAML 配置中,您可以使用 Azure 密钥保管库中的机密来克隆私有存储库,或用于任何需要访问令牌的任务编写。 例如,在团队自定义文件中,可以使用密钥保管库中存储的个人访问令牌(PAT)来访问专用存储库。

在自定义文件中使用密钥保管库机密

若要在自定义文件中使用机密(如 PAT),请将 PAT 存储为密钥保管库机密。

团队和用户自定义都支持从密钥保管库提取机密。 团队自定义(也称为映像定义文件)使用 image 参数定义开发框的基本映像,并列出创建开发框时运行的任务。 用户自定义项列出了创建开发框时运行的任务。 以下示例演示如何在两种类型的自定义中使用 Key Vault 密钥。

若要配置密钥保管库机密以用于团队或用户自定义,请确保开发人员中心项目的托管标识在密钥保管库上具有“密钥保管库机密用户”角色。

若要配置密钥保管库机密以用于用户自定义,你还需要:

  1. 请确保你的开发人员中心项目的托管标识在密钥保管库上具有 Key Vault 读取者角色和 Key Vault 机密用户角色。
  2. 向应在开发箱自定义期间使用机密的每个用户或用户组授予 Key Vault 机密的 Key Vault 机密用户角色。 授予该角色的用户或组必须包括开发人员中心的托管标识、管理员的用户帐户,以及开发箱自定义期间需要机密的任何用户或组。

可以将 Key Vault 机密与内置 PowerShell 任务联用:

$schema: "1.0" 
image: microsoftwindowsdesktop_windows-ent-cpc_win11-24H2-ent-cpc 
tasks:  
- name: git-clone
    description: Clone this repository into C:\Workspaces 
    parameters: 
    command: MyCommand –MyParam '{{KEY_VAULT_SECRET_URI}}' 

此示例显示图像定义文件。 KEY_VAULT_SECRET_URI是您密钥保管库中机密的 URI。

可按以下格式引用 YAML 自定义设置中的机密,以 git-clone 任务为例:

$schema: "1.0"
tasks:
  - name: git-clone
    description: Clone this repository into C:\Workspaces
    parameters:
      repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
      directory: C:\Workspaces
      pat: '{{KEY_VAULT_SECRET_URI}}'

此示例显示用户自定义文件。 没有 image 指定。

通过用户自定义,可以获取 Azure DevOps 令牌以克隆专用存储库,而无需从 Key Vault 显式指定 PAT。 该服务在运行时自动将你的 Azure 令牌交换为 Azure DevOps 令牌。

$schema: "1.0" 
tasks: 
  - name: git-clone 
    description: Clone this repository into C:\Workspaces 
    parameters: 
      repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo 
      directory: C:\Workspaces 
      pat: '{{ado://YOUR_ORG_NAME}}' 

Dev Box VS Code 扩展和 Dev Box CLI 不支持在内循环测试工作流中水化用于自定义的机密。

配置 Key Vault 访问

开发人员中心需要访问密钥保管库。 由于开发人员中心不支持服务标记,因此如果密钥保管库是专用的,请让受信任的Microsoft服务绕过防火墙。

该屏幕截图显示允许受信任的 Microsoft 服务绕过 Azure 密钥保管库设置中的防火墙的选项。

若要了解如何让受信任的Microsoft服务绕过防火墙,请参阅 “配置 Azure Key Vault 网络设置”。