如何在 Azure DevOps Pipeline 中将机密信息写入 Azure Key Vault?

4
我已经通过ARM在Azure DevOps中创建了一个密钥保管库,现在我想在同一流水线中向其中写入一个密钥。
我创建了一个Azure PowerShell任务,并使用以下内联PowerShell:
$secretvalue = ConvertTo-SecureString $(Secret) -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName $(VaultName) -Name $(SecretName) -SecretValue (ConvertTo-SecureString $(Secret) -AsPlainText -Force)

关键保险库创建成功,但尝试写入密钥时出现以下错误:
[error]访问被拒绝

如果我在本地计算机上运行 Set-AzureKeyVaultSecret,它可以正常工作。

编辑

这里是一些我所做的截图。在 Azure DevOps 中,我创建了一个服务连接并进行了验证:

enter image description here

这是我的Azure PowerShell任务,用于将密码写入保险库:

enter image description here

enter image description here

enter image description here

密钥保管库权限:

enter image description here

enter image description here

我需要单独创建一个服务主体还是需要创建一个应用程序注册?

2个回答

3

很确定您将权限授予了错误的实体。要找到正确的实体,请执行以下操作。

Azure 订阅 字段中单击 管理 链接,它会导航到新的刀片上。然后单击那里的 管理服务主体 。它将带您进入 Azure AD 中的应用程序页面。之后,您可以复制 本地目录中托管的应用程序 字段下的名称,并使用该名称授予 Key Vault 权限。


1
就是这样!我还将objectId添加到了我的ARM模板参数中,因此当密钥保管库部署时,Azure DevOps可以访问写入密码。一切都很好。 - Mark Allison

2

我已经这样做了,并编辑了我的问题以展示截图。它仍未正常工作。我需要在服务连接方面做些什么其他的吗? - Mark Allison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接