如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

本篇內容主要講解“如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊”吧!

成都創(chuàng)新互聯(lián)是專業(yè)的網(wǎng)站建設公司,提供網(wǎng)站建設,網(wǎng)站制作,網(wǎng)站設計等網(wǎng)站開發(fā)一體化解決方案;包括H5高端網(wǎng)站建設,微信小程序開發(fā),網(wǎng)站定制,企業(yè)網(wǎng)站建設,商城網(wǎng)站定制開發(fā),成都響應式網(wǎng)站建設,建網(wǎng)站,PHP網(wǎng)站建設,軟件開發(fā),軟文發(fā)稿,網(wǎng)站營銷。歡迎做網(wǎng)站的企業(yè)前來合作洽談,成都創(chuàng)新互聯(lián)將竭誠為您服務!

一、背景

默認情況下,當我們搭建好es集群后,我們通過http://localhost:9200就可以直接訪問到es集群的一些信息,這顯然是不安全的。在同一個局域網(wǎng)中,如果我們啟動了多個es節(jié)點,且集群的名字相同,那么他們可能會自動加入集群,這顯然是不安全的。因此我們要想個辦法來解決它。es自帶的插件x-pack就可以解決上述的要求。在高版本的es中,x-pack插件是默認就集成了。

二、需要解決的問題

1、給es增加用戶名和密碼訪問。
2、集群之間的通訊采用TLS通訊。

三、給es增加用戶名和密碼訪問

1、修改config/elasticsearch.yml

# 1、修改 ES_HOME/config/elasticsearch.yml
# 增加如下配置
vim config/elasticsearch.yml
xpack.security.enabled: true

2、訪問es集群

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊 > 此時可以看到訪問es集群就需要用戶名和密碼了,那么我們這個用戶名和密碼從哪里獲取呢?

3、啟用es集群內建的用戶

1、讓es自動設置初始化密碼

./bin/elasticsearch-setup-passwords auto

如果執(zhí)行上面這個語句,那么es會自動設置密碼,我們需要自己把這個密碼保存下來。

2、自動手動設置密碼

./bin/elasticsearch-setup-passwords interactive

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

此處為了簡單,將每個用戶的用戶名和密碼都設置成 123456,生產環(huán)境需要設置成一個復雜的接口。

注意??:

當我們設置了elastic用戶的密碼后,就不可在執(zhí)行elasticsearch-setup-passwords命令了。

3、重新訪問es,輸入用戶名和密碼

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊 重新訪問es集群,輸入用戶名和密碼之后,就可以訪問到集群的信息了。

四、kibana連接到es集群

1、設置kibana的用戶名和密碼

# 設置用戶名和密碼
elasticsearch.username: "kibana_system"
elasticsearch.password: "123456"

該用戶名和密碼,是由上一步設置好的。

2、訪問kibana

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊 此時可以看到,我們的kibana就需要用戶名和密碼訪問了。

3、通過kibana創(chuàng)建用戶和角色

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

五、配置es集群之間的TLS通訊

1、在es集群的生產模式中,節(jié)點之間的通訊必須要使用TLS通訊,否則集群無法啟動。

2、配置集群以TLS通訊,還可以防止不受信任的節(jié)點加入es集群。

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

1、何為es的生產模式

  1. 集群之間的服務發(fā)現(xiàn)不可是 single-node discovery 服務發(fā)現(xiàn)。

  2. 節(jié)點之間可以使用非回環(huán)地址加入集群。

2、配置步驟

1、生成證書(CA)

# 生成證書
bin/elasticsearch-certutil ca

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

2、為每個節(jié)點簽發(fā)證書

# --ca 指定證書的路徑
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

3、查看證書的生成路徑

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

4、為集群中的每個節(jié)點配置證書

# 1、將證書拷貝到每個節(jié)點的 config 目錄下
mv elastic-certificates.p12 config

# 2、修改elasticsearch.yml文件,增加如下配置
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

5、重啟es集群

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

6、重新加載集群的證書、密鑰等信息

如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊

使用resource.reload.interval.high參數(shù)配置,默認是5s。

六、java client中basic認證的寫法

import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;

/**
 * @author huan.fu 2021/4/22 - 下午2:48
 */
public class AbstractEsApi {

    protected final RestHighLevelClient client;

    public AbstractEsApi() {
        final CredentialsProvider credentialsProvider =
                new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("elastic", "123456"));

        client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("localhost", 9200, "http"),
                        new HttpHost("localhost", 9201, "http"),
                        new HttpHost("localhost", 9202, "http")
                )
                .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider))
        );
    }
}

到此,相信大家對“如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

新聞標題:如何實現(xiàn)elasticsearch基于RBAC認證和集群之間的TLS通訊
地址分享:http://muchs.cn/article32/jopgpc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供、小程序開發(fā)Google、手機網(wǎng)站建設關鍵詞優(yōu)化、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司