Joã*_*imo 7 database security database-design sharding redis
我知道Redis Cluster仍然不稳定,但是很久以来它已经通过了所有的单元测试,所以我开始使用它.
我想知道如果节点需要身份验证,Redis群集是否能正常工作.我倾向于认为是,因为它们通过不同的端口连接并使用不同的协议,但我不确定,也无法在规范中找到任何文档或任何内容来确认这一点.
此外,如果redis群集协议飞过身份验证障碍,那么它不是安全漏洞吗?我的数据库可以被外界访问吗?(该端口至少必须是可访问的,以便它可以与其他节点通信)
SSH隧道可能是一个简单的解决方案:
快速示例:
ssh -f -L 1234:localhost:6379 server.com -NC
这会将任何传入连接到localhost:1234路由到远程server.com:6379.因此,您可以在redis配置文件中将local.com:6379替换为localhost:1234.
您可以查看man ssh更多信息.
如果任何协议通过互联网传输,您将需要加密(“ssl”),例如跨数据中心。这通常会影响性能。在 Redis 当前的安全规范中 -
http://redis.io/topics/security
建议不支持 ssl,您需要 SSL 代理。这通常会导致系统性能下降,例如您必须考虑的延迟。
因此,理想情况下,集群节点应该位于同一位置。如果不能,则应设计集群以限制跨站点数据传输或在没有任何实时限制的情况下离线进行。
我还选择根据每个节点的需要禁用/启用命令(请参阅上面的安全规范中的详细信息)。我不确定集群模式是否支持这一点。