旋转加密密钥 API编辑

[预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 的约束。 旋转加密保存对象的加密密钥。

有关最新 API 详细信息,请参阅 开放 API 规范

如果保存对象无法使用主加密密钥解密,则 Kibana 将尝试使用指定的 仅解密密钥 解密它。在大多数情况下,这种开销可以忽略不计,但如果您处理大量保存对象并遇到性能问题,您可能需要旋转加密密钥。

批量密钥旋转会消耗大量资源,因此只有具有 superuser 角色的用户才能触发它。

请求编辑

POST <kibana 主机>:<端口>/api/encrypted_saved_objects/_rotate_key

查询参数编辑

type
(可选,字符串) 将加密密钥旋转限制为具有指定类型的保存对象。默认情况下,Kibana 尝试为所有可能包含加密属性的保存对象类型旋转加密密钥。
batch_size
(可选,数字) 指定 Kibana 在单个批次中可以处理的最大保存对象数量。批量密钥旋转是一个迭代过程,因为 Kibana 可能无法一次性获取和处理所有必需的保存对象,并将处理分成后续批次。默认情况下,批次大小为 10000,这也是允许的最大值。

响应主体编辑

total
(数字) 指示所有加密保存对象的总数(可选地按请求的 type 过滤),无论 Kibana 用于加密的密钥是什么。
successful

(数字) 指示所有加密保存对象的总数(可选地按请求的 type 过滤),无论 Kibana 用于加密的密钥是什么。

在大多数情况下,即使 failed 为零,total 也将大于 successful。原因是 Kibana 可能不需要或可能无法为所有加密保存对象旋转加密密钥。

failed
(数字) 指示仍然使用 Kibana 无法使用主密钥重新加密的旧加密密钥之一加密的保存对象的数量。

响应代码编辑

200
表示成功调用。
400
表示查询参数错误或 仅解密密钥 未配置。
429
表示密钥旋转正在进行中。

示例编辑

使用默认参数的加密密钥旋转编辑

$ curl -X POST /api/encrypted_saved_objects/_rotate_key

API 返回以下内容

{
  "total": 1000,
  "successful": 300,
  "failed": 0
}

结果表明,已成功为 1000 个具有加密属性的保存对象中的 300 个旋转了加密密钥,而 700 个保存对象要么不需要密钥旋转,要么使用未知加密密钥加密。

针对特定类型的加密密钥旋转,并减少批次大小编辑

默认参数针对速度进行了优化。仅在必要时更改参数。但是,如果您遇到此 API 的任何问题,您可能需要减小批次大小或仅为特定类型旋转加密密钥。在这种情况下,您可能需要连续多次运行密钥旋转。

在此示例中,密钥旋转针对所有具有 alert 类型的保存对象执行,批次大小为 5000。

$ curl -X POST /api/encrypted_saved_objects/_rotate_key?type=alert&batch_size=5000

API 返回以下内容

{
  "total": 100,
  "successful": 100,
  "failed": 0
}

结果表明,已成功为所有 100 个具有 alert 类型的保存对象旋转了加密密钥。