[转帖]龙叔学ES:Elasticsearch XPACK安全认证
https://juejin.cn/post/7081994919237287950
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Elasticsearch往往存有公司大量的数据,如果安全不过关,那么就会有严重的数据安全隐患。
Elasticsearch 的安全认证方式有不少,如http-basic,search guard,shield等,本文讲的是使用Xpack进行安全认证。
1、什么是Xpack
X-Pack是Elastic Stack扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。
自6.8以及7.1+版本之后,基础级安全永久免费。
基础版本安全功能列表如下:
2、相关安全配置介绍
这里挑一些比较重要常见的配置项介绍,完整的配置介绍可以查看官方文档
2.1、xpack.security.enabled
默认为true,启用节点上ES的XPACK安全功能,相当于总开关
2.2、xpack.security.http.ssl
这个是用来开启https的,以及对应的设置,整体配置项如下:
xpack.security.http.ssl:
enabled: false 【开启还是关闭】
verification_mode: certificate【如下】
【full:它验证所提供的证书是否由受信任的权威机构(CA)签名,并验证服务器的主机名(或IP地址)是否与证书中识别的名称匹配。】
【certificate:它验证所提供的证书是否由受信任的机构(CA)签名,但不执行任何主机名验证。】
【none:它不执行服务器证书的验证。】
truststore.path: certs/elastic-certificates.p12 【信任存储库文件的存放位置】
keystore.path: certs/elastic-certificates.p12【密钥存储库文件的存放位置】
2.3、xpack.security.transport.ssl
这个是传输层的认证设置,整体配置项如下:
xpack.security.transport.ssl:
enabled: true【开启还是关闭】
verification_mode: certificate【如下】
【full:它验证所提供的证书是否由受信任的权威机构(CA)签名,并验证服务器的主机名(或IP地址)是否与证书中识别的名称匹配。】
【certificate:它验证所提供的证书是否由受信任的机构(CA)签名,但不执行任何主机名验证。】
【none:它不执行服务器证书的验证。】
keystore.path: certs/elastic-certificates.p12【信任存储库文件的存放位置】
truststore.path: certs/elastic-certificates.p12【密钥存储库文件的存放位置】
3、ES集群认证配置
命令操作都是在ES安装根目录下执行的
3.1、创建证书
a、创建一个证书颁发机构
提示命名文件:直接回车,默认文件名elastic-stack-ca.p12文件 提示输入密码:可以直接回车,也可以输入密码进行设置
./bin/elasticsearch-certutil ca
b、为节点生成证书和私钥
提示命名文件,直接回车,默认文件名elastic-certificates.p12文件 提示输入密码:可以直接回车,也可以输入密码进行设置
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
c、config目录下创建下certs目录
makdir config/certs
d、将文件可拷贝到certs目录下
mv elastic-certificates.p12 config/certs/
3.2、给keystore和truststore设置密码
注解: keystore可以看成一个放key的库,key就是公钥,私钥,数字签名等组成的一个信息。 truststore是放信任的证书的一个store truststore和keystore的性质是一样的,都是存放key的一个仓库,区别在于,truststore里存放的是只包含公钥的数字证书,代表了可以信任的证书,而keystore是包含私钥的。
如果在创建证书的过程中加了密码,需要输入这个密码。每个节点都需要
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
./bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password
这样就会在config目录下keystore文件了
3.3、修改配置文件并重启
配置文件中加入以下配置,然后重启
xpack.security.enabled: true
xpack.security.http.ssl:
enabled: false
verification_mode: certificate
truststore.path: certs/elastic-certificates.p12
keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/elastic-certificates.p12
truststore.path: certs/elastic-certificates.p12
3.4、创建用户密码
集群中的节点都按照上面的方式完成配置并启动后,就可以设置账号密码了
a、自动创建密码
./bin/elasticsearch-setup-passwords auto
b、手动输入密码
./bin/elasticsearch-setup-passwords interactive
c、重置用户密码(随机密码)
./bin/elasticsearch-reset-password -u elastic
d、重置用户密码(指定密码)
./bin/elasticsearch-reset-password -u elastic -i <password>
4、认证验证场景
4.1、浏览器访问验证
这里说明一下: xpack.security.http.ssl的enable为true 就会是https,为false就是http,我这里是关掉了
4.2、curl 认证
当你执行curl去访问es api的时候也会提示需要进行认证
但是带上账号密码就可以了
4.3、kibana 认证
kibana中配置ES中配置的kibana账号密码即可连接ES认证
elasticsearch.username: "kibana"
elasticsearch.password: "XXX"
elasticsearch.hosts: ["http://1.1.1.1:9200","http://2.2.2.2:9200","http://3.3.3.3:9200"]
server.port: 5601
[转帖]龙叔学ES:Elasticsearch XPACK安全认证的更多相关文章
- es破解xpack
环境:OS:CentOS 7elasticsearch:6.5.0 1.vim LicenseVerifier.java package org.elasticsearch.license; impo ...
- 龙叔拿了20几个offer,原因竟有些泪目...
我是龙叔,一个分享互联网技术和心路历程的大叔. 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles ...
- 三叔学FPGA系列之二:Cyclone V中的POR、配置、初始化,以及复位
对于FPGA内部的复位,之前一直比较迷,这两天仔细研究官方数据手册,解开了心中的诸多疑惑,感觉自己又进步了呢..... 原创不易,转载请转原文,注明出处,谢谢. 一.关于POR(Power-On ...
- 【Elasticsearch】【WEB】java web服务连接es elasticsearch始终报错,无法正常连接使用的错误解决历程
前情提要: web服务往华为云上迁移 ================内网的好环境,相关配置=================== 1.web服务关于ES的集群配置如下: elasticAddress ...
- ES ElasticSearch 7.x 下动态扩大索引的shard数量
ES ElasticSearch 7.x 下动态扩大索引的shard数量 背景 在老版本的ES(例如2.3版本)中, index的shard数量定好后,就不能再修改,除非重建数据才能实现. 从ES6. ...
- SpringBoot 整合es(elasticsearch)使用elasticsearch-rest-high-level-client实现增删改
引入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok< ...
- elasticsearch基于RBAC认证和集群之间的TLS通讯
elasticsearch基于RBAC认证和集群之间的TLS通讯 一.背景 二.需要解决的问题 三.给es增加用户名和密码访问 1.修改config/elasticsearch.yml 2.访问es集 ...
- ElasticSearch + xpack 使用.md
ElasticSearch 是一个高可用开源全文检索和分析组件.提供存储服务,搜索服务,大数据准实时分析等.一般用于提供一些提供复杂搜索的应.我们为什么要选择 ElasticSearch ?因为它是一 ...
- ElasticSearch + xpack 使用
ElasticSearch 是一个高可用开源全文检索和分析组件.提供存储服务,搜索服务,大数据准实时分析等.一般用于提供一些提供复杂搜索的应.我们为什么要选择 ElasticSearch ?因为它是一 ...
- ES(Elasticsearch)
基本概念 Elasticsearch是一个实时分布式搜索和分析引擎 支持: 全文搜索 结构化搜索 分析 可以这样进行描述: 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 ...
随机推荐
- 未经授权访问 .js
流程顺序:后台管理登陆地址 → 后台主页地址 → fuzz测试出用户管理列表接口 → 直接调接口..全程黑盒. 那么接下来我逆着来推理下逻辑: 首先是拿到某后台管理登录的网址 接着查看html源码,发 ...
- three.js中的矩阵计算
目录 1. 概述 2. 详论 2.1. 行主序与列主序列 2.2. 矩阵乘法 3. 参考 1. 概述 three.js中自带了矩阵运算库,不过在使用的过程中总是容易混淆.不知道是行主序还是列主序,前乘 ...
- .NET周报【10月最后一期 2022-11-01】
精选要闻 .NET 7 NativeAOT比.NET单文件发布文件小80% https://twitter.com/JamesNK/status/1584919726861737984?s=20&am ...
- 聊聊LiteOS中生成的Bin、HEX、ELF三种文件格式
摘要:我们在使用编译器在编译工程后会要求生成可执行文件,将这些文件烧录到MCU进行运行,达到我们测试和使用程序的目的,再使用工具链进行编译的时候往往生成.bin..hex ..elf ..alf等文件 ...
- 关于单元测试的那些事儿,Mockito 都能帮你解决
摘要:相信每一个程序猿在写Unit Test的时候都会碰到一些令人头疼的问题:如何测试一个rest接口:如何测试一个包含客户端调用服务端的复杂方法:如何测试一个包含从数据库读取数据的复杂方法...这些 ...
- 使用MRS CDL实现实时数据同步的极致性能
摘要:MRS CDL旨在实现最大的数据复制吞吐量和低复制延迟. 本文分享自华为云社区<使用MRS CDL实现实时数据同步的极致性能>,作者:大数据修行者 . MRS CDL提供从多个RDB ...
- 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0 (Ⅴ)
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布.白皮书简述了 ByteHou ...
- 听说火山引擎推出的 DataLeap,已经可以支持万级表的数据血缘图谱了!
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 数据来源广.量级大.场景多,导致数据之间关系变得异常复杂. 经过读取.清洗.存储.计算等一系列流程之后,数据最终汇 ...
- 告别数据开发中的人工审核!火山引擎 DataLeap 落地“自动校验开发规范”能力
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近期,火山引擎 DataLeap 智能市场上线"数仓建表规范"功能,该功能通过规范数仓场景下的 ...
- WPF 自定义可拖动标题栏
要注意,拖拽的地方,需要加背景色,否则 DrageMove 将无效 MainWindows.xaml <Window x:Class="Report.MainWindow" ...