Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信
2022年8月25日 | by mebius
我们知道,为了能够实现 CCR 及 CCS,我们必须让集群之间能够互信,这样才可以建立集群之间的连接。在我之前的文章 “Elasticsearch:跨集群搜索 Cross-cluster search(CCS)及安全” tgcode里,我介绍了一种方法。它可以帮我们建立集群之间的互信。在用于执行跨集群搜索的集群(本地集群)和所有远程集群之间启用信任关系。可以通过以下方式完成此操作:
- 使用相同的证书颁发机构为所有连接的群集生成证书,或者
- 从本地群集中将 CA 证书添加为每个远程群集中的受信任 CA(请参阅传输 TLS 设置)。如果你是两个不同证书的集群,你可以在 elasticsearch.yml 中的 xpack.security.transport.ssl.certificate_authorities 添加对方的证书而得到受信,或者通过添加证书到 truststore 来实现。
集群之间的互信是通过 transport 层来实现的:
在本篇文章中,我将详细介绍如何针对本地安装的集群建立集群互信。我将使用 Elastic Stack 8.3.2 来进行展示。
Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信
安装
如何你还没安装还自己的 Elastic Stack 集群,请参照如下的文章来进行安装:
- 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsetgcodearch
- Kibana:如何在 Linux,MacOS 及 Windows上安装 Elastic 栈中的 Kibana
我们在自己的机器上分别安装两个不同的集群。我们可以分布在不同的机器上进行安装并启动。针对我的配置是:
如上所示,我有两个单节点的集群。它们分别位于两个不同的机器上。为了能够让它们建立互相,我们必须按照上面的方式来进行配置。
config/elasticsearch.yml
创建集群互信
我们可以为上面的两个集群创建同样的一个证书。这是一个最容易的方案。这里就涉及到更新在我们上一步已经安装好的证书问题。我们可以参考文章 “Elasticsearch:使用不同的 CA 更新安全证书 (一)” 来更新 CA 证书。在更新的过程中,我们必须注意的是:
- 在所有的集群中,都使用同样的 CA 证书:ca.crt 及 ca.key
- 在各自的集群的节点上,分别使用证书来生成 transport 层的证书,并导入到 CA 信任库 truststore
配置完毕后,我们需要重新启动集群。这样我们的配置就完成了。
创建集群远程连接
在上面,我们已经配置好集群之间的互信。我们接下来安装如下的步骤来创建连接:
从上面,我们可以看出来,两个机器之间的连接已经建立起来了。
当然,我也可以使用 API 来创建这样的连接:
PUT _cluster/settings
{
"perstgcodeistent": {
"cluster.remote": {
"remote_cluster": {
"seeds": [
"192.168.0.8:9300"
]
}
}
}
}
我们可以通过如下的命令来查看:
GET _remote/info
上面显示我们的连接是成功的。当然,我们也可以在 Kibana 的界面中进行查看:
如上所示,我们的连接都是成功的。
一旦连接成功,我们就可以尽情地使用 CCR 及 CCS 了。
参考:
【1】Trust management | Elasticsearch Service Documentation | Elastic
文章来源于互联网:Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信
使用凭证访问 Elasticsearch 集群。 凭证可以是存储在 Elasticsearch 内部的标准用户/密码,也可以使用更复杂的解决方案,例如 Active Directory 和轻量级目录访问协议 (LDAP)。 你可以将 Elastic Stack…