Docker 组成敏感数据 - 哈希环境变量值值得努力吗?

问题描述 投票:0回答:1

我正在创建一个小型启动项目。我拥有一台公共服务器。在此服务器上,我将使用 docker compose 来运行我的项目。

我想将敏感数据传递到我的容器,例如数据库密码等。我有 3 个选项:

  • docker 秘密(任何可以闯入容器的人都可以读取此文件)
  • vault(太费力了,我没有资源来使用它)
  • env 变量(任何闯入的人都可以读取它,但很容易实现)

我正在考虑将环境变量中的加密值传递给容器。这里的缺点是我的 .jar 文件需要包含证书或密码来解密它们,并且还需要对代码进行很少的修改。

增加安全性值得这样做吗?或者它太小了,几乎什么也没有提供,我应该在环境变量中保留纯文本数据?

docker security docker-compose
1个回答
0
投票

您需要基于风险的方法来确定最佳解决方案。因此,就您的情况而言,正如您提到的,由于资源限制,Vault 已退出,因此我们只剩下 2 个选择。

比较两者时,两者都容易受到信息泄露的影响,因为未经授权的 shell 访问可能是由于密码泄露或通过 RCE/反向 shell 技术造成的。在这种情况下,我肯定会建议您使用传递给容器的环境变量的加密值。因为这增加了额外的安全层。另外,对于 Jar,我们拥有大量可用资源,可以使用混淆来使从文件中提取资源变得困难。您还可以使用 Java 密钥存储作为您的机密的容器,并遵循 JKS 密码安全的最佳实践。

归根结底,没有任何解决方案是完全安全的,但防御性安全努力拥有不同的防御层,并使恶意实体的入侵变得非常困难。

© www.soinside.com 2019 - 2024. All rights reserved.