我使用Python的Elastisearch。我的代码看起来有点像这样:
from elasticsearch import Elasticsearch
if __name__ == '__main__':
index="IndexPosition"
es=Elasticsearch(['https://localhost:8080'])
res = es.search(index='{0}'.format(index), doc_type="log",size=1000, from_=0, body={ "query": {
"match": {
...Match condition
}
}
}})
现在,由于架构的变化,在elasticsearch中添加了用户身份验证。让我们假设username-user和password-pass。我如何在查询中传递用户名和密码..?
7条答案
按热度按时间r9f1avp51#
您需要将用户名和密码传递给Elasticsearch对象,如下所示:
es = Elasticsearch(['http://localhost:8080'], http_auth=('user', 'pass'))
z3yyvxxp2#
您可以在url中输入用户名和密码:
例如:
用户名:弹性
密码:changeme
使用CURL
lvmkulzt3#
在Elasticsearch 8.x中,
http_auth
参数被弃用,请分别使用basic_auth
或bearer_auth
。Elasticsearch >= 8.x基本认证示例:
Elasticseach < 8.x基本认证示例:
m1m5dgzv4#
11dmarpk5#
是,使用
es = Elasticsearch(hosts="http://username:password@es-endpoint:es-port/")
在es版本
7.7.1
中测试成功k5hmc34c6#
你可以用下面的主机url配置连接elasticsearch
oxiaedzo7#
我在Docker上运行ElasticSearch。ElasticSearch v8.10自动启用额外的安全性(例如,使用证书)。可以通过运行以下命令将证书复制到本地计算机:
docker cp elasticsearch:/usr/share/elasticsearch/config/certs/http_ca.crt .
如果不是Docker:
cp /usr/share/elasticsearch/config/certs/http_ca.crt .
参见:Verifying HTTPS with CA certificates & Run Elasticsearch in Docker - Start a single-node cluster (7-8)