QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

更改 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:391149
用户头像

发布了 1856 篇内容, 共 129.3 次阅读, 收获喜欢 81 次。

关注

评论

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

推动数字化转型,OceanBase 助力保险企业创造新价值

OceanBase 数据库

数据库 开源 技术宅 oceanbase 分布式,

双11“剁手”后,你的包裹收到了吗?

OceanBase 数据库

数据库 开源 分布式 oceanbase

“敏捷版”全链路压测

阿里巴巴云原生

阿里云 云原生 全链路压测 PTS

[Pulsar] ChunkMessageID介绍及其原理

Zike Yang

Apache Pulsar 11月日更

【Flutter 专题】03 图解第一个程序 Hello World!

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

黑客常备20个工具,你知道几个?

喀拉峻

前端开发:VS Code编辑器新建Vue文件自定义模板的方法

三掌柜

11月日更

第三代分布式数据库来了,真香!

OceanBase 数据库

数据库 开源 分布式 oceanbase

度小满启动“小微加油站”,让低息服务可持续

脑极体

阿里大规模业务混部下的全链路资源隔离技术演进

阿里巴巴云原生

阿里云 云原生 资源隔离 ACK 混部

FFmpeg[5] - 将视频文件转码成MP4格式(FFmpeg转封装2)

liuzhen007

11月日更

Python Qt GUI设计:QLabel标签类(基础篇—11)

不脱发的程序猿

Python PyQt GUI设计 QLabel标签类

参与tdengine开源的方式

williamcai

fork git 学习

千万级学生管理系统的考试试卷存储方案设计

Beyond Ryan

🍃【Spring专题】「实战系列」重新回顾一下异常重试框架Spring Retry的功能指南

码界西柚

spring 11月日更 Spring retry Guava retry

.NET6新东西--Lambda优化

喵叔

11月日更

Go 的 Panics 处理

baiyutang

golang 11月日更

Prometheus 都可以采集那些指标?-- 常用 Exporter 合集

耳东@Erdong

内容合集

家庭太阳能发电,何时能告别“两极分化”?

脑极体

【死磕Java并发】-----Java内存模型之总结

chenssy

11月日更 死磕 Java 死磕 Java 并发

给面试官上一课:HTTPS是先进行TCP三次握手,再进行TLS四次握手

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

我理解的CPI和PPI

石云升

学习笔记 11月日更

MySQL事务的实现原理之Undo Log的分析

卢卡多多

Undo Log 11月日更

Android C++系列:Linux文件系统(二)

轻口味

c++ android jni 11月日更

惨遭GitHub直接封杀的阿里P8手敲出来这份565页凤凰架构分布式手册,有何神奇之处

热爱java的分享家

Java 面试 程序人生 编程语言 凤凰架构

两个排序数组的中位数,“最”有技术含量的解法!

老表

Python 算法 LeetCode 11月日更

dart系列之:dart中的异步编程

程序那些事

flutter dart 程序那些事 11月日更

【Three.js】随着元宇宙开启WEB3D之路

devpoint

JavaScript WebGL 3D three.js 11月日更

共建全栈国产化解决方案 | OceanBase持续与合作伙伴推进测试互认

OceanBase 数据库

数据库 分布式 双十一 oceanbase

深入浅出,一文吃透mysql索引

微客鸟窝

MySQL 11月日更

Prometheus Exporter (三)容器信息监控

耳东@Erdong

container Prometheus exporter 11月日更 cAdvisor

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