发布
社区首页 >问答首页 >环境变量中的数据库凭据?

环境变量中的数据库凭据?
EN

Stack Overflow用户
提问于 2018-11-15 16:10:52
回答 3查看 2.9K关注 0票数 3

Stackoverflow和其他站点上的许多开发人员建议将数据库密码存储在环境变量中。我们正在使用Spring Boot,我们想知道这是否真的是避免在application.properties文件中使用明文密码的好方法(安全且常见),即使在生产环境中也是如此?如果不是,更好的解决方案是什么?

请注意,DEV和PROD需要不同的.properties文件。

EN

回答 3

Stack Overflow用户

发布于 2018-11-15 16:22:54

我建议你去看看Spring Cloud Config

Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。

功能:

春季云配置服务器功能:

用于外部配置的基于资源的

  • HTTP (名称-值对,或等效的YAML和解密属性值)(在使用@EnableConfigServer

的Spring Boot应用程序中轻松实现对称或asymmetric)

  • Embeddable

Spring特性(用于应用程序):

使用远程属性sources

  • Encrypt和解密属性值(对称或非对称)
  • 绑定到配置服务器并初始化

您可以找到配置服务器here的工作示例

票数 0
EN

Stack Overflow用户

发布于 2018-11-15 17:04:26

这完全取决于您部署应用程序的方式。Spring Boot使用特定的顺序来设置属性。请参阅:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

有不同的方法可以不让你的密码暴露太多,但它总是对有足够访问权限的人可见,如果他们知道去哪里看的话。

例如:如果您运行应用程序I docker,您可能希望将所有密码设置为环境变量。

但另一个示例是在启动应用程序时将它们设置为属性

代码语言:javascript
代码运行次数:0
复制
$ java -jar myproject.jar --property=value

你必须选择最适合你需求的东西。

票数 0
EN

Stack Overflow用户

发布于 2018-11-15 17:34:00

您可以通过Spring Boot:https://projects.spring.io/spring-vault/使用云存储库,或者如果使用HashiCorp:https://cloud.spring.io/spring-cloud-vault/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53314933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档