为 (Spring Boot) Java AWS 程序存储 RSA 私钥的位置
Where to store RSA private key for a (Spring Boot) Java AWS program
所以我有一个 Java(Spring 引导)应用程序,我在其中使用来自亚马逊的 RSA 密钥。目前这是 .pem
格式并存储在我的项目中的本地文件夹中。
但是当我将我的应用程序部署到 Web (AWS) 时我应该将它存储在哪里:
可以用其他格式存储,最好在 application.properties?
中使用
我可以将 RSA 密钥用作字符串还是它总是来自文件?
*或者我需要将其存储在服务器中的安全位置吗?存储在哪里,安全性如何?
- 我还有其他选择吗?
存储私钥的最佳位置是在智能卡或硬件安全模块 (HSM) 中,这样密钥就永远不会被盗。
Amazon does have an HSM service,但是很贵
下一个最好的存储位置是文件(只有运行您的应用程序的用户拥有和读取)并将其密码存储在 OS 用户环境变量中,这样它就相当安全了默认并且不能签入源代码管理。
如果您现在没有上面提到的 HSM,还有其他选择。他们是:
- Pivotal 正在处理 Spring Cloud Vault 项目。这比环境变量好得多。如果您无权访问 HSM,则可以将文件路径存储在 Vault
- Stack Exchange,是的,这些人正在研究 Stack Exchange Blackbox,它可以加密整个密钥并从 API 加载。如果您不需要使用 docker 并且可以手动启动应用程序,这是一个更好的选择,因为您将提供密码来访问您的密钥。
对于金库:
- 见
https://medium.com/@Ankitthakur/spring-boot-spring-vault-e9e973a17036
- 另见 https://spring.io/guides/gs/vault-config/
对于 Stack Exchange Blackbox:
所以我有一个 Java(Spring 引导)应用程序,我在其中使用来自亚马逊的 RSA 密钥。目前这是 .pem
格式并存储在我的项目中的本地文件夹中。
但是当我将我的应用程序部署到 Web (AWS) 时我应该将它存储在哪里:
可以用其他格式存储,最好在 application.properties?
中使用
我可以将 RSA 密钥用作字符串还是它总是来自文件?
*或者我需要将其存储在服务器中的安全位置吗?存储在哪里,安全性如何?
- 我还有其他选择吗?
存储私钥的最佳位置是在智能卡或硬件安全模块 (HSM) 中,这样密钥就永远不会被盗。
Amazon does have an HSM service,但是很贵
下一个最好的存储位置是文件(只有运行您的应用程序的用户拥有和读取)并将其密码存储在 OS 用户环境变量中,这样它就相当安全了默认并且不能签入源代码管理。
如果您现在没有上面提到的 HSM,还有其他选择。他们是:
- Pivotal 正在处理 Spring Cloud Vault 项目。这比环境变量好得多。如果您无权访问 HSM,则可以将文件路径存储在 Vault
- Stack Exchange,是的,这些人正在研究 Stack Exchange Blackbox,它可以加密整个密钥并从 API 加载。如果您不需要使用 docker 并且可以手动启动应用程序,这是一个更好的选择,因为您将提供密码来访问您的密钥。
对于金库:
- 见 https://medium.com/@Ankitthakur/spring-boot-spring-vault-e9e973a17036
- 另见 https://spring.io/guides/gs/vault-config/
对于 Stack Exchange Blackbox: