【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

更改 Open Distro for Elasticsearch 中的 Admin 密码

  • 2019-10-07
  • 本文字数:3209 字

    阅读完需:约 11 分钟

更改 Open Distro for Elasticsearch 中的 Admin 密码

简介

Open Distro for Elasticsearch 随附高级安全插件。该插件预配置有许多不同的用户和默认密码 – 当然,您可以根据需要更改这些默认设置!


某些预配置用户(kibanaro、logstash、readall 和 snapshotrestore)的密码可在 Kibana 的 Security 用户界面中进行更改。admin 和 kibanaserver 用户设置为只读,必须在配置文件中进行更改。


如果您使用的是 Open Distro for Elasticsearch 的 RPM 发行版,则可以直接更改文件。如果您使用的是 Docker,则需要多进行一些设置,接下来我将进行详细说明。简而言之,要选择和部署新的 admin 密码,您需创建该密码的哈希,将其放置在本地文件中,然后将该本地文件映射到容器的文件系统中。要更改 kibanaserver 密码,您还需要覆盖 docker-compose.yml 文件中的环境变量。

为您的 admin 和 kibanaserver 用户创建 Hashes

在为安全插件配置密码时,不要使用纯文本。该插件提供了一个脚本,用于对纯文本进行哈希转换。然后,您可以在各种配置文件中使用哈希版本的密码。


要访问该工具,请部署并运行 Open Distro for Elasticsearch。按照博文 Getting Up and Running with Docker Desktop 中的步骤执行操作。容器运行后,找到一个带有 docker ps 的 Elasticsearch 容器。在我的系统上,docker ps 的输出是(已根据页面大小进行编辑):


CONTAINER ID IMAGE                                              STATUS   NAMESfb1a78290e33 amazon/opendistro-for-elasticsearch-kibana:0.7.0   Up…      odfe-kibanaa53942e76501 amazon/opendistro-for-elasticsearch:0.7.0          Up…      odfe-node1f33f91837f47 amazon/opendistro-for-elasticsearch:0.7.0          Up…      odfe-node2
复制代码


在我的设置中,容器 a53942e76501 和 f33f91837f47 正在运行 Elasticsearch。使用 docker exec 生成 admin 密码。使用其中一个 Elasticsearch 容器运行以下命令:


$ docker exec -it a53942e76501 /bin/bash -c /usr/share/elasticsearch/plugins/opendistro_security/tools/hash.sh[Password:] <type your new password here>$2y$12$7CVWE8PXPmM7N13ANPbl5eCR7qZeKDVWe3ROesgjfLQYHTWYAy3A6
复制代码


确保使用您要使用的实际密码替换。保存回复;这是您的哈希密码。对您的新 kibanaserver 密码重复执行此操作。(我们建议使用两个不同的密码。) 设置一个安全强度高的密码至关重要 – 至少八个字符,包括大小写字母、数字和特殊符号。(Elasticsearch 可以为您验证密码的强度 – 我们将在以后的博文中处理这个问题。)

创建 internal_users.yml 的本地修改副本

安全插件用户的身份验证信息存储在 internal_users.yml 文件中。您将使用包含新密码的本地副本替换该文件。再次使用 docker exec,将文件内容捕获到本地磁盘:


docker exec -it a53942e76501 /bin/bash -c cat /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml > internal_users.yml
复制代码


现在,在您常用的编辑器中打开 internal_users.yml 的本地副本,并使用您在上一步中创建的哈希值更改 admin 和 kibanaserver 用户的密码字符串。



保存文件。

修改您的 Docker-compose.yml 文件

现在,您需要通过修改 docker-compose.yml 将新的 internal_users.yml 连接到 Docker 环境。在编辑器中打开此文件,找到 odfe-node1 和 odfe-node2 服务的 volumes 部分。在这些部分中添加一行,将本地文件映射到容器的文件系统。完成后,应如下所示:


volumes:- odfe-data1:/usr/share/elasticsearch/data- <path to your>/internal_users.yml: /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
复制代码


确保更改 odfe-data1 和 odfe-data2 描述,并将“gt;”替换为实际路径。


您还需要覆盖 kibana 容器的 kibanaserver 密码。在 docker-compose.yml 底部找到 kibana 容器描述的 environment 部分。更改此部分以添加 ELASTICSEARCH_USERNAME 和 ELASTICSEARCH_PASSWORD。请注意,必须使用全部大写和下划线而非句点。完成后,environment 部分应如下所示:


environment:ELASTICSEARCH_URL: https://odfe-node1:9200ELASTICSEARCH_USERNAME: kibanaserverELASTICSEARCH_PASSWORD: goodkibanapassword
复制代码


请务必在 docker-compose.yml 中使用纯文本版本的密码。保存文件。

重启您的环境

要使密码更改生效,您需要重启容器。但是,由于您已运行 Elasticsearch,因此初始密码将存储在安全插件的索引中,因此您需要完全重置 Elasticsearch。最简单的方法是使用 docker-compose down -v 删除已保存的卷。(重要提示:如果您已将任何数据加载到 Elasticsearch 中,则此命令会将其删除。) 从包含 docker-compose.yml 的目录中,发出以下命令:


docker-compose down -vdocker-compose up
复制代码


您的浏览器可能还包含以前密码的缓存副本。在我第一次运行这些命令时,Kibana 没有为我完全加载,而是显示了空白页面并缺少几个选项卡。要解决此问题,请使用 Kibana 选项卡底部的 Admin 链接从 Kibana 注销,然后使用新凭据重新登录。



要确保密码更改成功,您可以运行以下命令:


curl -XGET https://localhost:9200 -u admin:goodadminpassword --insecurecurl -XGET https://localhost:9200 -u kibanaserver:goodkibanapassword --insecure
复制代码


请务必将新密码的 goodadminpassword 和 goodkibanapassword 替换为纯文本。您应该会从 Elasticsearch 收到正常回复:


{"name" : "QaU19eV","cluster_name" : "odfe-cluster","cluster_uuid" : "ywafp5iBR96V-H-5KDPlbg","version" : {"number" : "6.5.4","build_flavor" : "oss","build_type" : "tar","build_hash" : "d2ef93d","build_date" : "2018-12-17T21:17:40.758843Z","build_snapshot" : false,"lucene_version" : "7.5.0","minimum_wire_compatibility_version" : "5.6.0","minimum_index_compatibility_version" : "5.0.0"},"tagline" : "You Know, for Search"}
复制代码

更改所有其他账户的密码

现在,您已经更改 admin 和 kibanaserver 用户的密码。在 Open Distro for Elasticsearch 的安全插件中预先配置了四个用户:kibanaro、logstash、readall 和 snapshotrestore。 您可以使用安全插件的用户界面来更改这些密码。


导航到 https://localhost:5601,登录您的集群。如果您已注销,系统将再次提示您登录。使用您在前面步骤中设置的 admin 用户和新密码。



单击 Security 选项卡,然后单击 Internal User Database 图标。



然后单击以编辑 kibanaro 用户。



在 Password 中输入新密码,然后在 Repeat password 文本框中重新输入该密码。您还可以查看并编辑此用户的 Backend roles 和 Attributes。完成后,单击 Submit。


对 logstash、readall 和 snapshotrestore 用户重复此流程。

小结

通过为预先提供的用户创建自己的密码,您提高了 Open Distro for Elasticsearch 集群的安全性。在以后的博文中,我们将深入探讨安全插件,与您分享如何更换演示凭证、如何设置用户,以及如何与联合身份提供程序建立关联。


有问题或疑问? 希望参与讨论? 您可以在我们的论坛上获得帮助并讨论 Open Distro for Elasticsearch。您可以在这里提出问题。


作者介绍:


Jon Handler


Jon Handler (@_searchgeek) 是总部位于加利福尼亚州帕罗奥图市的 Amazon Web Services 的首席解决方案架构师。Jon 与 CloudSearch 和 Elasticsearch 团队密切合作,为想要将搜索工作负载迁移到 AWS 云的广大客户提供帮助和指导。在加入 AWS 之前,Jon 作为一名软件开发人员,曾为某个大型电子商务搜索引擎编写代码长达四年。Jon 拥有宾夕法尼亚大学的文学学士学位,以及西北大学计算机科学和人工智能理学硕士和博士学位。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/change-passwords-open-distro-for-elasticsearch/


2019-10-07 15:39960
用户头像

发布了 1829 篇内容, 共 89.9 次阅读, 收获喜欢 73 次。

关注

评论

发布
暂无评论
发现更多内容

阿里云E-MapReduce 极客大赛开放报名 数十万奖金等你挑战

Lily

比赛

什么是真正的HTAP?(一)背景篇

StoneDB

MySQL OLAP OLTP HTAP StoneDB

24小时共享自助洗车店你见过吗

共享电单车厂家

24小时共享自助洗车 自助洗车加盟 自助洗车店

Apache APISIX Meetup 南京站!我们 7.30 见!

API7.ai 技术团队

API网关 APISIX Meetup Workshop

企业在创建产品帮助中心时需要注意的问题!

Baklib

企业 客户服务 帮助中心

牛逼!这份24W字的SpringBoot从入门到实战让你彻底玩明白

了不起的程序猿

Java springboot java程序员

深入理解 Linux 的 TCP 三次握手

C++后台开发

Linux TCP 后端开发 C++后台开发 C++开发

“智慧工厂”上线,破局传统工厂数字化转型

AIRIOT

低代码 物联网 低代码,项目开发

Dimitra 和 Ocean Protocol 解读农业数据背后的秘密

股市老人

【森城市】GIS数据漫谈(四)— 坐标系统

ThingJS数字孪生引擎

洗车店洗车贵试试自助洗车吧

共享电单车厂家

自助洗车加盟 车白兔自助洗车 什么是自助洗车 自助洗车价格

HDFS、纱线、蜂巢MRS中使用Ranger实现权限管理全栈式实践

华为云开发者联盟

大数据 后端 MRS

linux之拖拽上传文件

入门小站

Linux

如何在企业工作中应用知识管理,解决企业的问题?

Baklib

知识管理

【7.8-7.15】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

【计算讲谈社】第六讲|三星堆奇幻之旅:只有云计算才能带来的体验

大咖说

云计算 三星堆 数字空间 阿里云大咖说 计算讲谈社

Python|类与对象

AXYZdong

Python 7月月更

5分钟快速梳理你的HTTP体系

程序员海军

前端 HTTP 7月月更

加盟自助洗车真的不用招人吗

共享电单车厂家

自助洗车加盟 车白兔自助洗车 无人自助洗车

24小时自助共享洗车有人洗吗

共享电单车厂家

24小时无人自助洗车 自助洗车加盟 车白兔自助洗车 自助洗车店

无需CORS,用nginx解决跨域问题,轻松实现低代码开发的前后端分离

葡萄城技术团队

nginx 前后端分离 cros

24小时自助共享洗车店要多少钱

共享电单车厂家

自助洗车加盟 车白兔洗车 24小时自助共享洗车 自助共享洗车店

Grafana Labs携手阿里云,将提供国内首款Grafana托管服务

Lily

华为云Stack南向开放框架,帮助生态伙伴高效入云

华为云开发者联盟

云计算 后端

Java实现有getMin功能的栈

工程师日月

Java 算法 7月月更

使用Java客户端发送消息和消费的应用

hum建应用专家

云计算

要想不踩SaaS那些坑,得先了解“SaaS架构”

华为云开发者联盟

云计算 开发 SaaS DTT

C 语言入门(六)

逝缘~

7月月更

区块链合约安全系列(三):如何认识及预防公链合约中的自毁攻击

BSN研习社

区块链、

英特尔发布开源AI参考套件

科技之家

使用 SSH 方式拉取代码

攻城狮杰森

git GitHub SSH gitee 7月月更

更改 Open Distro for Elasticsearch 中的 Admin 密码_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章