前序
文章出自
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
文章内容全部出自本人对官方文档的翻译,以及两年多的es使用经验理解,自己理解的部分会特殊标记,无特殊标记处均翻自官网,参考文章时请注意辨别。
正文
安全设置-secure settings
有一些配置是很敏感的,单纯依靠文件系统的权限去保护这些值是不够的。在这样的背景下,es提供了一个密钥库,并且使用elasticsearch-keystore tool
来管理这些配置。
重要:
只有一部分的配置是被设计出来用来读取密钥库的。但是密钥库是没有阻止被配置的能力的。如果修改了密钥库不支持的配置的话,则会导致es启动失败。要查看密钥库是否支持配置,可以在配置引用中搜索"Secure"关键字。
所有对密钥库的修改都必须在重启ES之后才能生效。
可重新加载的安全设置-Reloadable secure settings
就像修改elasticsearch.yaml
中的值一样,修改过密钥库的内容是不能自动的应用在正在运行的ES节点中的。重新读取配置需要重新启动节点。但是,有一些设置是被标记为可重新加载的。这样的配置可以被重新读取并应用在正在运行的节点上。
所有的安全配置的值(无论是否可以被重新读取)在所有的节点上都必须是一样的。将安全配置修改为希望的结果后,使用bin/elasticsearch-keystore add
命令
POST _nodes/reload_secure_settings
{
"secure_settings_password": "keystore-password" # 密码是密钥库加密使用的密码
}
这个API在所有的节点上使用会进行解密并重新读取密钥库,但是只有可重新读取的配置会生效。其他的改变会在下一次节点的重启生效。一旦API返回结果那么配置的重新加载就会完成,也意味着依赖这些配置的所有的内部数据结果会被改变。一切都应该看起来像设置从一开始就有了新的值。