设置:我有一个当前在服务器上手动部署的应用程序。它需要几个凭据(外部服务、令牌和 AES 密钥和 IV 等的客户端机密),我目前已将这些凭据存储在使用gpg
. 每当我重新启动应用程序时,我gpg
都会在控制台中解锁 -key,然后服务将从应用程序脚本中再次解密文件(gpg-agent
将密码短语保留在内存中一段有限的时间)并通过管道解析它们。
这种方法的优点是gpg
访问它们所需的凭据和-passphrase 都不会持久保存到磁盘,而只保存在内存中。因此,即使具有完全的 root 访问权限,也无法恢复凭据。gpg
唯一的机会是在-key 保持解锁的短时间内获得访问权限。
缺点是(a)没有其他用户可以启动服务(除非我们共享我的帐户)和(b)应用程序不能通过任何自动方式启动。
github上有一个creds项目,和我正在做的类似,但仍然存在上述缺点。可以使用多个gpg
密钥对文件进行加密,然后尝试使用所有密钥对其进行解密,直到一个成功。
问题:有什么更好的方法来处理以下凭据:(a) 多个用户无需共享密钥或帐户即可访问,(b) 可由 CI/CD 系统访问(每次部署时我都没有控制台), (c) 只将密码数据保存在内存中?具有多个键的“解决方法”gpg
看起来像一个复杂的 hack,并且不适用于 CI/CD 系统。