您好,我目前在 django 中使用 elasticutils 来搜索索引文档,但我的集群没有任何身份验证方法,因此任何人都可以从互联网访问我的 ES 服务器,有没有办法使用 elasticutils 设置密钥 o auth 方法以便唯一拥有密钥的服务器可以查询到 ES 服务器吗?
可能搜索或亚马逊密钥 api 的东西
您好,我目前在 django 中使用 elasticutils 来搜索索引文档,但我的集群没有任何身份验证方法,因此任何人都可以从互联网访问我的 ES 服务器,有没有办法使用 elasticutils 设置密钥 o auth 方法以便唯一拥有密钥的服务器可以查询到 ES 服务器吗?
可能搜索或亚马逊密钥 api 的东西
有几种方法可以保护您的 ES 集群。
最简单的方法是安装一个插件,例如elasticsearch-http-basic以保护您的集群。您可以使用BASIC 用户名/密码组合对其进行配置,然后只需配置elasticutils以将这些 BASIC 凭据传递给elasticsearch-py库提供的底层 ES 客户端。
调用时get_es(...)
,您只需添加http_auth
将传递给Elasticsearch
构造函数的参数,如下所示:
es_client = get_es(urls=['localhost:9200'], http_auth="username:password")
另一种方法是将 ES 集群隐藏在 Apache 或 Nginx 等 Web 服务器后面,但它比上述解决方案更复杂。
你也可以使用Shield,只要知道它是一个商业产品。