【发布时间】:2019-11-07 23:09:13
【问题描述】:
我正在处理一个 asp.net 核心项目,我正在尝试弄清楚如何让我的源代码和管道 100% 保密。
我有一个运行 azure 代理的 VM 和一个用于构建和发布的 azure dev ops 管道。 如果我删除 VM 上的站点,发布管道将自动为我重新创建它并部署最新版本。
超级酷。
现在我阅读了配置 .Net 核心应用程序的最佳实践并找到了这篇文章:https://www.humankode.com/asp-net-core/asp-net-core-configuration-best-practices-for-keeping-secrets-out-of-source-control
因此,在代码中保密是个坏主意,这是完全合理的。 但是,如果我将相同的安全主体应用于 Yaml,那么我当然也不应该在我的管道中放置秘密。 但是我需要管道能够从头开始重新创建站点,并且它应该可以正常工作。不知何故,该站点需要知道它的默认 sql 连接在哪里,或者它需要有一个 azure 应用配置服务的密钥。我不应该在每次发布后都登录虚拟机并手动创建 appsettings.json!
因此,无论网站需要操作什么,都需要包含在管道中,因此需要一些工件,或者包含在代码中。
我已经用谷歌搜索了好几天,但我似乎找不到任何关于如何完全自动化的信息。 我考虑过创建一个从实际 VM 注册表读取的自定义配置提供程序,但这也感觉不对。 我基本上需要一个不在站点本身托管的配置选项。所以我在虚拟机上设置了一次,再也没有。
【问题讨论】:
-
还有secure files,您可能会发现它对您的场景很有用。
-
这两个答案都非常有用,谢谢。 JDBennet 的解决方案最适合我,欣赏细节并同意灵活性。
标签: iis .net-core configuration azure-devops azure-pipelines-release-pipeline