如何在共享托管环境中保护面向 Internet 的 Elastic Search 实施?

如何在共享托管环境中保护面向 Internet 的 Elastic Search 实施?

(起初在 StackOverflow 上提问,并建议我将其移到这里)

我一直在查阅文档弹性搜索我是大的粉丝,我想用它来处理我的 ASP.NET MVC 应用程序的搜索。

然而,这引入了一些有趣的变化。如果 ASP.NET MVC 应用程序位于专用计算机上,则可以轻松地启动 Elastic Search 实例并使用TCP 传输进行本地连接。

但是,我并没有专门为 ASP.NET MVC 应用程序配备一台机器,而且看起来我也不打算很快换一台。

这就需要在另一台机器上(在 *NIX 世界中)托管 Elastic Search,我可能会在那里使用共享托管。

然而,Elastic Search 最大的缺点之一是它不支持开箱即用的 HTTPS 和基本身份验证。如果支持,那么这个问题就不存在了;我只需将它托管在某个地方,并确保有一个非常安全的密码并启用 HTTPS(可能使用自签名证书)。

但事实并非如此。

那么,有什么好方法可以以安全的方式在互联网上公开 Elastic Search?

请注意,我正在寻找一些东西,希望它不需要编写代码来为我想要的方法提供垫片(换句话说,编写转发器)。

答案1

您可以设置SSH 隧道在两台机器之间,并通过它传输数据。或者你可以使用隧道设置 SSl 隧道。在这两种情况下,加密对于两台机器都是透明的,两个应用程序都不会意识到这一点,因此不需要更改代码。

答案2

我知道这是一个非常老的问题,但防火墙规则似乎是可行的方法。我认为,即使在共享环境中,您现在也应该可以访问防火墙规则。这就是我们的发展方向。仅锁定来自其他受信任机器的访问。

相关内容