将变量组链接到 Azure 密钥库中的机密

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

可以创建一个变量组,该变量组链接到现有的 Azure 密钥保管库,并将所选密钥保管库机密映射到变量组。 只有机密名称会被映射到变量组中,而机密值不会被映射到变量组中。 管道运行时,它们链接到变量组,以便在运行时从保管库中提取最新的机密值。

对密钥保管库中现有机密所做的任何更改,都会自动提供给使用该变量组的所有管道。 但是,如果在保管库中添加或删除机密,则相关的变量组不会自动更新。 必须显式更新要包含在变量组中的机密。

虽然密钥保管库支持在 Azure 中存储和管理加密密钥和证书,但 Azure Pipelines 变量组集成仅支持映射密钥保管库机密。 不支持加密密钥和证书。

先决条件

产品 要求
Azure DevOps - Azure DevOps 项目
- 您项目的 Azure 资源管理器服务连接
- 权限:
    - 若要使用服务连接:至少具有用户角色以用于服务连接
    - 若要创建变量组:至少具有 Creator库权限
蔚蓝 - 具有活动订阅的 Azure 帐户。 免费创建帐户
- 权限:
    若要创建密钥保管库:至少具有订阅的 “所有者” 角色。

创建 key vault

如果还没有密钥保管库,可以按如下所示创建一个保管库:

  1. 在 Azure 门户中,选择“创建资源”。
  2. 搜索并选择 Key Vault,然后选择“ 创建”。
  3. 选择订阅。
  4. 选择现有资源组,或创建一个新组。
  5. 输入密钥保管库的名称。
  6. 选择区域。
  7. 选择 “访问和配置 ”选项卡。
  8. 选择 保管库访问策略
  9. 选择帐户作为主体。
  10. 选择“查看 + 创建”,然后选择“创建” 。

创建链接到密钥保管库的变量组

  1. 在 Azure DevOps 项目中,选择 管道>>+ 变量组

  2. 在“变量组”页面中,输入变量组的名称和可选描述。

  3. 启用链接 Azure Key Vault 中的机密作为变量切换。

  4. 选择服务连接,然后选择“ 授权”。

  5. 选择密钥保管库名称,并通过选择保管库名称旁边的 “授权 ”来启用 Azure DevOps 访问密钥保管库。

  6. 选择 “+ 添加” ,然后在“ 选择机密 ”屏幕上,从保管库中选择用于映射到此变量组的机密,然后选择“ 确定”。

  7. 选择“保存”以保存机密变量组。

    Azure Key Vault 集成的变量组的屏幕截图。

不支持具有基于角色的访问控制(RBAC)权限的密钥保管库。 密钥保管库权限模型必须设置为 保管库访问策略。 如果使用具有 RBAC 权限的密钥保管库,可以使用以下解决方法将密钥保管库链接到变量组:

  1. 创建 ARM 服务连接

  2. 导航到 Azure 门户,找到你的密钥保管库 >访问控制(IAM),然后为服务连接授予适当的 RBAC 角色(密钥保管库机密用户密钥保管库机密管理员 或者根据你的场景)。

    注意

    请确保具有 密钥保管库管理员 角色来创建机密。

  3. 导航回 Azure DevOps 项目,选择 “管道>”。

  4. 选择 “+ 变量组”,然后输入变量组的名称。

  5. 选择 Azure 密钥保管库中的链接机密作为变量 切换以启用它。

  6. 选择服务连接,然后选择“ 授权”。

  7. 从下拉菜单中选择密钥保管库名称。

  8. 选择 “+ 添加”,选择机密,然后选择“ 确定”。

  9. 完成时选择“保存”。

    显示如何将 RBAC 密钥保管库机密链接到变量组的屏幕截图。

注意

服务连接必须在密钥保管库上至少拥有可以在前面步骤中授予的 GetList 权限。 也可以通过以下步骤从 Azure 门户提供这些权限:

  1. 打开密钥保管库 的设置 ,然后选择 “访问配置>转到访问策略”。
  2. “访问策略”页上,如果 Azure Pipelines 项目未在“应用程序”下列出且至少具有“获取”“列出”权限,请选择“创建”
  3. “机密权限”下,选择“ 获取列出”,然后选择“ 下一步”。
  4. 选择主体,然后选择“ 下一步”。
  5. 再次选择“下一步”,查看设置,然后选择“创建”。