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