ElasticSearch7.1安全配置

官方文档传送门

不足之处请评论指正,谢谢

摘要

6.8.0 和 7.1.0 版本开始, Elastic Stack安全功能免费提供。用户现在能够对网络流量进行加密、创建和管理用户、定义能够保护索引和集群级别访问权限的角色,并且使用 Spaces 为 Kibana 提供全面保护

  • TLS 功能,可对通信进行加密
  • 文件和原生 Realm,可用于创建和管理用户
  • 基于角色的访问控制,可用于控制用户对集群 API 和索引的访问权限;通过针对 Kibana Spaces 的安全功能,还可允许在 Kibana 中实现多用户

之前,这些核心安全功能只有付费黄金级订阅用户才可使用。现在,这些功能是基础级订阅的一部分,免费提供。高级安全功能(从单点登录和活动目录/LDAP 身份验证,到字段和文档级别的安全性)仍然是付费功能。有关详情请查看完整功能对照表。

ES官网关于使用ElasticSearch安全功能的博文


创建并保护双节点Elasticsearch集群

安装ElasticSearch和Kibana

1.下载链接 ElasticSearch的版本要和Kibana的版本对应

Elasticsearch7.1:https://www.elastic.co/cn/downloads/elasticsearch

Kibana7.1: https://www.elastic.co/cn/downloads/kibana

2.提取解压ElasticSearch和Kibana

3.复制一个ES副本

ElasticSearch7.1安全配置_第1张图片

配置TLS和身份验证

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。

第1步:生成一些允许节点安全通信的证书。

可以使用企业CA执行此操作,但是对于此演示,使用一个命令,elasticsearch-certutil  可以运行此命令,而不会出现任何常见的证书混淆。

bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

配置elasticsearch.yml

ElasticSearch7.1安全配置_第2张图片

在文件的最后添加以下内容

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

ElasticSearch7.1安全配置_第3张图片

 

保存文件,启动主节点。运行命令bin/elasticsearch

第2步:Elasticsearch集群密码

主节点运行后,就可以设置集群的密码了。进入主节点目录。然后我们运行命令bin/elasticsearch-setup-passwords auto 这将为各种内部堆栈用户生成随机密码。您也可以跳过auto参数,使用interactive参数手动定义密码。记下这些密码,我们会用到它们。

ElasticSearch7.1安全配置_第4张图片

密码将随机生成并打印到控制台 按下 y 确认

ElasticSearch7.1安全配置_第5张图片

第3步:Elasticsearch节点上的TLS

打开另一个新的ES节点的目录 我的是上图中的 node,这是master的一个副本,只是文件夹名不一样

ElasticSearch7.1安全配置_第6张图片

修改node的config/elasticsearch.yml

除了和master相同的安全配置之外,还要添加

 node.master: false 这样这个节点就不会成为master节点

更多es配置相关参考官方集群文档

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
#此节点不会成为主节点
node.master: false

ElasticSearch7.1安全配置_第7张图片

开启node节点

node节点会和master节点组成一个双节点的集群,可以在head中查看一下

ElasticSearch7.1安全配置_第8张图片

 

打开head时因为配置了es的安全选项,索引要求登录,可以使用elastic用户身份登录ElasticSearch7.1安全配置_第9张图片

可以看到已经存在两个节点,没有指定节点的名称,使用的是默认的主机名

Kibana配置

在Kibana config/kibana.yml文件中添加 用户名和密码,使用的是kibana用户

elasticsearch.username: "kibana"
elasticsearch.password: "生成密码"

ElasticSearch7.1安全配置_第10张图片

保存文件后,启动Kibana

ElasticSearch7.1安全配置_第11张图片

登录时使用elastic用户

ElasticSearch7.1安全配置_第12张图片

在Kibana中配置基于角色的访问控制(RBAC)

在新建的es中我们没有创建索引,可以先使用系统索引进行尝试

1.到Discover面板下

2.选择 Include system indices (包括系统索引)

3.在下方列出的index中选择一个填入到输入框中

ElasticSearch7.1安全配置_第13张图片

ElasticSearch7.1安全配置_第14张图片

点击Next step

ElasticSearch7.1安全配置_第15张图片

选择完成

ElasticSearch7.1安全配置_第16张图片

创建权限 Rule

ElasticSearch7.1安全配置_第17张图片ElasticSearch7.1安全配置_第18张图片

ElasticSearch7.1安全配置_第19张图片

ElasticSearch7.1安全配置_第20张图片

ElasticSearch7.1安全配置_第21张图片

 

ElasticSearch7.1安全配置_第22张图片

退出登录,使用自己创建的用户登录

ElasticSearch7.1安全配置_第23张图片

 

你可能感兴趣的:(elasticsearch)