拒绝裸奔,为 Elasticsearch 设置账号密码(qbit)
前言
TLS 功能,可对通信进行加密
文件和原生 Realm,可用于创建和管理用户
基于角色的访问控制,可用于控制用户对集群 API 和索引的访问权限;
通过针对 Kibana Spaces 的安全功能,还可允许在 Kibana 中实现多租户
相关文献
ES 安全的几个层面
集群身份认证与用户鉴权(账号密码)
集群内部安全通信()
集群与外部间的安全通信()

账号密码配置
打开配置文件 ,修改或添加以下内容
xpack.security.enabled: true
重启 elasticsearch
sudo systemctl restart elasticsearch
# 自动生成(须记住密码!!)
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
# 手动生成
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
打开配置文件 ,修改或添加以下内容
elasticsearch.username: "kibana_system"
elasticsearch.password: "刚才生成的密码
重启 kibana,使用 账号登录

可在 Stack Managent 下创建不同的角色和用户

Python 客户端调用示例
from elasticsearch import Elasticsearch
host = '192.168.2.3:9200'
user = 'elastic'
pwd = 'xxx'
# 下面两种格式二选一
es = Elasticsearch(host, http_auth=(user, pwd))
#es = Elasticsearch(f'http://{user}:{pwd}@{host}')
es.cat.nodes()