【发布时间】:2015-04-12 21:11:18
【问题描述】:
我的服务器上默认运行一个 Elasticsearch,它在端口 9200 上运行,并且链接是公共的,这意味着任何人都可以在任何地方插入、更新、删除任何形式。我如何使它像 phpMyadmin 一样安全,它只能在我的代码的帮助下访问,而不是直接从浏览器或邮递员访问。
【问题讨论】:
我的服务器上默认运行一个 Elasticsearch,它在端口 9200 上运行,并且链接是公共的,这意味着任何人都可以在任何地方插入、更新、删除任何形式。我如何使它像 phpMyadmin 一样安全,它只能在我的代码的帮助下访问,而不是直接从浏览器或邮递员访问。
【问题讨论】:
Elasticsearch 不执行身份验证或授权,将其留给开发人员练习。我见过的两种流行方式是
即使有了这些,取决于您将其暴露给谁 - 您可能希望禁用某些功能,例如动态脚本、DoS 限制等。
【讨论】:
您可以使用 Elasticsearch 基本身份验证插件 - https://github.com/Asquera/elasticsearch-http-basic
那里的 README 提供了如何设置它的好主意。
如果您使用 Kibana3 作为 elasticsearch 的前端,您可以使用 https://github.com/fangli/kibana-authentication-proxy 保护它
【讨论】:
我启用了一个相对简单的 Nginx 代理,它位于我的 Elasticsearch 和 Kibana 之间,以配置对我的仪表板和图表的授权访问。
在这里查看我的帖子:https://udaysagars.wordpress.com/2016/04/04/how-i-configured-authorized-access-to-kibana-dashboards/
另外,您可以在此处查看我使用此方法的应用程序:http://udaysagar2177.github.io/ec2/twitter-analytics.html
【讨论】: