如何从 Azure DevOps 管道将机密写入 azure key Vault?

Mar*_*son 5 powershell azure azure-keyvault azure-devops

我已经使用 ARM 在 Azure DevOps 中创建了一个 Key Vault,现在我想在同一管道中向它写入一个密钥。

我使用以下内联 PowerShell 创建了一个 Azure PowerShell 任务:

$secretvalue = ConvertTo-SecureString $(Secret) -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName $(VaultName) -Name $(SecretName) -SecretValue (ConvertTo-SecureString $(Secret) -AsPlainText -Force)
Run Code Online (Sandbox Code Playgroud)

密钥保管库创建得很好,但在尝试写入密钥时出现以下错误:

[error]Access denied

如果我Set-AzureKeyVaultSecret在本地机器上运行它工作正常。

编辑

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

在此输入图像描述

以下是将机密写入保管库的 Azure PowerShell 任务的样子:

在此输入图像描述

在此输入图像描述

在此输入图像描述

密钥保管库权限:

在此输入图像描述

在此输入图像描述

我是否需要单独的服务主体,或者是否需要创建应用程序注册?

4c7*_*b41 3

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

单击字段Manage中的链接Azure Subscription,它将导航到新刀片。点击Manage Service Principal那里。它将带您进入 Azure AD 中的应用程序页面。之后,您可以复制Managed application in local directory字段下的名称并使用该名称授予其 Key Vault 权限。