问题描述 投票:0回答:4
I使用此服务主体创建了一个服务端点,并将其用来部署到Azure,但是在尝试检索KeyVault Secrets时,我会遵循

error

2018-05-21T12:18:53.9240364z ## [错误]获取秘密失败。错误: 拒绝访问。指定的Azure端点需要获取,列出秘密 所选密钥库的管理权限。设置这些 权限,从 构建/发布日志并执行或从Azure Portal设置它们。

当错误仍出现时。 nave驱动到您的Azure键库。检查您的访问政策

*

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

azure azure-devops azure-pipelines-release-pipeline azure-keyvault azure-rm-template
4个回答
12
投票
以Azure DevOps项目>项目设置>服务连接>选择服务主体>单击“管理服务主体”。 Azure中的服务主名的记录 naver驱动到您的Azure键Vault.

在访问控制(IAM)中,单击“添加角色分配”

选择密钥保险库秘密用户。单击Next.

选择会员。寻找您的服务校长(步骤1)

然后评论 +分配
  1. 单击再次授权在DevOps
  2. *
  3. 如果选择保管库访问策略
  4. 返回Azure DevOps,然后单击两次授权按钮
  5. 0)转到您的变量库
  6. 1)tick tick
  7. Link secrets from an Azure key vault as variables

2)选择订阅

3)选择钥匙库
  1. 4)单击
  2. Authorize

9
投票
我确定在任务中选择钥匙库时曾经有一个

Authorize

按钮,但是我可能会误解。只是沉没2小时来弄清楚这一点....

记录跟踪

Herey

如果打开防火墙,开发服务器还需要能够通过防火墙访问钥匙值(“允许在防火墙和虚拟网络页面上从...访问”)。  

我相信,网络访问变量的密钥vault访问是通过AZDEVOPS的非代理部分来完成的,但我还没有弄清楚如何将这些服务器弄清楚。

在“允许受信任的Microsoft Services Byass此防火墙”上转移

DID不起作用。  
我必须允许访问“所有网络”作为最简单的解决方案来解决此问题。

使用代理任务而不是可变组的其他

Safer选项是.. enter image description here 在AzureVM

中拥有自己的代理池 ther ..

将其连接到一个私人VNET,该私人VNET也已连接到KeyVault或... the thekeyVault

中的代理商的公共终点

4
投票

使用Kayvault任务(即将秘密作为管道的一部分读取秘密)。

希望这有帮助。 马克

您需要设置遵循主体选定的权限。 主要格式为:

account-<VSTS project name you are build/deploy>-ID

the以下设置权限的确定步骤如下:

在Azure Portal->转到Azure键值 - >访问策略 - >添加新 - >选择模板并指定权限(必须设置get and listPermission) - > select principal--> select principal-> principal start -live in timant in(例如,我的VSTS项目名称ins示例中) -

  1. 然后在VSTS版本中再次部署,它可以下载Azure键保管库成功。
    1. 我有MARKD的问题,但我不想启用
    2. account-VSTSProjectName
    3. 选项。因此,我发现您需要根据您的区域允许的IPS列表:
  2. MyTest
  3. 即将在下面的屏幕截图中找到您的资源位置的IP范围,并在字段3中输入IP范围。不要忘记保存(数字4)。


4
投票

这也可能是由于密钥库使用基于Azure角色的访问控制密钥库(Azure RBAC)的事实引起的。 根据

官方文档
将可变组与秘密联系起来,在此类密钥库中不支持。

错误是在问题中,并且是否显示授权按钮(似乎并非总是如此),单击它会导致以下错误:

all networks

this this Microsoft开发人员社区线程正在讨论此错误,得出的结论是,它是由RBAC不支持引起的。 enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.