ElasticSearch 7配置密码认证及创建用户

这篇具有很好参考价值的文章主要介绍了ElasticSearch 7配置密码认证及创建用户。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 背景介绍

我们直接安装的ES默认是没有账号与密码的,输入ES服务器的ip:端口,直接就能返回结果,非常不安全:

ElasticSearch 7配置密码认证及创建用户

因此需要设置账号密码。

我这里的实验环境:

ElasticSearch 7配置密码认证及创建用户

二 创建用户

2.1 在ES节点上设置用户密码

2.1.1 在其中一个节点上生成认证文件

必须要生成认证文件,且ES配置文件里要引用这些生成的认证文件,否则启动ES的时候,日志会报错:Caused by: javax.net.ssl.SSLHandshakeException: No available authentication scheme。

虽然ES看起来启动成功了,但是集群状态是异常的。

2.1.1.1 生成CA证书

[EsUser@localhost ~]$ elasticsearch-certutil ca

……

Please enter the desired output file [elastic-stack-ca.p12]: #这里直接回车即可

Enter password for elastic-stack-ca.p12 : #这里直接回车即可,不要设置密码

设置完毕后,会在/usr/local/elasticsearch-7.6.2下看到新生成的文件:

elastic-stack-ca.p12

/*

假如在生成证书的时候设置了密码,会导致无法启动ES,报错:

ElasticsearchSecurityException[failed to load SSL configuration [xpack.security.transport.ssl]]; nested: ElasticsearchException[failed to create trust manager]; nested: ElasticsearchException[failed to initialize SSL TrustManager]; nested: IOException[keystore password was incorrect]; nested: UnrecoverableKeyException[failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.];

Likely root cause: java.security.UnrecoverableKeyException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.

*/

2.1.1.2 生成p12秘钥

#使用第一步生成的证书,生成p12秘钥

elasticsearch-certutil cert --ca elastic-stack-ca.p12

下面三项直接回车即可:

……

Enter password for CA (elastic-stack-ca.p12) :

Please enter the desired output file [elastic-certificates.p12]:

Enter password for elastic-certificates.p12 : #这里直接回车即可,不要设置密码,否则后面ES会启动不了

Certificates written to /usr/local/elasticsearch-7.6.2/elastic-certificates.p12

设置完毕后,会在/usr/local/elasticsearch-7.6.2下看到新生成的文件:

elastic-certificates.p12

#拷贝p12秘钥文件

cd /usr/local/ElasticSearch/config

mkdir certs

cp /usr/local/elasticsearch-7.6.2/elastic-certificates.p12 certs/

2.1.2 将p12认证文件拷贝到其他节点上

在其他节点上先创建下certs目录:

cd /usr/local/ElasticSearch/config

mkdir certs

拷贝文件:

scp /usr/local/ElasticSearch/config/certs/elastic-certificates.p12 192.168.144.202:/usr/local/ElasticSearch/config/certs/elastic-certificates.p12

scp /usr/local/ElasticSearch/config/certs/elastic-certificates.p12 192.168.144.245:/usr/local/ElasticSearch/config/certs/elastic-certificates.p12

2.1.3 修改所有ES节点的配置文件

vi /usr/local/ElasticSearch/config/elasticsearch.yml

添加:

xpack.security.enabled: true

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.verification_mode: certificate

xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12

xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

2.1.4 重启各ES节点

关闭命令略。

启动命令:elasticsearch -d

2.1.5 设置密码

#前提条件

想要成功设置密码的话,必须确保集群状态正常才行,否则密码设置会失败。

在其中一个节点上设置密码即可:

/usr/local/ElasticSearch/bin/elasticsearch-setup-passwords interactive

Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.

You will be prompted to enter passwords as the process progresses.

Please confirm that you would like to continue [y/N]y

Enter password for [elastic]:

Reenter password for [elastic]:

Enter password for [apm_system]:

Reenter password for [apm_system]:

Enter password for [kibana]:

Reenter password for [kibana]:

Enter password for [logstash_system]:

Reenter password for [logstash_system]:

Enter password for [beats_system]:

Reenter password for [beats_system]:

Enter password for [remote_monitoring_user]:

Reenter password for [remote_monitoring_user]:

Changed password for user [apm_system]

Changed password for user [kibana]

Changed password for user [logstash_system]

Changed password for user [beats_system]

Changed password for user [remote_monitoring_user]

Changed password for user [elastic]

2.1.6 登录验证

这里用elastic账号登录:

ElasticSearch 7配置密码认证及创建用户

ElasticSearch 7配置密码认证及创建用户

–相对于之前的可以无密码直接访问,现在需要输入密码才能访问ES了。

2.2 配置kibana用户密码

由于ES设置了密码,kibana也无法无密码访问了,也需要对kibana进行相应设置。

2.2.1 修改配置文件

vi /usr/local/kibana/config/kibana.yml

添加:

elasticsearch.username: “kibana”

elasticsearch.password: “密码”

这里的密码处填写‘2.1.5’里为kibana用户设置的密码。

2.2.2 重启kibana

#启动

/usr/local/kibana/bin/kibana &

2.2.3 登录验证

ElasticSearch 7配置密码认证及创建用户

登录成功,但是,信息无法查看。权限没开通,返回如下信息。

{“statusCode”:403,“error”:“Forbidden”,“message”:“Forbidden”}

用超级用户elastic用户可成功登录。

点击左下角的管理按钮->Security->Users,可以看到我们之前配置过密码的用户:

ElasticSearch 7配置密码认证及创建用户

这些默认用户的角色无法修改,可自己新建角色和用户,来满足自己的使用需求。

2.3 在kibana里创建程序账号

想建一个有增删改查权限的程序账号,提供给程序使用。

2.3.1 创建角色

ElasticSearch 7配置密码认证及创建用户

#给该角色授予操作所有索引的读写权限及创建索引的权限

ElasticSearch 7配置密码认证及创建用户

点击下面的’create role’创建角色。

2.3.2 创建用户

ElasticSearch 7配置密码认证及创建用户

ElasticSearch 7配置密码认证及创建用户

需要赋予该用户kibana_admin权限,否则新用户没权限登录,报错:

{“statusCode”:403,“error”:“Forbidden”,“message”:“Forbidden”}

#也可以直接用命令创建角色及账号。

#创建角色

curl ?--user elastic:密码 ???-H "Content-Type: application/json" -XPUT http://172.18.252.101:10412/_security/role/DmlRole -d '{

"indices": [

????{

??????"names": [

????????"*"

??????],

??????"privileges": [

????????"read",

"write",

"create_index"

??????]

????}

??]

}'

注释:

names:指定索引

privileges:权限类别

#创建账号

curl --user elastic:密码 -H “Content-Type: application/json” -XPOST http://172.18.252.101:10412/_security/user/ProgramUser -d '{

“password” : “密码”,

“roles” : [“DmlRole”,“kibana_admin”]

}’文章来源地址https://www.toymoban.com/news/detail-483391.html

到了这里,关于ElasticSearch 7配置密码认证及创建用户的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手动配置 kafka 用户密码,认证方式等的方式

    部分场景会指定使用某一kafka 来提高安全性,这里就不得不使用用户密码认证方式等来控制

    2024年02月02日
    浏览(31)
  • elasticsearch 配置用户名和密码

    无密码的其他配置项在:https://blog.csdn.net/Xeon_CC/article/details/132064295 elasticsearch.yml配置文件: 查看证书过期时间: 在上面的“生成证书”这个步骤中的第二行命令,可以换为以下的步骤,安全性会更高,注意,确保存在elastic-stack-ca.p12文件,也就上述“生成证书”步骤中的第

    2024年02月14日
    浏览(45)
  • JAVA ElasticSearch中配置用户名密码

     

    2024年02月12日
    浏览(46)
  • [zookeeper] SASL(Simple Authentication and Security Layer) 用户名密码认证配置

             使用zookeeper zkCli.sh 连接 zookeeper服务时,默认裸连,晓得ip与端口之后即可连接zookeeper服务,本文使用SASL 用户名密码配置服务端与客户端,在zkCli连接前,服务端配置xxxjaas.conf保存用户名密码,客户端(也就是zkCli或者各种语言的sdk)连接时同样也需要xxxjaas.conf文件

    2024年02月10日
    浏览(36)
  • 创建密码库/创建用户帐户/更新 Ansible 库的密钥/ 配置cron作业

    目录 创建密码库 创建用户帐户 更新 Ansible 库的密钥  配置cron作业       按照下方所述,创建一个 Ansible 库来存储用户密码:         库名称为 /home/curtis/ansible/locker.yml         库中含有两个变量,名称如下:             pw_developer,值为 Imadev             pw_manager,值为

    2024年02月12日
    浏览(39)
  • ElasticSearch第一讲 Docker-compose 单机部署Elasticsearch kibana esHead与配置认证证书设置密码

    docker安装 docker-compose安装配置,如果还有没安装docker的可以参考我的docker/docker-compose安装配置 本次讲解的是安装ES 7.13.3 现在目前官网给出的最新ES版本已经是8.x了,ElasticSearch官网:https://www.elastic.co/guide/index.html 好了长话短说,我们直接上docker配置文件,对于一些配置文件和数

    2024年02月03日
    浏览(46)
  • 【用户认证】密码加密,用户状态保存,cookie,session,token

    认证(authentication )是验证你的身份的过程,而授权(authorization)是验证你有权访问的过程 获取用户提交的用户名和密码 根据用户名,查询数据库,获得完整的用户信息,包括真正的密码 比较提交的密码和查询到的密码 如果二者相等,则用户认证成功;否则用户认证失败

    2024年02月12日
    浏览(43)
  • elasticsearch设置密码认证

    说明: 1)安全要求开启密码认证访问 2)es集群和单点设置密码认证有区别 3)es重新设置elastic密码有两种方法 4)请注意es版本以及操作步骤 图一: 图二、

    2024年02月14日
    浏览(42)
  • ELK集群添加ES用户名密码认证

    摘要: elasticsearch7.x 开启安全认证xpack模块,以及kibana、logstash、filebeat组件连接开启安全认证的es。 登录kibana服务,在Dev Tools菜单中,输入:GET _cat/nodes?v master指标中带“*”则是主节点,这里主节点是:10.62.196.37 简介:这是一个包含证书颁发机构(CA)证书的文件。CA证书用

    2024年02月02日
    浏览(38)
  • 通过用户名密码认证保障 MQTT 接入安全

    认证是一种安全措施,用于识别用户并验证他们是否有权访问系统或服务器。它能够保护系统免受未经授权的访问,确保只有经过验证的用户才能使用系统。 物联网连接万物,对试图访问基础设施的用户进行认证至关重要。未经授权的访问存在重大的安全隐患,必须加以防范

    2024年01月23日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包