我正在开发的应用程序有十几个秘密、SSL 证书和 API 密钥。目前我有一个添加到其中的文件,.gitignore
其中包含我所有的秘密。如何安全地存储所有这些秘密?企业应用程序如何处理这个问题,安全性是重中之重?
我正在研究 AWS KMS,据我了解,我必须加密所有秘密,提交它,然后在运行时传递我的 AWS 凭证以解密秘密(用户只允许使用 KMS 密钥进行解密,没有为用户添加其他权限)。
现在,假设运行容器的机器受到威胁 - 秘密被加密,所以应该没问题,但是!如果docker inspect
运行命令,它将显示所有环境变量(AWS 机密),所以我执行到容器中,我所要做的就是使用 env 变量来解密机密.. 有点违背了目的,或者我可能是在某处错过了一步?
注意:我当前的解决方案也不安全 - 文件被 gitignored,但它仍然存在于运行容器的机器上(稍后,在构建映像后,它们作为 env 变量公开)。
注 2:Git repo 是私有的