FoundationDB 集群可以配置为使用 SSL/TLS,但是否可以在不知道集群fdb.cluster
文件的情况下连接到集群?
换句话说,fdb.cluster
文件是否等同于其他数据库系统中的用户名/密码安全方案?
FoundationDB 集群可以配置为使用 SSL/TLS,但是否可以在不知道集群fdb.cluster
文件的情况下连接到集群?
换句话说,fdb.cluster
文件是否等同于其他数据库系统中的用户名/密码安全方案?
该fdb.cluster
文件由 2 个主要部分组成(请参阅集群文件格式):
id
(可选description
)IP:PORT
器对的列表。任何客户端都必须能够联系到列表中的至少一个协调器才能与集群对话,并且它必须具有正确的集群 ID。如果没有,它将无法连接。没有内置的服务发现。
这意味着您必须为自己的应用程序提供初始集群文件。一旦连接到协调器节点,它将能够获取完整列表并自行更新集群文件(如果拓扑发生变化)。
一种部署解决方案是让您的应用程序(或部署脚本)在文件丢失时从内部 URL(或文件共享)下载最新的 fdb.cluster,以便快速启动设置。
关于身份验证,除非您使用 TLS/SSL,否则集群文件中的“id”部分充当伪明文密码。即使您拥有正确的协调器集,应用程序也必须具有正确的集群 ID。
尽管它应该被视为与典型 SQL 服务器中的数据库名称等效。如果您不使用 SSL,它可以很容易地找到并清楚地传输。我想它是为了防止愚蠢的错误,最重要的是(例如:输入不同集群的 IP:PORT)。
没有集群文件就无法连接。这确实提供了一些较弱的安全性,但如果您想在不受信任的网络中运行集群,最好使用双向 TLS 支持。