Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 微服务中的密钥管理_Java_Mysql_Security_Encryption_Dropwizard - Fatal编程技术网

Java 微服务中的密钥管理

Java 微服务中的密钥管理,java,mysql,security,encryption,dropwizard,Java,Mysql,Security,Encryption,Dropwizard,我们有一个dropwizard微服务,可以访问MySQL数据库。目前,我们将数据库访问的加密凭据存储在配置文件(env.properties)中,以便在部署时通过每个环境的ansible脚本对其进行更改 加密密钥是我们解密凭证所需要的,关于如何存储它存在一些争论。 一些选择: 将密钥存储在配置文件中。密钥也是特定于环境的,因为我们使用ansible部署代码,所以凭据和密钥不会存储在microservice存储库中。这里的缺点是加密密码与解密密钥存储在同一个文件中 将密钥存储在启动脚本中,该脚本

我们有一个dropwizard微服务,可以访问MySQL数据库。目前,我们将数据库访问的加密凭据存储在配置文件(env.properties)中,以便在部署时通过每个环境的ansible脚本对其进行更改

加密密钥是我们解密凭证所需要的,关于如何存储它存在一些争论。 一些选择:

  • 将密钥存储在配置文件中。密钥也是特定于环境的,因为我们使用ansible部署代码,所以凭据和密钥不会存储在microservice存储库中。这里的缺点是加密密码与解密密钥存储在同一个文件中
  • 将密钥存储在启动脚本中,该脚本将值加载到环境变量中。Ops不喜欢这样,因为他们必须管理两个文件。目前,他们只希望管理单个环境属性文件。这是可以理解的,因为我们在管理一个文件时遇到了足够多的问题

管理此解密密钥的最佳实践是什么?

好的,您可以使用。有第三方模块做类似的事情:他们的方法有点不同:您在某处创建一个单独的密钥文件。然后用这个密钥文件加密一些值。用配置文件中的加密值替换原始值。它们似乎支持RSA密钥对—公钥和私钥。为什么要对conf文件上的凭据进行加密?我们使用信用卡和信用卡。buildbot拥有要解密的密钥,并在conf文件中输入正确的值。没有开发人员能看到这个值。好吧,你可以使用。有第三方模块做类似的事情:他们的方法有点不同:你在某处创建一个单独的密钥文件。然后用这个密钥文件加密一些值。用配置文件中的加密值替换原始值。它们似乎支持RSA密钥对—公钥和私钥。为什么要对conf文件上的凭据进行加密?我们使用信用卡和信用卡。buildbot拥有要解密的密钥,并在conf文件中输入正确的值。没有开发人员可以看到该值。