我的问题与我的特定环境有关:我在 docker 容器中运行 Web 应用程序,并在另一个容器中运行数据库。
我使用 docker compose 来运行两个容器:
- 我的 Web 应用程序链接到与所有其他应用程序容器和我的代理容器(绑定到主机接口)共享的网络
- 我的数据库容器链接到一个特定网络,该网络仅在我的 Web 应用程序容器和我的数据库容器之间共享
我已经在两个容器之间设置了密码验证。但现在回想起来,我想知道它在这种情况下是否真的有用。
由于我的应用程序容器和数据库容器之间的网络是由docker构建的,因此没有其他容器可以连接到它并尝试访问我的数据库。那么为什么要设置密码呢?
我想我的问题与 docker 特定网络提供的安全性有关,但我实际上不知道它是如何工作的。
如有任何建议我将不胜感激。
答案1
但现在,我回想起来,想知道它在这种情况下是否真的有用。
是的,当然。你为什么会不是使用密码?安全的关键在于纵深防御。当然,您的数据库可能受到多个不同级别的防火墙保护,但仍然建议使用密码。凭证的创建和管理很简单,实际上没有任何缺点。
我想我的问题与 docker 特定网络提供的安全性有关,但我实际上不知道它是如何工作的。
这是一个很大的危险信号。如果你不知道某种技术是如何工作的:1) 你无法假设它有多安全;2) 在你理解它之前,你不应该使用该技术。