我想知道人们在使用Spring Cloud Config时如何处理安全问题。
我计划将Spring Cloud Config Server和Client与Spring Boot一起使用。从实现的角度来看,这是非常直接的,但是如何处理向每个开发人员泄露密码/访问权限的风险。
例如您运行一个包含所有环境配置的中央配置服务器。在配置客户端应用的bootstrap.yml
中,您必须配置username
/ password
才能访问配置服务器。到目前为止一切都很好,但是当我知道在相应的yml文件中提交用户名/密码时,每个开发人员都可以通过仅从例如切换配置文件来访问所有环境。 development
到production
(请不要开始讨论为什么不是每个开发人员都需要访问制作)。
我知道我可以对配置中的所有密码进行加密,我们这样做,但这不是我想要的。加密只是没有密码在文件中存储明文的功能,但如果用户首先可以访问配置服务器,则不需要知道普通密码才能获得访问权。
这也是为了避免在开发过程中出现错误......只需轻松切换本地环境即可连接到生产环境或任何其他环境。
那么人们如何处理这个?您是否在其他环境中为开发中注入了不同的bootstrap.yml
?如果是这样,你如何管理/传播这些?
您是否在comandline上设置配置用户的密码? ...?
答案 0 :(得分:0)
我们使用配置服务器URL,用户和密码的变量和默认值
$ {config_username:用户}:$ {config_password:密码} @ $ {config_server:conf.mydomain.com}
默认值可以是开发环境的有效凭据,这样您只需在开发时运行它。部署到生产环境时,只需设置这些环境变量,您的应用程序将连接到不同的配置服务器
答案 1 :(得分:0)
我自己在考虑这个问题,提出了3个选择。在所有情况下,请在仓库中为敏感数据使用{cipher}值,并禁用各种执行器端点,以允许解密或属性值列表。