Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信

2022年8月25日   |   by mebius

我们知道,为了能够实现 CCRCCS,我们必须让集群之间能够互信,这样才可以建立集群之间的连接。在我之前的文章 “Elasticsearch:跨集群搜索 Cross-cluster search(CCS)及安全tgcode里,我介绍了一种方法。它可以帮我们建立集群之间的互信。在用于执行跨集群搜索的集群(本地集群)和所有远程集群之间启用信任关系。可以通过以下方式完成此操作:

  • 使用相同的证书颁发机构为所有连接的群集生成证书,或者
  • 从本地群集中将 CA 证书添加为每个远程群集中的受信任 CA(请参阅传输 TLS 设置)。如果你是两个不同证书的集群,你可以在 elasticsearch.yml 中的 xpack.security.transport.ssl.certificate_authorities 添加对方的证书而得到受信,或者通过添加证书到 truststore 来实现。

集群之间的互信是通过 transport 层来实现的:

%title插图%num

%title插图%num

在本篇文章中,我将详细介绍如何针对本地安装的集群建立集群互信。我将使用 Elastic Stack 8.3.2 来进行展示。

Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信

安装

如何你还没安装还自己的 Elastic Stack 集群,请参照如下的文章来进行安装:

我们在自己的机器上分别安装两个不同的集群。我们可以分布在不同的机器上进行安装并启动。针对我的配置是:

%title插图%num

如上所示,我有两个单节点的集群。它们分别位于两个不同的机器上。为了能够让它们建立互相,我们必须按照上面的方式来进行配置。

config/elasticsearch.yml

%title插图%num

创建集群互信

我们可以为上面的两个集群创建同样的一个证书。这是一个最容易的方案。这里就涉及到更新在我们上一步已经安装好的证书问题。我们可以参考文章 “Elasticsearch:使用不同的 CA 更新安全证书 (一)” 来更新 CA 证书。在更新的过程中,我们必须注意的是:

  • 在所有的集群中,都使用同样的 CA 证书:ca.crt 及 ca.key
  • 在各自的集群的节点上,分别使用证书来生成 transport 层的证书,并导入到 CA 信任库 truststore

配置完毕后,我们需要重新启动集群。这样我们的配置就完成了。

创建集群远程连接

在上面,我们已经配置好集群之间的互信。我们接下来安装如下的步骤来创建连接:

%title插图%num

%title插图%num

%title插图%num

%title插图%num

从上面,我们可以看出来,两个机器之间的连接已经建立起来了。

%title插图%num

当然,我也可以使用 API 来创建这样的连接:

PUT _cluster/settings
{
  "perstgcodeistent": {
    "cluster.remote": {
      "remote_cluster": {
        "seeds": [
          "192.168.0.8:9300"
        ]
      }
    }
  }
}

%title插图%num

我们可以通过如下的命令来查看:

GET _remote/info

%title插图%num

上面显示我们的连接是成功的。当然,我们也可以在 Kibana 的界面中进行查看:

%title插图%num

如上所示,我们的连接都是成功的。

一旦连接成功,我们就可以尽情地使用 CCR 及 CCS 了。

参考:

【1】Trust management | Elasticsearch Service Documentation | Elastic

文章来源于互联网:Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信

相关推荐: Elasticsearch:LDAP 用户鉴权

使用凭证访问 Elasticsearch 集群。 凭证可以是存储在 Elasticsearch 内部的标准用户/密码,也可以使用更复杂的解决方案,例如 Active Directory 和轻量级目录访问协议 (LDAP)。 你可以将 Elastic Stack…

Tags: , ,