前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES 安全认证模块之XPack

ES 安全认证模块之XPack

作者头像
郑小超.
发布2023-04-08 10:15:53
1.2K0
发布2023-04-08 10:15:53
举报
文章被收录于专栏:GreenLeavesGreenLeaves

  X-Pack是ES扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。具体查看官方文档相关配置项也在官方文档中, ES版本是8.2.3,环境windows server2012 R2

1、创建证书颁发机构

 cmd定位到es运行时(bin)目录输入以下命令

代码语言:javascript
复制
elasticsearch-certutil ca

提示输入密码和文件输出路径,可以直接回车,也可以输入密码和输入自定义存放路径进行设置.回车的话,会生成如下文件

 后缀为ca的证书颁发机构文件

2、为节点创建证书文件

 cmd定位到es运行时(bin)目录输入以下命令

代码语言:javascript
复制
elasticsearch-certutil cert --ca elastic-stack-ca.p12

提示输入密码和文件输出路径,可以直接回车,也可以输入密码和输入自定义存放路径进行设置.回车的话,会生成如下文件

3、keystore和truststore设置密码

keystore:存放公钥,私钥,数字签名等信息 truststore:存放信任的证书 keystore和truststore都存放key,不同的地方是truststore只存放公钥的数字证书,代表了可以信任的证书,keystore存放私钥相关.

cmd定位到es运行时(bin)目录输入以下命令

代码语言:javascript
复制
elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
代码语言:javascript
复制
elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
代码语言:javascript
复制
elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
代码语言:javascript
复制
elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password

创建证书时如果输了密码,需要输入这个密码.这里不做输入回车,操作完成之后,相关的信息就会写入到config文件夹下的elasticsearch.keystore中

4、修改配置文件修改Xpack相关信息

打开elasticsearch.yml文件加入以下配置

代码语言:javascript
复制
xpack.security.enabled: true

xpack.security.http.ssl:
  enabled: false
  verification_mode: certificate
  truststore.path: elastic-certificates.p12
  keystore.path: elastic-certificates.p12

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

这里要注意elastic-certificates.p12证书文件的位置,这里默认读取的是config文件夹下,所以需要拷贝一下.

5、集群环境

需要将操作节点生成的证书文件复制到其余节点的config目录下.

6、运行

按上述配置结束完毕之后,在操作节点重置elastic用户的密码, cmd定位到es运行时(bin)目录输入以下命令

代码语言:javascript
复制
elasticsearch-reset-password -u elastic -i <password>

输入用户名密码完成登录.

7、kibana访问

elastic账号是无法用于kibana的登陆的,所以需要自行创建账号,并授权,cmd定位到es运行时(bin)目录输入以下命令

(1)、创建登录kibana的账号

代码语言:javascript
复制
elasticsearch-users useradd 用户名

接着会提示输入密码,键入密码即可.这里用户创建完成

(2)、角色授权操作

代码语言:javascript
复制
elasticsearch-users roles -a superuser 用户名
代码语言:javascript
复制
elasticsearch-users roles -a kibana_system 用户名

superuser能正常打开es的9200端口,kibana_system配置后才可以正常对接kb和es

(3)、查看授权

代码语言:javascript
复制
elasticsearch-users roles -v 用户名

 授权成功.

(4)、修改kibana配置文件kibana.yml

修改以下配置:

代码语言:javascript
复制
elasticsearch.username: "用户名"
elasticsearch.password: "用户密码"
elasticsearch.hosts: ["http://1.1.1.1:9200","http://2.2.2.2:9200","http://3.3.3.3:9200"]
server.port: 5601

(5)、集群环境

如果(4)中host配置了多个节点,需要在节点中重复添加用户和授权的操作

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档