【问题标题】:VSTS JSON variable substitution with secrets from Azure Key VaultVSTS JSON 变量替换与 Azure Key Vault 中的机密
【发布时间】:2017-12-12 15:15:39
【问题描述】:

我正在 Visual Studio Team Services 中进行 Azure App Service Deploy (ASP.NET Core 2.0 Web Api) 并想替换 appsettings.json 中的一些值,所以我阅读了https://docs.microsoft.com/en-us/vsts/build-release/tasks/transforms-variable-substitution#jsonvarsubs,但他们谈论的是替换值在文件的嵌套级别中,通过用句点 (.) 连接名称。

问题是不能在 Azure Key Vault 中使用句点 (.)。

有谁知道如何使用 Azure Key Vault 中的 Secrets 在 appsettings.json 文件中用嵌套级别替换变量?

【问题讨论】:

  • 我使用 ARM 模板从 keyvault 设置 appsettings。创建一个 ARM 模板,该模板供应 Web 应用程序并从 keyvault 读取值并使用这些值来设置 appsettings。您可以通过 .parameters.json 文件从 keyvault 读取它们或使用嵌套模板。通过这种方式,您可以在 appsettings 中继续使用句点 (.),并在 keyvault 中使用不同的键名。
  • @ClemensReijnen 谢谢,你把我引向了正确的方向,看看我的回答。

标签: azure asp.net-core azure-devops azure-pipelines-release-pipeline azure-keyvault


【解决方案1】:

我最终在 Azure Key Vault 中使用“ConnectionStrings--Database”作为密钥。

然后在链接到 Azure Key Vault 的 VSTS (https://docs.microsoft.com/en-us/vsts/build-release/concepts/library/variable-groups) 中添加一个“变量组”。

并添加一个名为 ConnectionStrings.Database 的“流程变量”,其值为 '$(ConnectionStrings--Database)。

这样,它会将“流程变量”的值替换为 Azure Key Vault 中的值,并使用“流程变量”的名称在 appsettings.json 中进行替换。

【讨论】:

  • --代替.应该是正确的。您还可以在文档中找到创建密钥库机密和加载配置值(基本示例)docs.microsoft.com/en-us/aspnet/core/security/…:hierarchical values (configuration sections) use -- (two dashes) as a separator
  • @MarinaLiu-MSFT,当我使用带有密钥的 Azure Vault 时,它不会替换我的 appsettings.json 中的值。在 appsettings.json 中的结构是 { "ConnectionStrings": { "Database": "databaseconnectionstring" } }
  • Azure App Service Deploy 任务的构建日志是什么?
  • @MarinaLiu-MSFT 图书馆不会将“--”替换为“。”在从密钥库导入值期间。这是一个主要问题……您需要手动“重新映射”每个管道的流程变量中的所有键,以便获得正确的名称。否则替换任务将不会使用这些变量...目前从 key-vault 作为库导入不可用。
  • 感谢您发布此 Erwin,此文档记录不足。
【解决方案2】:

[从评论转移到回答] 我使用 ARM 模板从 keyvault 设置 appsettings。创建一个 ARM 模板,该模板供应 Web 应用程序并从 keyvault 读取值并使用这些值来设置 appsettings。您可以通过 .parameters.json 文件从 keyvault 读取它们或使用嵌套模板。这样,您可以在 appsettings 中继续使用句点 (.),并在 keyvault 中使用不同的键名。

【讨论】:

    猜你喜欢
    • 2020-05-16
    • 2020-04-26
    • 1970-01-01
    • 2020-12-19
    • 2020-08-27
    • 2020-02-11
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    相关资源
    最近更新 更多