很多配置项信息比较敏感,不应该明文存储,请问有人实现配置项加密的方法吗?
Q
[eggjs/egg]egg有数据库配置项加密的方法吗?
0
A
回答
0
一般这种是通过容器层的环境变量注入。
3
一般这种是通过容器层的环境变量注入。
将config文件设置gitignore还是,部署前直接覆盖呢
9
指的是 Docker 容器,在 config.prod.js 里面写入秘钥是 someKey = process.env.xxx 的方式。
至于线下其他环境的,可以在 CLI 启动脚本做一些事,但关键是加密逻辑不能只在本地,你们需要有一个可靠的手段来判断运行这段代码的人或机器,从而做私有的加密。(不一定需要做到这一步)
5
CI 上也是都有 环境变量 注入能力的。 本地的话,其实还好,都是开发数据库啥的,跟线上不是一套 key
1
CI 上也是都有 环境变量 注入能力的。 本地的话,其实还好,都是开发数据库啥的,跟线上不是一套 key
这种注入也是在运维层面来说明文的吧, https://eggjs.org/zh-cn/advanced/plugin.html#动态创建实例 通过这个实例化前去解密真正的账号密码,是不是更好的答案,不过也就是提高了门槛。
2
- 如果你部署后的源码都能被人接触到了,那任何安全措施都没有意义了。
- 手段不重要,关键在于秘钥要分环境隔离,并且同个秘钥跟应用、环境相关,即使被拿走秘钥,在其他应用中也无法解出来。
7
- 如果你部署后的源码都能被人接触到了,那任何安全措施都没有意义了。
- 手段不重要,关键在于秘钥要分环境隔离,并且同个秘钥跟应用、环境相关,即使被拿走秘钥,在其他应用中也无法解出来。
那可以提供一个读取config.yaml 这样的文件功能吗,因为如果环境变量里读和设置确实没有在容器中设置config map 方便
1
你直接在 config.default.js 里面去 require 这个文件然后赋值不就完了?
7
你直接在 config.default.js 里面去 require 这个文件然后赋值不就完了?
我也是这样做的,但是更希望能官方能提供这样的能力,因为官方可以约束require的方式,更方便debug