授予 Azure DevOps ARM 服务连接对 Key Vault 的访问权限

问题描述 投票:0回答:1

我正在尝试在 Azure DevOps 管道中预先播种带有秘密的密钥保管库。 密钥库是在上一步中使用 ARM 生成的。

我尝试创建一个 DevOps 服务连接,使用“Azure 资源管理器”作为连接类型,并且尝试了工作负载身份联合和服务主体作为身份验证方法,但是,当尝试在密钥保管库上添加访问策略时,服务连接未列出。

如何允许我的服务连接访问我的密钥保管库?

azure azure-devops azure-keyvault azure-service-principal
1个回答
0
投票

我必须在这里猜测一下,因为您没有展示您的模板。

如果您使用

accessPolicies
来授予对 keyvault 机密的访问权限,则必须在 KV 模板中声明
accessPolicies
数组,所以我猜测您要么已将其指定为
accessPolicies: []
(空数组) ,或者那里有其他条目,其中不包括您用于服务连接对象 ID 的条目。

所以...当您在后续步骤中添加服务连接的访问策略(附加到数组)时,每次部署 keyvault-template 时都会有效地重置/擦除它,因为它不是一部分keyvault-template 中定义的数组。

如果是这种情况,解决此问题的一些建议如下:

  1. 确保服务连接对象 ID 的访问策略条目已经是 KV 模板部署的一部分
  2. 改为使用 Azure RBAC 角色进行访问 (
    enableRbacAuthorization: true
    ),然后一旦在 KV 或 RG 上添加 RBAC 角色分配,KV 模板部署就不会重置/擦除它,因为它是在外部处理的KV 模板(通常也建议切换到 Azure RBAC 进行访问)。

如果我的假设是错误的并且这实际上都不是问题,那么请详细说明!

© www.soinside.com 2019 - 2024. All rights reserved.