生产环境数据库密码等私密信息怎么设置?

2021-01-01 10:49:31 +08:00
 Zrehtt

转行过来的,没有接触过这个,看入门教程都是直接在代码中写,但生产环境肯定不行。是写入配置文件里还是怎么操作的?

3629 次点击
所在节点    程序员
20 条回复
loading
2021-01-01 10:54:46 +08:00
一般写配置文件,起码我看到很多产品都是。
Jacky23333
2021-01-01 10:55:11 +08:00
有个配置中心 Server,项目启动会自动从配置中心加载数据库信息
oott123
2021-01-01 10:55:13 +08:00
配置文件 /环境变量 /分布式配置系统( etcd 之类的)
ginjedoad
2021-01-01 11:39:21 +08:00
用 appolo 或者 etcd 建一个数据中心,你的项目初始化的时候读取一次配置中心的配置,加载到内存。设置一个回调事件,监听配置中心变动。有变动,马上更新全局配置值,perfect!
wpblank
2021-01-01 11:59:41 +08:00
一般就写配置文件就好了,新手注意一下别把密码随代码传到公共的 git 上
YouLMAO
2021-01-01 12:19:55 +08:00
我们用的 sql,nosql,newsql,全部都是 kerberos 验证,MySQL 是美国定制安全版的
YouLMAO
2021-01-01 12:20:38 +08:00
都 2021 了,还用密码登录,就是侮辱先人了
Zrehtt
2021-01-01 12:44:23 +08:00
@ginjedoad 了解了,非常感谢
hantsy
2021-01-01 13:12:31 +08:00
Vault
hantsy
2021-01-01 13:13:29 +08:00
大部分云环境都是支持 https://www.vaultproject.io/ 或者类型的产品。
hantsy
2021-01-01 13:13:55 +08:00
所谓的数据堡垒,保险箱。
yeqizhang
2021-01-01 13:18:13 +08:00
代码写和配置文件里写没啥本质区别,甚至代码写安全性更高,只是为了维护方便就用配置文件。
为了通过第三方代码安全扫描,会加盐加密配置在配置文件,代码里解密使用
makdon
2021-01-01 13:19:06 +08:00
写配置文件。生产上网络隔离,外部访问生产集群只允许通过网关鉴权后访问 server 层机器,DB 不允许非白名单机器访问
xuanbg
2021-01-01 14:29:10 +08:00
既不写在代码里面,也不写在配置文件里面。正确的做法是保存在配置中心,由专职的运维人员管理和维护。
danieladu
2021-01-01 14:38:00 +08:00
key vault
boris93
2021-01-01 15:06:28 +08:00
写在密钥库,搭配 CICD 工具在构建过程中注入
比如 Concourse + Vault
smilingsun
2021-01-02 07:04:38 +08:00
@boris93 是把密码写到了 artifact 里面?
xiaochong0302
2021-01-02 09:03:15 +08:00
@yeqizhang 之前项目用 ansible 搞过,想想就蛋疼
haosamax
2021-01-02 11:28:14 +08:00
配置中心
boris93
2021-01-02 22:29:12 +08:00
@smilingsun #17 我们用的是 AppEngine,所以最终状态下配置文件里还是占位符,运行时通过 AppEngine 的配置文件,用环境变量传进去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX