elasticsearch-keystore编辑

elasticsearch-keystore 命令管理 Elasticsearch 密钥库中的 安全设置

概要编辑

bin/elasticsearch-keystore
( [add <settings>] [-f] [--stdin]
| [add-file (<setting> <path>)+]
| [create] [-p]
| [has-passwd]
| [list]
| [passwd]
| [remove <setting>]
| [show [-o <output-file>] <setting>]
| [upgrade]
) [-h, --help] ([-s, --silent] | [-v, --verbose])

描述编辑

此命令应以运行 Elasticsearch 的用户身份运行。

目前,所有安全设置都是特定于节点的设置,必须在每个节点上具有相同的值。因此,您必须在每个节点上运行此命令。

当密钥库受密码保护时,您必须在 Elasticsearch 启动时每次提供密码。

对密钥库的修改不会自动应用于正在运行的 Elasticsearch 节点。对密钥库的任何更改将在您重新启动 Elasticsearch 时生效。某些安全设置可以 显式重新加载,而无需重新启动。

只有某些设置被设计为从密钥库中读取。但是,没有验证可以阻止密钥库中不支持的设置,它们可能会导致 Elasticsearch 无法启动。要查看密钥库中是否支持某个设置,请参阅设置参考。

参数编辑

add <settings>
将设置添加到密钥库。可以将多个设置名称指定为 add 命令的参数。默认情况下,系统会提示您输入设置的值。如果密钥库受密码保护,系统还会提示您输入密码。如果密钥库中已经存在设置,您必须确认是否要覆盖当前值。如果密钥库不存在,您必须确认是否要创建密钥库。要避免这两个确认提示,请使用 -f 参数。
add-file (<setting> <path>)+
将文件添加到密钥库。
create
创建密钥库。
-f, --force
当与 add 参数一起使用时,该命令不再提示您在覆盖密钥库中的现有条目之前进行确认。此外,如果您尚未创建密钥库,它将创建一个被混淆但不受密码保护的密钥库。
-h, --help
返回所有命令参数。
has-passwd
如果密钥库存在且受密码保护,则返回成功消息。否则,该命令将以退出代码 1 失败并返回错误消息。
list
列出密钥库中的设置。如果密钥库受密码保护,系统会提示您输入密码。
-p
当与 create 参数一起使用时,该命令会提示您输入密钥库密码。如果您未指定 -p 标志或输入空密码,则密钥库将被混淆,但不受密码保护。
passwd
更改或设置密钥库密码。如果密钥库受密码保护,系统会提示您输入当前密码和新密码。您可以选择使用空字符串来删除密码。如果密钥库不受密码保护,您可以使用此命令来设置密码。
remove <settings>
从密钥库中删除设置。可以将多个设置名称指定为 remove 命令的参数。
show <setting>
显示密钥库中单个设置的值。传递 -o(或 --output)参数将设置写入文件。如果写入标准输出(终端),则设置的值始终被解释为 UTF-8 字符串。如果设置包含二进制数据(例如,通过 add-file 命令添加的数据),请始终使用 -o 选项写入文件。
-s, --silent
显示最少输出。
-x, --stdin
当与 add 参数一起使用时,您可以通过标准输入 (stdin) 传递设置值。用回车符或换行符分隔多个值。请参阅 将设置添加到密钥库
upgrade
升级密钥库的内部格式。
-v, --verbose
显示详细输出。

示例编辑

创建密钥库编辑

要创建 elasticsearch.keystore,请使用 create 命令

bin/elasticsearch-keystore create -p

系统会提示您输入密钥库密码。一个受密码保护的 elasticsearch.keystore 文件将与 elasticsearch.yml 文件一起创建。

更改密钥库的密码编辑

要更改 elasticsearch.keystore 的密码,请使用 passwd 命令

bin/elasticsearch-keystore passwd

如果 Elasticsearch 密钥库受密码保护,系统会提示您输入当前密码,然后输入新密码。如果它不受密码保护,系统会提示您设置密码。

列出密钥库中的设置编辑

要列出密钥库中的设置,请使用 list 命令。

bin/elasticsearch-keystore list

如果 Elasticsearch 密钥库受密码保护,系统会提示您输入密码。

将设置添加到密钥库编辑

可以使用 add 命令添加敏感字符串设置,例如 Cloud 插件的身份验证凭据

bin/elasticsearch-keystore add the.setting.name.to.set

系统会提示您输入设置的值。如果 Elasticsearch 密钥库受密码保护,系统还会提示您输入密码。

您还可以使用 add 命令添加多个设置

bin/elasticsearch-keystore add \
  the.setting.name.to.set \
  the.other.setting.name.to.set

系统会提示您输入设置的值。如果 Elasticsearch 密钥库受密码保护,系统还会提示您输入密码。

要通过标准输入 (stdin) 传递设置值,请使用 --stdin 标志

cat /file/containing/setting/value | bin/elasticsearch-keystore add --stdin the.setting.name.to.set

多个设置的值必须用回车符或换行符分隔。

将文件添加到密钥库编辑

您可以使用 add-file 命令添加敏感文件,例如 Cloud 插件的身份验证密钥文件。设置和文件路径以 setting path 对的形式指定。设置的值将是文件添加到密钥库时文件路径的二进制内容。

bin/elasticsearch-keystore add-file the.setting.name.to.set /path/example-file.json

您可以使用 add-file 命令添加多个文件

bin/elasticsearch-keystore add-file \
  the.setting.name.to.set /path/example-file.json \
  the.other.setting.name.to.set /path/other-example-file.json

如果 Elasticsearch 密钥库受密码保护,系统会提示您输入密码。

显示密钥库中的设置编辑

要显示密钥库中设置的值,请使用 show 命令

bin/elasticsearch-keystore show the.name.of.the.setting.to.show

如果设置包含二进制数据,您应该使用 -o(或 --output)选项将其写入文件

bin/elasticsearch-keystore show -o my_file binary.setting.name

如果 Elasticsearch 密钥库受密码保护,系统会提示您输入密码。

从密钥库中删除设置编辑

要从密钥库中删除设置,请使用 remove 命令

bin/elasticsearch-keystore remove the.setting.name.to.remove

您还可以使用 remove 命令删除多个设置

bin/elasticsearch-keystore remove \
  the.setting.name.to.remove \
  the.other.setting.name.to.remove

如果 Elasticsearch 密钥库受密码保护,系统会提示您输入密码。

升级密钥库编辑

有时,密钥库的内部格式会发生变化。当从包管理器安装 Elasticsearch 时,在包升级期间会对磁盘上的密钥库进行升级以更新到新格式。在其他情况下,Elasticsearch 会在节点启动期间执行升级。这要求 Elasticsearch 对包含密钥库的目录具有写入权限。或者,您可以使用 upgrade 命令手动执行此类升级

bin/elasticsearch-keystore upgrade