密钥库和安全设置
配置Logstash时,可能需要配置一些敏感信息,例如密码。您可以使用Logstash密钥库来安全地存储这些配置信息,而不是依赖文件系统权限来保护它们。
将密钥的键值添加到密钥库后,可以在配置敏感信息时,使用密钥键代替密钥值。
引用密钥的语法与 配置中引用环境变量 的语法相同:
${KEY}
其中KEY是密钥的键名。
例如,假设密钥库包含一个键为ES_PWD的密钥,其值为yourelasticsearchpassword:
- 在配置文件中,使用:
output { elasticsearch {...password => "${ES_PWD}" } } } - 在
logstash.yml中,使用:xpack.management.elasticsearch.password: ${ES_PWD}
请注意,Logstash密钥库与Elasticsearch密钥库不同,虽然Elasticsearch密钥库允许您按名称存储elasticsearch.yml值,但Logstash密钥库允许您指定可在Logstash配置中引用的任意名称。
注意: 目前不支持从
pipelines.yml或命令行 (-e) 引用密钥库数据。注意: 如需在 集中管道管理 引用密钥库数据,要求每个Logstash部署都具有密钥库的本地副本。
当Logstash解析设置(logstash.yml)或配置(/etc/logstash/conf.d/*.conf)时,它会在解析环境变量之前解析密钥库中的密钥。
密钥库密码
您可以在环境变量LOGSTASH_KEYSTORE_PASS中设置Logstash密钥库的访问密码。如果在设置此变量后创建Logstash密钥库,则密钥库将受密码保护,这说明运行Logstash实例必须能够访问环境变量,同时还需要为所有操作密钥库(添加,列出,删除等)的用户正确设置此环境变量。
用户可以自由选择是否使用密钥库密码,即使未设置密码,数据也会被加密,但是,强烈建议为密钥库设置密码,并对所有包含环境变量值的文件进行权限限制。如果您选择不设置密码,则可以跳过本节的后续部分。
例如设置密码,然后创建密钥库:
set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
bin/logstash-keystore create
此设置要求运行Logstash的用户定义环境变量 LOGSTASH_KEYSTORE_PASS=mypassword 。如果未定义该环境变量,则Logstash无法访问密钥库。
从RPM或DEB程序包安装运行Logstash时,环境变量储存于 /etc/sysconfig/logstash 中。
注意: 您可能需要创建
/etc/sysconfig/logstash。此文件的拥有者为root用户,其中包含600个权限。/etc/sysconfig/logstash的格式为ENVIRONMENT_VARIABLE=VALUE,每行设置条目。
对于其他发行版,例如Docker或ZIP,请参阅运行时环境的文档(Windows,Docker等),以了解如何为运行Logstash的用户设置环境变量。确保只有该用户可以访问环境变量(以及密码)。
密钥库位置
密钥库与 logstash.yml 文件同样位于Logstash的 path.settings 目录中。对密钥库执行任何操作时,建议为keystore命令设置 path.settings。例如,要在RPM / DEB安装上创建密钥库:
set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
sudo -E /usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash create
有关默认目录位置的详细信息,请参阅 目录结构。
注意: 如果
path.settings未指向与logstash.yml相同的目录,您将看到警告。
创建密钥库
使用 create 命令创建密钥库:
bin/logstash-keystore create
密钥库创建在 path.settings 配置的目录下。
注意:
建议创建密钥库时设置一个 密钥库密码
增加密钥
要存储敏感值,例如Elasticsearch的身份验证凭据,请使用 add 命令:
bin/logstash-keystore add ES_PWD
出现提示后,输入此键对应的值。
列出密钥
要列出所有密钥库中的密钥,如下:
bin/logstash-keystore list
移除密钥
要移除密钥库的密钥,如下:
bin/logstash-keystore remove ES_PWD