Elaticsearch从哪里获取elasticsearch-keystore密码?

nkhmeac6  于 2023-03-01  发布在  ElasticSearch
关注(0)|答案(2)|浏览(667)

我一直在阅读documentation Elastic provides这个小东西,但它只是关于如何操作它,而我并不真正理解它的基本原理。
1.使用密码初始化密钥库:bin/elasticsearch-keystore passwd
1.您向其添加一个键值bin/elasticsearch-keystore add mySecret(提示输入secret)
1.您引用elasticsearch.yml中的键,即${mySecret}
1.启动Elasticsearch,值会神奇地从密钥库中提取并替换。
我的怀疑是:Elasticsearch如何获得密码来解密密钥库并使用配置文件中的值?或者密钥库的密码存储在某个地方吗?
如果是,在哪里?在这种情况下,我根本看不到使用密钥库的好处?

dy1byipe

dy1byipe1#

@ ssarduzio把你的密码放在ansible的yml文件中,用ansible-vault保护yml文件,这样你就只需要记住和键入所有密钥库的保险库密码和敏感密码,还有一些技巧取决于你的设置,你可以进一步自动化,并自动提供保险库密码

z31licg0

z31licg02#

目前我使用的是elasticsearch v7.10,它的systemd服务运行/usr/share/elasticsearch/bin/systemd-entrypoint作为它的ExecStart,通过查看它,您可以看到它试图从环境变量ES_KEYSTORE_PASSPHRASE_FILE指定的文件中读取keystore密码。
您可以创建一个包含密码的文件,在服务文件中添加Environment指令,并将ES_KEYSTORE_PASSPHRASE_FILE指定为文件的路径。

touch /var/elasticpassword
echo MY_STRONG_PASSWORD > /var/elasticpassword
vim /usr/lib/systemd/system/elasticsearch.service

[service]节中添加以下行:

Environment=/var/elasticpassword

重新加载systemctl并重新启动服务

systemctl daemon-reload
service elasticsearch restart

相关问题