将你自己的密钥用于现有 Elastic Cloud 部署

作者:来自 Elastic Alex Chalkias

在运行中的部署中直接添加客户管理的加密密钥,无需重新创建部署。

对于现有部署,现在可以在 Elastic Cloud Hosted 上正式发布使用自带密钥(Bring your own key - BYOK)。你可以通过 Elastic Cloud 控制台或 API,向已经运行的部署添加客户管理的加密密钥,无需重新创建部署,而且整个过程中部署始终保持可访问状态。此前,只能在创建部署时设置密钥,这意味着如果之后出现密钥管理要求,就需要进行部署迁移。

在本系列前面的文章中,我们介绍了静态数据加密的基础概念,并分别介绍了如何通过 AWS KMS、Azure Key Vault 和 Google Cloud KMS,将你自己的密钥用于 Elastic Cloud Hosted 部署。当时的范围仅限于新部署。现在,我们扩大了范围,将现有部署也纳入其中,以提升易用性。本文将介绍发生了哪些变化、就地迁移是如何工作的,以及在对生产环境部署进行加密之前需要考虑哪些因素。

为什么此前 BYOK 需要新建部署

客户管理的密钥对于拥有大量既有部署,并且受到合规要求约束的组织来说最为重要。这些合规要求通常会明确规定由谁持有密钥,以及密钥被撤销的速度。金融服务和公共部门是最典型的例子。

而这些组织恰恰也是 "重新创建你的部署" 这一要求构成重大障碍的组织。这种方式确实可行,而且很多客户也确实采用了这种方式。但它会将一个安全决策变成一次迁移,需要重新指向新的端点,并协调切换。

因此,BYOK 虽然有效,但影响范围有限。

BYOK 如何用于现有部署

现在,你可以在正在运行的 Elastic Cloud Hosted 部署上启用 BYOK。Elastic Cloud 会应用一次计划变更,将每个实例替换为加密实例,并利用 Elasticsearch 原生分片分配机制迁移你的数据,然后移除旧实例。在重新加密期间,你的部署仍然可以访问。这与其他配置变更使用的是相同的计划变更机制,因此无需另外预订维护窗口。

所有支持新部署的密钥管理服务在这里同样适用:AWS KMS、Azure Key Vault 和 Google Cloud KMS。迁移完成后,该部署的行为与从第一天开始就使用 BYOK 创建的部署完全相同。你在 KMS 中执行的密钥轮换会自动生效,而撤销密钥仍然是你的紧急控制手段。撤销密钥后,Elastic Cloud 最迟会在 30 分钟内锁定部署的数据目录。在锁定期间,部署会保留其所有数据,但既无法读取也无法写入;在 KMS 中恢复密钥访问权限后,部署即可恢复在线。如果始终无法恢复访问权限,那么这些数据最终会按照预期被加密销毁。

迁移完成后,部署的 found-snapshots 仓库会指向一个使用你的密钥加密的新存储桶,此后创建的每个快照都会存储在那里。迁移之前创建的快照仍保留在原始存储桶中,并且无法再通过该仓库访问。该存储桶之后是保留还是回收取决于你的数据层,但无论哪种情况,你的快照历史都会从头开始。在开始之前,请阅读下面的注意事项。

前置条件

  • 在你的云服务提供商的 KMS 中拥有一个由你控制的密钥 ,并配置允许 Elastic Cloud 使用该密钥的访问策略。本系列前面的文章分别针对 AWS KMS、Azure Key Vault 和 Google Cloud KMS 逐步介绍了这一过程。对于现有部署,密钥创建方式没有任何变化。

  • Enterprise 订阅 ------ 与新部署使用 BYOK 时适用的资格要求相同。如果你的部署中没有显示此选项,请联系 Elastic Support。

  • 与你的部署使用相同云服务提供商的密钥,并且该密钥需要在部署运行的每个区域中都可用。AWS 部署需要 AWS KMS 密钥,Azure 部署需要 Azure Key Vault 密钥,Google Cloud 部署需要位于部署所在区域的单区域密钥环中的 Cloud KMS 密钥。不接受多区域密钥环。

  • 不存在在冷阶段或冻结阶段将 found-snapshots 指定为快照仓库的索引生命周期管理策略。 如果存在此类策略,迁移会在开始之前被拒绝。由于 found-snapshots 是每个 Elastic Cloud Hosted 集群默认获得的仓库,因此被此检查拦截的部署数量可能比你预期的更多。该检查读取的是策略本身,而不是使用这些策略的索引,因此,即使某个策略已经定义但尚未使用,也会阻止你执行此操作。运行 GET _ilm/policy,然后查看 phases.cold.actions.searchable_snapshot.snapshot_repository,或者查看冻结阶段对应的配置,即可了解当前情况。

使用你的密钥加密现有部署

密钥准备就绪后,你可以在 Elastic Cloud 控制台中通过以下三个步骤完成迁移:

  1. 进入你的部署的 Security 页面。

  2. 在 Encryption at rest 下,选择 Manage encryption key。

  3. 输入你的密钥标识符:AWS 使用 ARN,Azure 使用密钥标识符,Google Cloud 使用资源 ID,然后保存更改。

部署 Security 页面,其中包含 Encryption at rest 部分和侧滑面板

包含密钥标识符字段的 Manage customer key 侧滑面板

Elastic Cloud 随后会应用计划变更,对你的数据和快照进行加密。部署的 Overview 页面会在迁移运行期间对其进行跟踪,并报告目前已有多少个实例完成重新加密;单个实例完成后会显示 Encrypted 标记。如果你想查看底层的计划步骤,横幅会提供指向 Activity 页面的链接。
Overview 页面显示 "Configuration change in progress" 横幅以及每个实例的重新加密进度

你也可以通过 Elastic Cloud API 执行此操作。如果你要在一组部署中推广 BYOK,这是更好的方式。现有部署使用专用端点 POST /api/v1/deployments/{deployment_id}/byok-migration,并在请求正文中提供你的密钥标识符。产品文档介绍了该操作所需的角色、返回的错误,以及如何轮询操作是否完成。

在部署上设置客户管理的密钥后,你无法编辑或删除该密钥。所有 BYOK 部署都适用这一点,无论部署最初创建时就使用了密钥,还是后来迁移为使用密钥。更改或删除密钥的功能计划在未来版本中提供。

开始之前的注意事项

  • 在配置为高可用性的部署上执行此操作,也就是说,使用两个或更多可用区,并且具有副本。高可用性并非强制要求,但迁移会在每个原始实例被其加密替换实例接管后将其移除,因此对于没有副本的部署,在分片迁移期间,每个分片都只有一个副本。在单可用区部署中,唯一的 Elasticsearch 节点以及因此由其担任的主节点也必须被替换,因此可能会出现短暂的中断。

  • 你的快照历史不会被保留。 迁移完成后,found-snapshots 会指向新的加密存储桶,而迁移之前创建的快照将无法再通过该仓库访问。计划会自动将一个新的快照保存到加密存储桶中,作为最后一步,因此你无需自行创建快照。如果你的保留或合规义务依赖于迁移前的快照,请在开始之前处理这些快照,因为这是迁移完成后无法撤销的部分。

  • 先在较小的部署上尝试此过程,并确认集群在迁移后运行正常,然后再处理任何关键业务部署。

  • 让加密过程运行至完成。 如果中途取消变更,部署将处于部分加密状态,你需要联系 Elastic Support 来完成加密。

  • 预计超大型部署需要一定时间,可能需要数小时甚至超过一天,尤其是在数据量大约超过 1 TB 时。

  • 预留云服务提供商账户中的数据传输成本。 对于 Elasticsearch 8.x 及更高版本的部署,预计这些成本会较低。

验证和故障排除

你可以在部署的 Security 页面确认加密状态。在 Encryption at rest 下选择 Manage encryption key,此时应该会列出你的密钥标识符。

如果部署因 Elastic Cloud 无法访问你的密钥而变得无法访问,则前面文章中的故障排除步骤保持不变。恢复密钥或其访问策略后,部署就会恢复运行。

开始在你的部署上使用 BYOK

BYOK 不再是部署第一天就必须做出的决定。如果你拥有 Enterprise 订阅的 Elastic Cloud Hosted 部署,现在就可以直接使用你自己的密钥对其进行加密,无需重新创建任何内容。

从部署的 Security 页面开始,并参阅产品文档了解完整详情。如果你是首次设置密钥,本系列前面的文章介绍了 AWS KMS、Azure Key Vault 和 Google Cloud KMS 的端到端配置。

常见问题

我可以在现有的 Elastic Cloud 部署上启用 BYOK 吗?

可以。你可以从部署的 Security 页面或通过 Elastic Cloud API,向正在运行的 Elastic Cloud Hosted 部署添加客户管理的加密密钥。此前,BYOK 只能在创建新部署时进行配置。此功能现已正式发布,并且需要 Enterprise 订阅。

在现有部署上启用 BYOK 会导致停机吗?

在重新加密期间,你的部署仍然可以访问。Elastic Cloud 会一次替换一个实例,将数据迁移到加密的替换实例后再移除原始实例,因此不会发生大规模中断,尽管对于大型部署而言,该过程可能运行数小时或数天。请在配置为高可用性的部署上执行此操作:在单可用区部署中,唯一的 Elasticsearch 节点必须被替换,因此可能会出现短暂的中断。

支持哪些密钥管理服务?

AWS KMS、Azure Key Vault 和 Google Cloud KMS。KMS 必须与部署所在的云服务提供商匹配,并且密钥必须在部署使用的每个区域中都可用。例如,托管在 AWS 上的部署需要 AWS KMS 密钥。

启用 BYOK 后,现有快照会发生什么?

新的快照会使用你的密钥进行加密。现有快照不会被迁移:迁移完成后,found-snapshots 会指向新的加密存储桶,而在此之前创建的快照将无法再通过该仓库访问。计划完成时,会自动将一个新的快照保存到加密存储桶中。如果你的保留或合规义务涉及迁移前的快照,请在开始之前处理这些快照。

以后可以更改或删除客户管理的密钥吗?

目前还不可以。在部署上设置客户管理的密钥后,无法编辑或删除该密钥。无论部署是在创建时使用密钥,还是后来迁移为使用密钥,这一规则都适用。完全支持在你的 KMS 中进行密钥轮换。更改为其他密钥的功能计划在未来版本中提供。

本文中描述的任何功能或特性的发布和时间安排均由 Elastic 自行决定。任何当前尚未提供的功能或特性可能不会按时交付,或者可能不会交付。

原文:BYOK for existing Elastic Cloud deployments is now GA | Elastic Blog

相关推荐
红海云2 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能
wjkjpcba2 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
Elasticsearch2 小时前
使用 Lucene 搜索你的 Bean — 搜索
elasticsearch
꯭自꯭闭꯭2 小时前
达梦事物特性及MVCC
linux·运维·数据库
计算机毕业编程指导师3 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师3 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
小马同学-3 小时前
MySQL主从复制和读写分离
数据库·mysql
谢亮_vipxieliang3 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
geovindu4 小时前
sql: JSON and XML Data Handling in SQL using sql server 2025
大数据·数据库·sqlserver·数据库开发·数据库架构