【问题标题】:Can elasticsearch support both http and https access at the same time?elasticsearch可以同时支持http和https访问吗?
【发布时间】:2023-04-02 15:31:01
【问题描述】:

我使用 elasticsearch 和 kibana 来保存和查询我的数据。 RBACSIEM 等一些不错的功能需要在 elasticsearch 上与 kibana 进行 ssl 通信。所以我启用xpack.security.http.ssl.enabledxpack.security.transport.ssl.enabled。因此客户端对 es 的请求必须通过 https。

我还有一个 flink 集群将数据写入 elasticsearch。 flink & elasticsearch & kibana 在 docker swarm 上运行。 flink 不需要通过 es 进行认证,也不需要在流量之间进行加密。我觉得flink可以通过http协议访问es,无需认证。

那么,elasticseach 能否同时支持不同源主机的 http 和 https?

是否可以根据源 ip 或主机选择性地验证用户请求?

加号:

  1. Elasticsearch 和 Kibana 都是 7.7.0 版本
  2. Docker 版本:19.03

【问题讨论】:

    标签: docker elasticsearch kibana docker-swarm


    【解决方案1】:

    启用 HTTP 安全性后,必须更新所有客户端以与 cluster via SSL 通信,让一部分客户端安全通信而另一部分不安全通信是没有意义的。

    如果您在 Elasticsearch 的 HTTP 层上启用 TLS,那么您可能需要在 Elastic Stack 的其他部分以及您使用的任何 Elasticsearch 客户端中进行配置更改。

    另请参阅what just happened a few days ago to thousands of clusters,它已被全世界访问。

    【讨论】:

    • 感谢您的解释。 HTTP 确实不安全。我会将所有客户端切换到 HTTPs 协议。另外,mysql的传统数据库支持根据主机配置密码:CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';ElasticSearch能支持类似的功能吗?
    • 使用 ES,您可以不保护 HTTP 通信,但是一旦启用它们,所有客户端都必须遵守。
    • 我仍然对 es 中的部分身份验证功能感到困惑。在 Mysql 中,它可以通过主机设置用户和密码。在kafka中,它可以为不同的协议打开不同的端口(一个需要认证和加密,另一个可以是免费的和明文的)。
    • 不在 ES 中:您可以让所有客户端使用 HTTP(即使节点之间使用 SSL)但如果您为 HTTP 客户端打开 SSL,则所有客户端都必须使用 SSL
    • 非常感谢您的回答。能解释一下为什么 es 没有实现这个功能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 2018-11-30
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多