安全设置
编辑安全设置
编辑一些设置是敏感的,仅仅依靠文件系统权限来保护它们的值是不够的。对于这种情况,Elasticsearch 提供了一个密钥库和 elasticsearch-keystore
工具 来管理密钥库中的设置。
只有部分设置设计为从密钥库读取。向密钥库添加不支持的设置会导致 _nodes/reload_secure_settings
API 中的验证失败,如果未解决,将导致 Elasticsearch 启动失败。要查看某个设置是否在密钥库中受支持,请在设置参考中查找 “Secure” 限定符。
所有对密钥库的修改仅在重启 Elasticsearch 后生效。
这些设置,就像 elasticsearch.yml
配置文件中的常规设置一样,需要在集群中的每个节点上指定。目前,所有安全设置都是节点特定的设置,必须在每个节点上具有相同的值。
可重载的安全设置
编辑就像 elasticsearch.yml
中的设置值一样,对密钥库内容的更改不会自动应用于正在运行的 Elasticsearch 节点。重新读取设置需要重启节点。但是,某些安全设置被标记为 可重载。此类设置可以在运行的节点上重新读取并应用。
您可以在启动节点之前定义这些设置,或者在定义设置后调用 节点重载安全设置 API 将其应用到正在运行的节点。
所有安全设置的值,无论是否 可重载,都必须在所有集群节点上完全相同。在进行所需的安全设置更改后,使用 bin/elasticsearch-keystore add
命令,调用
resp = client.nodes.reload_secure_settings( secure_settings_password="keystore-password", ) print(resp)
response = client.nodes.reload_secure_settings( body: { secure_settings_password: 'keystore-password' } ) puts response
const response = await client.nodes.reloadSecureSettings({ secure_settings_password: "keystore-password", }); console.log(response);
此 API 解密、重新读取整个密钥库并验证每个集群节点上的所有设置,但仅应用 可重载 的安全设置。对其他设置的更改要到下次重启后才会生效。一旦调用返回,重载就已完成,这意味着所有依赖这些设置的内部数据结构都已更改。一切都应该看起来好像这些设置从一开始就具有新值。
在更改多个 可重载 安全设置时,在每个集群节点上修改所有这些设置,然后发出 reload_secure_settings
调用,而不是在每次修改后重载。
以下是可重载的安全设置: