将 KeyVault 访问集成到 VSTS 发布任务中

Integrating KeyVault access into VSTS Release task

我试图找出编写一个控制台应用程序所涉及的内容,该应用程序将 运行 作为 VSTS 发布任务的一部分,并且该程序将从预配置的密钥库中读取连接字符串(机密),然后使用该连接字符串连接到 Azure SQL 数据库并应用一些更改。

目前我的 Web 应用程序连接到 KeyVault 和 Azure SQL 服务器 使用 Azure AD 应用程序令牌身份验证,所以我知道这方面涉及的内容。

当您在代理设置页面上选中 "Allow scripts to access OAuth token" 时, 可以使用此令牌(使用 ADAL)连接到 KeyVault 和 SQL 服务器吗? (假设 VisualStudioSPNxxx 具有对上述资源的适当访问权限)。

如果不是,我应该寻找什么?

vsts 令牌(允许脚本访问 OAuth 令牌)不能用于连接到 KeyVault。

您需要向 Azure Active Directory 注册应用程序并启用与 Azure Active Directory 和 Key Vault 的通信,然后动态获取连接字符串。

更多信息,您可以参考:Protecting Secrets using VSTS and Azure Key Vault

现在有了可变组,这变得相对容易了 - https://docs.microsoft.com/en-us/vsts/pipelines/library/variable-groups?view=vsts

您可以通过将您的 Azure KV 连接到一个变量来 link 一个秘密,然后像通常在任何 script/task.

中使用它一样使用这个变量