无法通过VSTS版本中的服务端点访问keyvault机密

fvl*_*fvl 5 azure azure-keyvault azure-devops azure-rm-template azure-pipelines-release-pipeline

我们正在尝试使用VSTS中的下载密钥保险库秘密发布任务下载机密.

服务主体是添加密钥保险库的访问策略,检查所有权限,包括获取,列出机密.

我使用此服务主体创建了一个服务端点,并使用它来部署到Azure,但在尝试检索keyvault机密时出现以下错误:

2018-05-21T12:18:53.9240364Z ## [错误]获取机密失败.错误:访问被拒绝.指定的Azure端点需要在所选密钥保管库上具有Get,List秘密管理权限.要设置这些权限,请从构建/发布日志下载ProvisionKeyVaultPermissions.ps1脚本并执行它,或者从Azure门户设置它们.

小智 9

当错误仍然出现时。

导航到您的 Azure 密钥保管库。检查您的访问策略

*如果选择 Azure 基于角色的访问控制

  1. 在 Azure DevOps 项目 > 项目设置 > 服务连接 > 选定的服务主体 > 单击管理服务主体。
  2. 记下 Azure 中的服务主体名称
  3. 导航到您的 Azure 密钥保管库。
  4. 在访问控制 (IAM) 下,单击添加角色分配
  5. 选择密钥保管库机密用户。点击下一步。
  6. 选择成员。查找您的服务主体(在步骤 1 中)
  7. 然后审核+分配
  8. 在 Dev Ops 中再次单击“授权”

*如果选择了保管库访问策略

  1. 返回 Azure DevOps,然后单击“授权”按钮两次


Mar*_*oxx 6

0)转到您的变量库

1)勾选 Link secrets from an Azure key vault as variables

2)选择订阅

3)选择金库

4)点击 Authorize

ACL将由MS完成,您将能够使用密钥库任务。

我确定Authorize在任务中选择键保险库时曾经有一个按钮,但是我可能记错了。只需下沉2小时即可解决此问题。

在此处输入图片说明

此处跟踪的问题


Mar*_*Liu 3

您需要为所选的正确主体设置权限。主要格式为:

account-<VSTS project name you are build/deploy>-ID
Run Code Online (Sandbox Code Playgroud)

设置权限的详细步骤如下:

在 Azure 门户中 -> 转到 Azure 密钥保管库 -> 访问策略 -> 添加新的 -> 选择模板并指定权限(必须设置 Get 和 Listpermission) -> 选择主体 -> 搜索主体开头(例如我的account-VSTSProjectNameVSTS项目名称MyTest在下面的示例中) - >选择 - >确定。

在此输入图像描述

然后在VSTS版本中再次部署,就可以成功下载Azure Key Vault。