如何在VSTS测试期间阅读kay vault秘密

时间:2018-03-23 21:34:25

标签: azure-devops azure-keyvault

我在VSTS中遇到Azure Key Vault步骤的问题。我将步骤链接到我的密钥保险库,这可以正常工作。

此步骤已成功

2018-03-23T21:12:08.8733257Z使用以下内容下载秘密:https://xxx.vault.azure.net/secrets?maxresults=25&api-version=2016-10-01。 2018-03-23T21:12:09.9618492Z在xxx中发现的秘密数量:10 2018-03-23T21:12:09.9619452Z找到xxx的已启用和未到期机密的数量 2018-03-23T21:12:09.9640507Z下载秘密值:xxx

但是当我运行它时,我不能做的就是在我的测试中阅读这些秘密 我使用ConfigurationBuilder(读取env变量)和Microsoft.Azure.Services.AppAuthentication(用于MSI auth访问密钥保险库),测试运行时API既不能查看也不会读取此变量。 我还尝试使用其他脚本将build变量转换为使用echo和$ env的环境变量:auth0:clientDomain =“$(auth0-clientDomain)”,两者都不起作用。

所以基本上我的问题是如何从VSTS上的测试中读取Azure Key Vault的秘密。

由于

1 个答案:

答案 0 :(得分:0)

秘密变量不会被解密为环境变量,因此默认情况下,构建步骤运行的脚本和程序不会被授予访问权限。 Secret Variables

例如:密钥保险库中的密码(名称:s1),您可以访问$(s1)之类的值,但不能像$env:s1那样访问它。 (PowerShell任务)

解决方法是您可以通过Token Replace任务(或其他方式)将标记值替换为文件中密钥保管库密码的值