【发布时间】:2012-03-17 06:16:33
【问题描述】:
我们正在使用 TeamCity 部署持续集成环境。当我们完成 CI 流程并转向持续部署时,我们遇到了如何管理生产密码的问题。对于配置中的其他更改,我们使用 Web.Config 转换。但是,我真的不想在构建配置文件中烘焙生产密码。
在 CI/CD 之前,我们将获取 Web.config,使用 aspnet_regiis 解密连接字符串,更改密码,然后重新加密。显然,这很容易出错,而且完全不符合 CI/CD 的精神。
我还有其他几个想法,基本上都是关于在部署脚本中使用某些东西来重写然后加密文件的连接字符串部分,但这似乎是一个常见问题,并且必须是一些普遍接受的解决方案。但到目前为止,我找不到它。有没有“正道”?
谢谢!
【问题讨论】:
-
如果您要使用 CD,那么显然您构建/部署链中的 something 必须知道密码(或密码的代理)。
-
@Damien_The_Unbeliever 是的,但可以是 TeamCity 服务器,与您的 VCS 不同的人可以访问该服务器。
-
这篇文章概述了为什么以及如何在代码和 CI/CD 中避免明文凭据:medium.com/twodigits/…
-
本文介绍了如何在 TeamCity 中管理凭据:pinter.org/archives/3681 请注意,到目前为止,这仅提供有限的安全性,因为密码只是加扰,请参阅:youtrack.jetbrains.com/issue/TW-45181
标签: c# asp.net-mvc continuous-integration teamcity