如何从 Azure DevOps 管道向 Azure Key Vault 写入秘密?
How to write a secret to azure key vault from Azure DevOps pipeline?
我已经使用 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)
密钥保管库创建正常,但在尝试写入密钥时出现以下错误:
[error]Access denied
如果我 运行 Set-AzureKeyVaultSecret
在本地机器上运行正常。
编辑
这是我所做的一些截图。在 Azure DevOps 中,我创建了一个服务连接并验证了它:
这是我的 Azure PowerShell 任务将机密写入保管库的样子:
Key Vault 权限:
我需要一个单独的服务主体还是需要创建一个应用程序注册?
检查您对 ARM 服务连接的权限以及您保管库中的权限。检查步骤如下:https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-key-vault?view=vsts
很确定您将权利授予了错误的实体。要找到合适的实体,请执行此操作。
单击 Azure Subscription
字段中的 Manage
link,它将导航到一个新的 blade。单击那里的 Manage Service Principal
。它将带你到 Azure AD 中的应用程序页面。之后,您可以在 Managed application in local directory
字段下复制名称并使用该名称授予它 Key Vault 权限。
我已经使用 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)
密钥保管库创建正常,但在尝试写入密钥时出现以下错误:
[error]Access denied
如果我 运行 Set-AzureKeyVaultSecret
在本地机器上运行正常。
编辑
这是我所做的一些截图。在 Azure DevOps 中,我创建了一个服务连接并验证了它:
这是我的 Azure PowerShell 任务将机密写入保管库的样子:
Key Vault 权限:
我需要一个单独的服务主体还是需要创建一个应用程序注册?
检查您对 ARM 服务连接的权限以及您保管库中的权限。检查步骤如下:https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-key-vault?view=vsts
很确定您将权利授予了错误的实体。要找到合适的实体,请执行此操作。
单击 Azure Subscription
字段中的 Manage
link,它将导航到一个新的 blade。单击那里的 Manage Service Principal
。它将带你到 Azure AD 中的应用程序页面。之后,您可以在 Managed application in local directory
字段下复制名称并使用该名称授予它 Key Vault 权限。