节点重新加载安全设置 API

编辑

节点重新加载安全设置 API

编辑

重新加载集群中节点上的密钥库。

请求

编辑

POST /_nodes/reload_secure_settings
POST /_nodes/<node_id>/reload_secure_settings

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,您必须具有 manage 集群权限 才能使用此 API。

描述

编辑

安全设置 存储在磁盘上的密钥库中。其中某些设置是可重新加载的。也就是说,您可以在磁盘上更改它们,并在不重启集群中任何节点的情况下重新加载它们。当您在密钥库中更新了可重新加载的安全设置后,您可以使用此 API 在每个节点上重新加载这些设置。

当 Elasticsearch 密钥库受密码保护而不仅仅是混淆时,您必须在重新加载安全设置时提供密钥库的密码。重新加载整个集群的设置假定所有节点的密钥库都使用相同的密码保护;只有在 节点间通信加密时才允许使用此方法。或者,您可以通过本地访问 API 并传递节点特定的 Elasticsearch 密钥库密码来重新加载每个节点上的安全设置。

路径参数

编辑
<node_id>
(可选,字符串) 要定位的集群中特定节点的名称。例如,nodeId1,nodeId2。有关节点选择选项,请参阅节点规范

Elasticsearch 要求集群节点上的安全设置保持一致,但此一致性不会强制执行。因此,重新加载特定节点不是标准做法。只有在重试失败的重新加载操作时才是合理的。

请求体

编辑
secure_settings_password
(可选,字符串) Elasticsearch 密钥库的密码。

示例

编辑

以下示例假定集群中每个节点的 Elasticsearch 密钥库都使用相同的密码

resp = client.nodes.reload_secure_settings(
    secure_settings_password="keystore-password",
)
print(resp)

resp1 = client.nodes.reload_secure_settings(
    node_id="nodeId1,nodeId2",
    secure_settings_password="keystore-password",
)
print(resp1)
const response = await client.nodes.reloadSecureSettings({
  secure_settings_password: "keystore-password",
});
console.log(response);

const response1 = await client.nodes.reloadSecureSettings({
  node_id: "nodeId1,nodeId2",
  secure_settings_password: "keystore-password",
});
console.log(response1);
POST _nodes/reload_secure_settings
{
  "secure_settings_password":"keystore-password"
}
POST _nodes/nodeId1,nodeId2/reload_secure_settings
{
  "secure_settings_password":"keystore-password"
}

响应包含 nodes 对象,它是一个映射,以节点 ID 为键。每个值都有节点 name 和一个可选的 reload_exception 字段。reload_exception 字段是对重新加载过程中抛出的异常的序列化(如果有)。

{
  "_nodes": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "cluster_name": "my_cluster",
  "nodes": {
    "pQHNt5rXTTWNvUgOrdynKg": {
      "name": "node-0"
    }
  }
}