有很多方法可以解决这个问题。一个简短的清单包括:
- 网页服务)
- 加密的本地存储
- 虚拟机/容器之间共享的加密可访问存储
虽然其中一些具有许多高级功能(审计、完全控制、更好的安全性),但它们通常都需要某种设置。因此,既然您提到可以部署容器,那么让我们采用一种冻结的、难以访问的方法中间路线。
最佳图像
由于您可以轻松部署容器,因此此选项是拥有一个容器,其唯一目的是为脚本发送加密的身份验证方法并在死亡之前返回,该容器只能从您的 VPL(虚拟专用局域网)中的容器的 LAN 访问这样它就永远不会与外界交流。此时,脚本容器上的所有内容都是解密密钥。仅凭您在偏远地区的内部容器和 docker 机器,就没有人能听到这一点。这意味着您的脚本将具有解密密钥,并且只能在本地访问。如果它被泄露,上传 2 个新的容器图像,你就完成了。
优点:
- 已使用您正在部署的模型
- 仅限局域网。在控制器上使用保留的内部 IP(172.XXX 范围)与此 docker 通信
- 多点安全意味着如果受到威胁,可以在新制作的干净 docker 镜像中上传新凭据
- 非常难以妥协(不是同一台机器,不同的代码,必须妥协两端才能使其值得)
- 易于保护(谁需要在容器上使用 SSH,对吗?)
- 精确的端口控制(不要使用常见的,仅使用一个非常晦涩的端口)
- 还有很多
缺点:
- 两个容器与加密片段和解密片段共同维护
- 哦不,两个上传
由于这永远不会通过网络传播出去,因此网络之外的任何人都无法获取数据包并尝试通过传递来发现它。由于它是一个容器映像,因此专家列表肯定比设置它所需的少量工作量要大。只需上传新代码,完成。
现在您不必担心将密码存储在带有脚本的容器或带有解密密钥的容器上,您可以放心,在静止状态下它几乎是不可能破解的。特别是如果您将 TLS 与证书固定一起使用。现在,即使容器以某种方式最终位于同一主机上,您也必须做到最好。
在这一点上,唯一能破解这个问题的人就是你,其他任何人都知道它是如何设置的。然而,这是因为网络安全链中最危险的环节是人。