Elasticsearch 安全功能入門

1. 前言

從 Elastic Stack 6.8 和 7.1 開始,Elasticsearch在默認分發包中免費提供多項安全功能,例如 TLS 加密通信基於角色的訪問控制 (RBAC),等等。在本文中,我將會演示如何啓用這些功能來確保您的 Elasticsearch 集羣的安全。

實際演示中,我將會在兩臺centos7上各自創建一個一節點 Elasticsearch 集羣並進行安全設置。要實現這一點,我們首先需要在兩個節點之間配置 TLS 通信。然後,我會爲 Kibana 實例啓用安全功能。再然後,我會在 Kibana 中配置基於角色的訪問控制,從而確保用戶只能看到他們獲授權能夠看到的內容。

儘管關於安全功能的運行過程還有很多內容,但現在我們僅會介紹入門所需知識。

2. 安裝 Elasticsearch 和 Kibana

3. 傳輸層配置 TLS 和身份驗證

3.1. 在 Elasticsearch 主節點上配置 TLS

我要做的第一件事是生成證書,通過這些證書便能允許節點安全地通信。您可以使用企業 CA 來完成這一步驟,但是在此演示中,我將會使用一個名爲 elasticsearch-certutil 的命令,通過這一命令,就無需擔心證書通常帶來的任何困擾,便能完成這一步。

bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

如果您使用密碼保護了節點證書的安全,請將密碼添加到您的Elasticsearch密鑰庫中:

bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass "testpassword"

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

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

接下來,使用您最常用的文本編輯器打開文件 config/elasticsearch.yaml。將下列代碼行粘貼到文件末尾。

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

保存文件,現在我們便可以啓動主節點了。運行命令 bin/elasticsearch。這一可執行文件必須保持運行,現在可以將此終端放在一邊。

3.2. Elasticsearch 集羣密碼

elasticsearch-setup-passwords 官方文檔

注意:elasticsearch-setup-passwords 這個命令只能使用一次。

# 生成隨機密碼
bin/elasticsearch-setup-passwords auto

# 手動定義密碼(建議使用)
bin/elasticsearch-setup-passwords interactive

但是如果完全忘記了 Elasticsearch 的超級用戶的密碼,請看

Elasticsearch 7.1 重置超級用戶的密碼

3.3. 在從節點上配置 TLS

複製證書文件,然後將 xpack.security.* 鍵設置爲與主節點一模一樣。然後通過運行 bin/elasticsearch 來啓動節點。我們將看到其加入集羣。而且,如果看一下主節點的終端窗口,我們會看到有一條消息顯示已有一個節點加入集羣。現在,我們的兩節點集羣便開始運行了。

3.4. 在 Kibana 中實現安全性

kibana 安裝目錄中編輯 config/kibana.yml到類似下面的代碼行

#elasticsearch.username: "kibana"
#elasticsearch.password: "testpassword"

usernamepassword 字段取消註釋,方法是刪除代碼行起始部分的 # 符號。將 “user” 更改爲 “kibana”,然後將 “pass” 更改爲 setup-passwords 命令告訴我們的任何 Kibana 密碼。保存文件,然後我們便可通過運行 bin/kibana 啓動 Kibana 了。

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