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