Elasticsearch安全認證

6.8之前免費版本並不包含安全認證功能

本版本使用6.8.4最新版7.6需JDK11

免費版本

TLS 功能,可對通信進行加密
文件和原生 Realm,可用於創建和管理用戶
基於角色的訪問控制,可用於控制用戶對集羣 API 和索引的訪問權限;
通過針對 Kibana Spaces 的安全功能,還可允許在 Kibana 中實現多租戶。
收費版本包含更豐富的安全功能,比如:

日誌審計
IP過濾
LDAP、PKI和活動目錄身份驗證
單點登錄身份驗證(SAML、Kerberos)
基於屬性的權限控制
字段和文檔級別安全性
靜態數據加密支持
需要同時在ES和kibana端開啓安全認證功能

一、啓用安全模塊

在elasticsearch.yml配置文件中加入

xpack.security.enabled: true

在免費版本中此項設置是禁用的

二、集羣內部安全通信

1.生成證書

bin/elasticsearch-certutil ca

2.爲集羣中的每個節點生成證書和私鑰

/elasticsearch-certutil cert --ca elastic-stack-ca.p12

回車即可,若創建密碼切記一致
3.將證書拷貝到elasticsearch的每個節點下面config/certs目錄下

elastic-certificates.p12

4.配置elasticsearch.yml

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

5.如果在創建證書的過程中加了密碼,需要將你的密碼加入到你的Elasticsearch keystore中去。每個節點都需要

bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

三、給認證的集羣創建用戶密碼

啓動es

bin/elasticsearch-setup-passwords interactive
elastic 賬號:擁有 superuser 角色,是內置的超級用戶。
kibana 賬號:擁有 kibana_system 角色,用戶 kibana 用來連接 elasticsearch 並與之通信。Kibana 服務器以該用戶身份提交請求以訪問集羣監視 API 和 .kibana 索引。不能訪問 index。
logstash_system 賬號:擁有 logstash_system 角色。用戶 Logstash 在 Elasticsearch 中存儲監控信息時使用。
beats_system賬號:擁有 beats_system 角色。用戶 Beats 在 Elasticsearch 中存儲監控信息時使用。
elastic是超級用戶

四、在Kibana中設置登錄ES的用戶

在Kibana.yml中配置

elasticsearch.username: "xxx"
elasticsearch.password: "xxx"

如果你不想將用戶ID和密碼放在kibana.yml文件中明文配置,可以將它們存儲在密鑰庫中。運行以下命令以創建Kibana密鑰庫並添加配置

bin/kibana-keystore create
bin/kibana-keystore add elasticsearch.name
bin/kibana-keystore add elasticsearch.password
#刪除
bin/kibana-keystore remove xxxx

重啓kibana

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章