为 (Spring Boot) Java AWS 程序存储 RSA 私钥的位置

Where to store RSA private key for a (Spring Boot) Java AWS program

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

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

*或者我需要将其存储在服务器中的安全位置吗?存储在哪里,安全性如何?

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

Amazon does have an HSM service,但是很贵

下一个最好的存储位置是文件(只有运行您的应用程序的用户拥有和读取)并将其密码存储在 OS 用户环境变量中,这样它就相当安全了默认并且不能签入源代码管理。

如果您现在没有上面提到的 HSM,还有其他选择。他们是:

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

对于金库:

对于 Stack Exchange Blackbox: