Elasticsearch集群安全防护提出几个建议
Posted 犀牛饲养员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch集群安全防护提出几个建议相关的知识,希望对你有一定的参考价值。
写在前面
2017年1月爆发了Elasticsearch数据勒索事件,涉及到的数据至少500亿条,被删除数据至少450TB。如何提高Elasticsearch应用的安全性,是开发者和客户都面临的重要问题。
本文针对ES集群的安全防护提出几个方案,当然并不说只有这些方案,仅仅是个人的一些经验而已。
用户角色和权限管理
这个方案用来控制用户在 Elasticsearch中的权限。通过设置不同的角色,然后把对应的功能分配给不同的角色,再赋予不同用户不同角色。这样可以达到为不同的用户开通不同操作权限的目的。
比如可以授权营销团队只读权限,只能查看数据但是不能修改数据。再比如不同的业务方只能看到自己的索引数据,不能看到别的业务方的数据等等。
数据定时备份
ES提供分片副本机制,但是副本并不提供对灾难性故障的保护。比如黑客入侵了我们的服务器,删除了主分片的数据。这个时候我们需要有一个完整的集群数据备份,以便在需要的时候可以随时进行恢复。
我们可以使用ES的 snapshot API。这个会拿到你集群里当前的状态和数据然后保存到一个共享仓库里。对于一个集群,第一次备份是数据的完整拷贝,所以过程有点慢。但是所有后续的快照会保留的是已存快照和新数据之间的差异。也就是增量备份,速度会快很多。
要使用这个功能,你必须首先创建一个保存数据的仓库。有多个仓库类型可以供你选择:
共享文件系统,
比如 NAS
Amazon S3
HDFS (Hadoop 分布式文件系统)
Azure Cloud
敏感数据加密
证券行业可能经常会存储一些敏感信息,比如用户的账户信息,银行卡号,余额等敏感信息。我们希望这些数据在集群和客户端传输时,能够防止盗窃、篡改和监听,保护数据安全。
ES可以借助 SSL/TLS 加密保护端对端传输、HTTP 传输。
跨机房容灾
跨机房容灾的方案思路是准备一个备用集群,这个集群的资源配置和生产集群完全一致。然后通过双写或者集群间同步的方式,在两个集群上保持同样的一份数据。
跨机房容灾在私有云环境操作会稍微复杂一些,一个是涉及到主备集群如何同步的问题,另一个是对资源的需求,需要独立再搭建一套备份集群。
如上图所示,有两种方式可以做跨机房容灾。 通过部署多套 Elasticsearch 集群,并且分布在不同地域的数据中心,然后接着 CCR或者业务上进行双写,将数据做一个实时的同步,假如其中一个数据中心失联或者因为不可抗力的因素,如台风、地震,我们还能通过访问剩下的集群来获取完整的数据。
以上是关于Elasticsearch集群安全防护提出几个建议的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:找回密码 - Password Recovery