何处为(Spring Boot)Java AWS程序存储RSA私钥

时间:2015-12-16 21:48:26

标签: java amazon-web-services spring-boot rsa

所以我有一个Java(Spring Boot)应用程序,我使用来自亚马逊的RSA密钥。目前,这是.pem格式,并存储在我的项目内的本地文件夹中。

但是,当我将应用程序部署到Web(AWS)时,我应该将它存储在哪里:

  • 可以将其存储在其他格式中,最好在application.properties中使用吗?

  • 我可以将RSA密钥用作字符串,还是始终来自文件?

*或者我是否需要将其存储在服务器中的安全位置哪里会有多安全?它有多安全?

  • 我还有其他选择吗?

2 个答案:

答案 0 :(得分:3)

存储私钥的最佳位置是智能卡或硬件安全模块(HSM),因此密钥永远不会被盗。

Amazon does have an HSM service,但价格昂贵。

存储它的下一个最佳位置是在一个文件中(仅由您的应用运行的用户拥有和读取)并将其密码存储在OS用户环境变量中,因此默认情况下它是合理安全的,无法检入来源控制。

答案 1 :(得分:1)

如果您现在没有如上所述的HSM,则还有其他选择。他们是:

  1. Pivotal正在处理Spring Cloud Vault项目。这比环境变量要好得多。如果您无权访问HSM,则可以将文件路径存储在Vault中
  2. Stack Exchange,是的,这些家伙正在研究Stack Exchange Blackbox,它可以加密整个密钥并从API加载。如果您不需要使用docker并可以手动启动该应用程序(因为您将提供用于访问密钥的密码),则这是一个更好的选择。

对于保险柜:

对于Stack Exchange黑盒: