0

你好我目前在Django中使用elasticutils来搜索索引文件,但我的集群没有任何身份验证方法,所以任何人都可以从互联网上访问我的ES服务器,有没有什么办法来设置一个密钥或auth方法与elasticutils in为了唯一的服务器与密钥可以查询到ES服务器?Python elasticutils http认证或API密钥?

东西可能searchly或亚马逊键API的

回答

0

有保护您的ES集群的几种方法。

最简单的方法是安装一个插件,如elasticsearch-http-basic以保护您的群集。您可以使用BASIC username/password组合对其进行配置,然后只需配置elasticutils即可将这些BASIC凭据传递给由elasticsearch-py库提供的底层ES客户端。

当调用get_es(...)你只需要添加http_auth参数将一起传递给Elasticsearch构造是这样的:

es_client = get_es(urls=['localhost:9200'], http_auth="username:password") 

另一种方法是躲在后面像Apache或Nginx的网络服务器的ES集群,但比上述解决方案涉及更多。

您也可以使用Shield,只是知道它是一种商业产品。

+0

@EMILIOCRUZ你有什么运气吗? – Val

+0

非常感谢@val,虽然我在es_server中安装了shield插件,但auth-method(es_client = get_es(urls = ['localhost:9200'],http_auth =“username:password”))建议我用盾牌正常工作。 https://www.elastic.co/guide/en/shield/current/enable-basic-auth.html –