我有一个公开 REST API 的应用程序,该 API 需要一些秘密才能启动,例如数据库密码、p12 密钥库密码或 HS512 密钥以用于发布令牌。这些值是从应用程序环境中提取的。我将把应用程序部署到 AWS EC2。我想出了 4 个选项来传递这些值:
- 由于环境变量通过 switch 到
java
命令传递 - 这将非常不方便 - 创建一个 bash 脚本,其中存储在纯文本中的硬编码密码执行
java
命令 - 这将使连接到 EC2 实例的任何人都可以使用它们。 - 与上面相同,但不是以纯文本形式存储秘密,而是使用对称密钥对其进行加密,并让脚本提示它并使用解密的值运行应用程序。
- AWS 秘密管理器——这对于一个简单的 Web 应用程序来说似乎有点过头了,而且还会带来成本。
这样做的正确方法是什么?选项3甚至有意义吗?