nacos icon indicating copy to clipboard operation
nacos copied to clipboard

mysql数据库连接密码加密

Open hhfdna opened this issue 2 years ago • 12 comments

我们的系统对各类密码要求比较严格,所有数据库连接参数必须使用密文配置。不允许出现明文。 nacos目前的db.password好像只能配置为明文密码。这样运维人员直接就能看到mysql密码,无法满足我们运维的安全性要求

能否提供功能可以配置为密文,nacos服务通过解密在连接mysql?

hhfdna avatar Jun 24 '22 00:06 hhfdna

mysql jdbc好像接受密文密码,直接配置mysql jdbc可识别的密文密码应该就可以了。

KomachiSion avatar Jun 24 '22 06:06 KomachiSion

如果需要自定义加密算法,那只能自行修改nacos源代码,然后打包部署了。

KomachiSion avatar Jun 24 '22 06:06 KomachiSion

具体可以说下mysql怎么配置密文密码吗

hhfdna avatar Jun 24 '22 23:06 hhfdna

如果需要自定义加密算法,那只能自行修改nacos源代码,然后打包部署了。

为什么不可以在产品层面进行开发支持呢,预留出扩展接口进行密码解密操作,这个在我们企业级里面几乎是都要求的

wuchubuzai2018 avatar Jun 25 '22 10:06 wuchubuzai2018

如果需要自定义加密算法,那只能自行修改nacos源代码,然后打包部署了。

为什么不可以在产品层面进行开发支持呢,预留出扩展接口进行密码解密操作,这个在我们企业级里面几乎是都要求的

确实是,建议预留出来扩展点,能让客户自定义解密配置

hhfdna avatar Jun 27 '22 06:06 hhfdna

欢迎大家把方案提出来。然后尝试处理这个需求。

KomachiSion avatar Jun 27 '22 07:06 KomachiSion

可以提供一个类似于 spring boot 的 EnvironmentPostProcessor,作用于配置文件解析为环境配置对象后的时间点,其实不仅仅是密码的问题,如果用户能介入配置文件加载后的处理过程,就可以完全脱离现有配置文件的束缚,按自己的想法自定义很多行为。

changhr2013 avatar Jun 27 '22 12:06 changhr2013

可以借鉴一下 Druid 的密码加密方案

onewe avatar Jun 28 '22 07:06 onewe

我们现在是监听ApplicationEnvironmentPreparedEvent事件,然后调用自己的解密算法解密加密配置来在运行时解密

hujun-w-2 avatar Jun 30 '22 12:06 hujun-w-2

可以参见这个实现,非常通用的方式 https://github.com/fuxiuzhan/fuled-component/tree/master/fuled-env-encryptor-starter 或者直接使用jasypt插件。

fuxiuzhan avatar Jul 04 '22 10:07 fuxiuzhan

有道理,现在安全要求提高了很多, 例如检查到配置文件存了数据库的明文密码,不管你是否业务数据库,直接就不给通过了。 希望官方可以支持一下

LeoGZ avatar Jul 05 '22 07:07 LeoGZ

我想法是在,我参考鉴权插件定义一个Environment 前置处理插件,提供spi。 EnvUtil.setEnvironment 处加载该插件,让用户自定义解密配置。 如果这个方案可行,我能尝试处理这个需求。

godhth avatar Aug 09 '22 03:08 godhth

我想法是在,我参考鉴权插件定义一个Environment 前置处理插件,提供spi。 EnvUtil.setEnvironment 处加载该插件,让用户自定义解密配置。 如果这个方案可行,我能尝试处理这个需求。

有进展吗?期待能提供通用的解决方案。

hhfdna avatar Aug 12 '22 03:08 hhfdna

Please assign to me

godhth avatar Oct 09 '22 11:10 godhth