Elasticsearch 安全原则
编辑Elasticsearch 安全原则
编辑保护您的 Elasticsearch 集群及其包含的数据至关重要。实施深度防御策略可提供多层安全性,以帮助保护您的系统。以下原则为以安全方式运行 Elasticsearch 奠定了基础,有助于缓解对您系统的多层次攻击。
启用安全功能运行 Elasticsearch
编辑永远不要在未启用安全功能的情况下运行 Elasticsearch 集群。这个原则再怎么强调也不为过。在未启用安全功能的情况下运行 Elasticsearch 会使您的集群暴露给任何可以向 Elasticsearch 发送网络流量的人,允许这些人下载、修改或删除您集群中的任何数据。请自动启用安全功能启动 Elastic Stack或手动配置安全功能,以防止未经授权的访问您的集群,并确保节点间通信的安全。
使用专用的非 root 用户运行 Elasticsearch
编辑永远不要尝试以 root
用户身份运行 Elasticsearch,这将使任何防御策略失效,并允许恶意用户在您的服务器上执行任何操作。您必须创建一个专用的、非特权用户来运行 Elasticsearch。默认情况下,Elasticsearch 的 rpm
、deb
、docker
和 Windows 包包含一个具有此范围的 elasticsearch
用户。
保护 Elasticsearch 免受公共互联网流量的影响
编辑即使启用了安全功能,也永远不要将 Elasticsearch 暴露给公共互联网流量。使用应用程序来清理对 Elasticsearch 的请求仍然存在风险,例如,恶意用户编写 _search
请求可能会使 Elasticsearch 集群不堪重负并使其崩溃。尽可能保持 Elasticsearch 的隔离,最好是在防火墙和 VPN 之后。任何面向互联网的应用程序都应该运行预定义的聚合,或者根本不运行聚合。
虽然您绝对不应该直接将 Elasticsearch 暴露给互联网,但您也不应该直接将 Elasticsearch 暴露给用户。相反,请使用中间应用程序代表用户发出请求。这种实现方式允许您跟踪用户行为,例如可以提交哪些请求,以及提交到集群中的哪些特定节点。例如,您可以实现一个应用程序,该应用程序接受来自用户的搜索词,并通过 simple_query_string
查询进行处理。
实施基于角色的访问控制
编辑为您的用户定义角色并分配适当的权限,以确保用户仅能访问他们需要的资源。此过程确定传入请求背后的用户是否被允许运行该请求。