我对弹性搜索完全不熟悉,但我非常喜欢它。我唯一无法找到并且无法完成的事情就是确保生产系统的弹性搜索。我在弹性搜索前面阅读了很多关于使用nginx作为代理的内容,但我从未使用过nginx
而且从未使用过代理。
这是在生产系统中保护弹性搜索的典型方法吗?
如果是这样,是否有任何教程或精彩的读取可以帮助我实现此功能。我真的想在我们的生产系统中使用elasticsearch而不是solr和tomcat。
答案 0 :(得分:2)
有一篇关于保护Elasticsearch的文章,其中包含了很多要注意的要点:http://www.found.no/foundation/elasticsearch-security/(完全披露:我写了它并为Found工作)
这里还有一些你应该知道的事情:http://www.found.no/foundation/elasticsearch-in-production/
总结摘要:
目前,Elasticsearch并不认为安全性是其工作。 Elasticsearch没有用户的概念。从本质上讲,任何可以向您的群集发送任意请求的人都是“超级用户”。
答案 1 :(得分:2)
通过nginx代理ES流量,例如,启用基本身份验证是处理此问题的一种方法(但使用HTTPS来保护凭据)。即使代理规则中没有基本身份验证,您也可以限制对特定用户或特定IP地址的各种端点的访问。
我们在其中一个环境中所做的是使用Docker。如果您明确定义Docker容器,则只能访问世界和/或其他Docker容器。默认情况下,他们是盲人。 在我们的docker-compose设置中,我们定义了以下容器:
nginx - 处理所有网络请求,向名为'
中间件 - 处理和验证所有API请求的Java服务器。它与以下三个容器交互,每个容器仅暴露给中间件
:这种安排的净效果是对弹性搜索的访问只能通过中间件,这可以确保在发送任何查询之前正确处理身份验证,角色和权限。
完整的docker环境比简单的nginx代理更需要设置,但最终结果是更灵活,可扩展且更安全。
答案 2 :(得分:0)
这是上面答案中提供的信息的一个非常重要的补充。我会把它添加为评论,但是还没有这样做的声誉。
虽然这个帖子很旧(ish),但像我这样的人仍然会通过谷歌来到这里。
要点:此链接在Alex Brasetvik的帖子中引用:
https://www.elastic.co/blog/found-elasticsearch-security
他已经用这段话更新了它:
2015年4月7日更新:Elastic发布了Shield,这是一种为Elasticsearch提供全面安全性的产品,包括加密通信,基于角色的访问控制,AD / LDAP集成和审计。以下文章是在Shield可用之前撰写的。
您可以在此处找到有关盾牌的大量信息:here
需要注意的一个非常关键的问题是这需要1.5或更新版本。
答案 3 :(得分:0)
Ya我也有同样的问题,但我发现一个插件由elasticsearch团队提供,即屏蔽它是生产的限量版本,您需要购买许可证,请找到附件链接供您阅读。