安全设置
编辑安全设置编辑
某些设置很敏感,仅仅依靠文件系统权限来保护它们的值是不够的。针对这种情况,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
此 API 会解密、重新读取整个密钥库并在每个集群节点上验证所有设置,但只会应用 可重新加载 的安全设置。对其他设置的更改在下次重启之前不会生效。调用返回后,重新加载已完成,这意味着所有依赖于这些设置的内部数据结构都已更改。一切看起来都像是设置从一开始就具有新值。
当更改多个 可重新加载 的安全设置时,请在每个集群节点上修改所有设置,然后发出 reload_secure_settings
调用,而不是在每次修改后重新加载。
以下设置是可重新加载的安全设置: