ELK(ElasticSearch  logstash  kibana) 系统默认并不含有用户认证功能,基本上任何人都可以随意读写 ElasticSearch 的 API 并获取数据,这时该如何对 ELK 系统做好防护工作呢?




可以使用shield 保护ES平台并兼权限控制




那么shield 是什么呢?

Shield是Elastic公司为ElasticSearch开发的一个安全插件。在安装此插件后,Shield会拦截所有对ElasticSearch的请求,并加上认证与加密,保障ElasticSearch及相关系统的安全性。

Shield是商业插件,需要ElasticSearch的商业许可。第一次安装许可的时候,会提供30天的免费试用权限。30天后,Shield将会屏蔽clusterhealth, cluster stats, index stats这几个API,其余功能不受影响。

Shield(2.2.0+)plugin for Kibana


shield 能做什么呢?






用户认证



使用Shield可以定义一系列已知的用户,并用其认证用户请求。这些用户存在于抽象的“域”中。一个域可能是下面几种类型:



  • LDAP服务
  • ActiveDirectory服务
  • 本地esusers配置文件(类似/etc/passwd)



权限控制

Shield的权限控制包含下面几种元素:



  • 被保护的资源SecuredResource:权限所应用到的对象,比如某个index,cluster等等
  • 特权Priviliege:角色对对象可以执行的一种或多种操作,比如read,write等。还可以是indicies:/data/read/perlocate等某种对象特有的操作。
  • 许可Permissions:对被保护的资源拥有的一个或多个特权,如read on the"products" index。
  • 角色Role:由许可组成的有名字的集合
  • 用户Users:用户实体,可以被赋予0种,1种或多种角色,他们可以对被保护的资源执行相应角色所拥有的各种特权。



集群节点认证与信道加密



  • Shield使用SSL/TLS加密相应端口(9300),防止集群被未授权的机器监听或干扰



IP 过滤

  • Shield支持基于IP的访问控制。

审计  

  • Shield可以在ElasticSearch的日志中输出每次鉴权操作的详细信息,包括用户名,操作,操作是否被允许等等

ES  shield 安装




es证书替换验证 博客园 es认证是什么_权限控制



Kibana shield 安装


es证书替换验证 博客园 es认证是什么_用户名_02




shield卸载


es证书替换验证 博客园 es认证是什么_用户名_03




设置用户名和密码


 

es证书替换验证 博客园 es认证是什么_权限控制_04



简单的用户名和密码控制


es证书替换验证 博客园 es认证是什么_用户名_05



当前配置


ES2.1.1 ,


kibana 4.3.1 ,


shield2.1.1


安装shield之后,kibana出错,打开不了其中安装的sense和marvel,目前还不知道原因,需要继续深入了解