Elasticsearch 安全原则编辑

保护您的 Elasticsearch 集群及其包含的数据至关重要。实施纵深防御策略可提供多层安全保护,帮助保护您的系统。以下原则为以安全方式运行 Elasticsearch 提供了基础,有助于在多个级别缓解对您系统的攻击。

启用安全功能运行 Elasticsearch编辑

切勿在未启用安全功能的情况下运行 Elasticsearch 集群。这一原则至关重要。在未启用安全功能的情况下运行 Elasticsearch 会使您的集群暴露给任何可以向 Elasticsearch 发送网络流量的人,允许这些人下载、修改或删除您集群中的任何数据。 自动启用安全功能启动 Elastic Stack手动配置安全 以防止未经授权访问您的集群并确保节点间通信安全。

使用专用非 root 用户运行 Elasticsearch编辑

切勿尝试以 root 用户身份运行 Elasticsearch,这将使任何防御策略失效,并允许恶意用户对您的服务器执行 任何操作。您必须创建一个专用的、无特权的用户来运行 Elasticsearch。默认情况下,Elasticsearch 的 rpmdebdocker 和 Windows 包包含一个具有此范围的 elasticsearch 用户。

保护 Elasticsearch 免受公共互联网流量的攻击编辑

即使启用了安全功能,也切勿将 Elasticsearch 暴露给公共互联网流量。使用应用程序来清理对 Elasticsearch 的请求仍然存在风险,例如恶意用户编写 _search 请求,这些请求可能会压垮 Elasticsearch 集群并使其崩溃。尽可能隔离 Elasticsearch,最好是在防火墙和 VPN 后面。任何面向互联网的应用程序都应运行预先准备好的聚合,或者根本不运行聚合。

虽然您绝对不应该将 Elasticsearch 直接暴露给互联网,但您也不应该将 Elasticsearch 直接暴露给用户。相反,请使用中间应用程序代表用户发出请求。此实现允许您跟踪用户行为,例如可以提交请求以及提交到集群中的哪些特定节点。例如,您可以实现一个应用程序,该应用程序接受用户的搜索词并将其通过 simple_query_string 查询传递。

实施基于角色的访问控制编辑

定义 您的用户角色并 分配适当的权限 以确保用户只能访问他们需要的资源。此过程确定传入请求背后的用户是否被允许运行该请求。