logstash-keystore保存Elasticsearch或其他密码

2024-04-02 23:48

本文主要是介绍logstash-keystore保存Elasticsearch或其他密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考:https://www.phpmianshi.com/?id=249

背景

在配置Logstash时,你可能需要指定敏感设置或配置,比如密码,与依赖文件系统权限来保护这些值不同,你可以使用Logstash keystore来安全地存储用于配置设置的secret值。

在向keystore中添加key及其secret值之后,你可以在配置敏感设置时使用key代替secret值。

引用key的语法与环境变量的语法相同:${KEY}KEY是key的名称。例如:

jdbc_password => "${MYSQL_PWD}"

注意,Logstash keystore与Elasticsearch keystore不同,虽然Elasticsearch keystore允许你按名称存储elasticsearch.yml值,但是Logstash keystore允许你指定可在Logstash配置中引用的任意名称。

当前不支持从pipelines.yml或命令行(-e)引用keystore数据。

 

keystore密码

 

你可以通过在名为LOGSTASH_KEYSTORE_PASS的环境变量中存储密码来保护对Logstash keystore的访问,如果在设置此变量后创建Logstash keystore,它将受到密码保护。这意味着环境变量需要被正在运行的Logstash实例访问,这个环境变量还必须为需要发出keystore命令(添加、列表、删除等)的任何用户正确设置。

建议使用keystore密码,但这是可选的,即使你没有设置密码,数据也会被加密。但是,强烈建议配置keystore密码并对任何可能包含环境变量值的文件授予限制性权限,如果你选择不设置密码,那么你可以跳过本节的其余部分。

 

环境

logstash7.5.1 + supervisor

 

keystore位置

keystore必须位于Logstash的path.settings目录,这是包含logstash.yml文件的同一个目录。在对keystore执行任何操作时,建议为keystore命令设置path.settings

 

示例

这次我们logstash采用源码安装,安装目录为 /usr/local/logstash ,运行使用supervisor

 

#设置隐藏history记录
set +o history
#设置访问Logstash keystore的密码
export LOGSTASH_KEYSTORE_PASS=这里设置一个密码
#设置记录history
set -o history
cd /usr/local/logstash/bin
#创建
./logstash-keystore --path.settings /usr/local/logstash/config create
./logstash-keystore --path.settings /usr/local/logstash/config add MYSQL_PWD
#这里会提示我们设置密码 Enter value for MYSQL_PWD:  我们输入一个密码回车提示:Added 'mysql_pwd' to the Logstash keystore.
#查看设置过的参数
./logstash-keystore --path.settings /usr/local/logstash/config list
#移除一个key
./logstash-keystore remove MYSQL_PWD

 

 

当你从RPM或DEB包安装中运行Logstash时,环境变量来自/etc/sysconfig/logstash

# Have to save the password for service to kick start (installed by RPM), otherwise service will fail.
echo "LOGSTASH_KEYSTORE_PASS=changeme" > /etc/sysconfig/logstash

这个设置要求运行Logstash的用户定义环境变量LOGSTASH_KEYSTORE_PASS=mypassword,如果没有定义环境变量,Logstash就无法访问keystore。

你可能需要创建/etc/sysconfig/logstash,这个文件应该由具有600权限的root用户拥有,/etc/sysconfig/logstash的格式应该是ENVIRONMENT_VARIABLE=VALUE,每行一个条目。

对于其他发行版,如Docker或ZIP,请参阅运行时环境(Windows、Docker等)的文档,了解如何为运行Logstash的用户设置环境变量,确保该环境变量(以及密码)只能被该用户访问。

 

这时候,我们再去修改logstash同步的配置文件,把需要mysql密码的地方都改成 ${MYSQL_PWD}

 

jdbc_password => "${MYSQL_PWD}"

重新启动logstash

 

supervisorctl restart logstash

观察日志发现报错:

 

Found a file at /usr/local/logstash/config/logstash.keystore, but it is not a valid Logstash keystore.

原因是supervisor接管logstash的时候,没有设置环境变量  LOGSTASH_KEYSTORE_PASS,上面我们已经介绍过了,需要设置该变量才能访问logstash-keystore,我们设置下环境变量 environment

 

[program:logstash]
command = /usr/local/logstash/bin/logstash
directory = /usr/local/logstash/
numprocs = 1
process_name = %(program_name)s
user=root
environment=LOGSTASH_KEYSTORE_PASS=这里设置刚才设置的密码
autostart = false
autorestart = true
startsecs = 10
startretries = 10
redirect_stderr = true
stdout_logfile = /dev/null
stdout_logfile_maxbytes = 1000MB
loglevel = info

重新启动logstash

 

supervisorctl reload
supervisor start logstash

修改一条数据,测试一下,大功告成,这样我们就可以安全的设置一些敏感的密码等信息了

这篇关于logstash-keystore保存Elasticsearch或其他密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871385

相关文章

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

MySQL9.0默认路径安装下重置root密码

《MySQL9.0默认路径安装下重置root密码》本文主要介绍了MySQL9.0默认路径安装下重置root密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录问题描述环境描述解决方法正常模式下修改密码报错原因问题描述mysqlChina编程采用默认安装路径,

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo