Elasticsearch集群的身份验证、用户鉴权操作

2020-08-19 11:19:16 浏览数 (1)

前言| ES作为一款当下非常流行的轻量级存储搜索引擎,其安全性也变得日益重要。否则就会非常容易造成敏感数据泄露的严重问题。主要是因为使用者并没有将ES的安全功能打开。那么出现这种问题产生的原因是什么呢?原因大致如下:

1,ES在默认安装后,不提供任何形式的安全防护;

2,错误的配置信息导致公网可以访问ES集群;

---- 在elasticsearch.yml 的配置文件中,server.host被错误的配置为0.0.0.0

一、数据安全性的基本需求 1,身份验证:鉴定用户是否合法;

2,用户鉴权:指定哪个用户可以访问哪个索引

3,传输加密

4,日志审计

二、那么怎么满足这类安全需求呢? 方案大致可以如下几种:

1,设置Nginx反向代理,让用户在访问ES集群的时候需要提供用户验证信息,这个方法目前使用比较普遍。特别是针对ES低版本基础版、开源版;

2,安装免费的security插件,比如Search Guard、ReadOnly REST

3,ES的商业包 x-pack的Basic版 ,从ES6.8基础版开始免费使用一些基础的安全功能,比如身份验证、用户鉴权

三、Authentication - 身份认证 认证体系的几种类型:

提供用户名、密码

提供秘钥、kerberos票据

在ES中提供的这种认证服务我们称之为 Realms,它分为两种,一种收费、一种免费

内置的Realms(免费)

在这种情况下,用户名和密码都保存在Elasticsearch 的索引中

外部的Realms(收费)

如果ES的安全机制需要与企业内的其它服务器应用安全集成的话,比如AD/LDAP/PKI/kerberos.需要购买专用的ES 安全服务

四、RBAC - 用户鉴权 什么是RBAC? Role Based Access Control. 定义一个角色,并分配一组权限。权限包括索引级、字段级、集群级的不同操作。然后通过将角色分配给用户,使得用户拥有这些权限。

在ES中定义的这些权限有哪些呢?

1,集群权限 Cluster Privileges

all/monitor/manager/manager_index/manage_index_template/manage_rollup

2,索引权限 indices Privileges

all/create/create_index/delete/delete_index/index/manage/read/write/view_index_metadata

五、开启并配置X-Pack的认证与鉴权 其实,在前面的章节中,我也讲到了这块的部署应用,那么今天再来实操验证此安全功能。我将以一台CVM多进程的方式论证一下这个逻辑。步骤如下:(以 ES 6.8.2 为列)

1,修改配置文件 ,打开认证、授权功能

只需要开启此命令即可 xpack.security.enabled:"true"

2, 创建默认的用户和分组 ES默认提供了多个用户以及组权限,需要设置密码

/bin/elasticsearch-password interactive

0 人点赞