安全设置编辑

某些设置很敏感,仅仅依靠文件系统权限来保护它们的值是不够的。针对这种情况,Elasticsearch 提供了一个密钥库和 elasticsearch-keystore 工具 来管理密钥库中的设置。

只有某些设置被设计为从密钥库中读取。将不支持的设置添加到密钥库会导致 _nodes/reload_secure_settings API 中的验证失败,如果未解决,会导致 Elasticsearch 无法启动。要查看密钥库中是否支持某个设置,请在设置参考中查找“安全”限定符。

对密钥库的所有修改仅在重新启动 Elasticsearch 后才会生效。

这些设置与 elasticsearch.yml 配置文件中的常规设置一样,需要在集群中的每个节点上指定。目前,所有安全设置都是特定于节点的设置,必须在每个节点上具有相同的值。

可重新加载的安全设置编辑

elasticsearch.yml 中的设置值一样,对密钥库内容的更改不会自动应用于正在运行的 Elasticsearch 节点。重新读取设置需要重新启动节点。但是,某些安全设置被标记为 可重新加载。这些设置可以在运行的节点上重新读取和应用。

您可以在节点启动之前定义这些设置,或者在定义设置后调用 节点重新加载安全设置 API 将它们应用于正在运行的节点。

所有安全设置的值,可重新加载 或不可重新加载,必须在所有集群节点上保持一致。在使用 bin/elasticsearch-keystore add 命令进行所需的安全性设置更改后,请调用

resp = client.nodes.reload_secure_settings(
    body={"secure_settings_password": "keystore-password"},
)
print(resp)
response = client.nodes.reload_secure_settings(
  body: {
    secure_settings_password: 'keystore-password'
  }
)
puts response
POST _nodes/reload_secure_settings
{
  "secure_settings_password": "keystore-password" 
}

Elasticsearch 密钥库加密使用的密码。

此 API 会解密、重新读取整个密钥库并在每个集群节点上验证所有设置,但只会应用 可重新加载 的安全设置。对其他设置的更改在下次重启之前不会生效。调用返回后,重新加载已完成,这意味着所有依赖于这些设置的内部数据结构都已更改。一切看起来都像是设置从一开始就具有新值。

当更改多个 可重新加载 的安全设置时,请在每个集群节点上修改所有设置,然后发出 reload_secure_settings 调用,而不是在每次修改后重新加载。

以下设置是可重新加载的安全设置: