在 Event Streams 中管理加密
默认情况下,IBM® Event Streams for IBM Cloud® 中的信息有效载荷数据在静态时使用随机生成的密钥进行加密。 虽然此缺省加密模型提供了静态安全性,但您可能需要更高级别的控制。 对于这些用例,Event Streams 支持客户管理加密,提供以下 IBM Cloud® 密钥管理服务:
- IBM® Key Protect for IBM Cloud® (自带密钥 - BYOK)可帮助您在 IBM Cloud 服务中为应用程序提供加密密钥。 在您管理密钥生命周期的过程中,您可以了解到您的密钥是由经过 FIPS 140-2 三级认证的基于云的硬件安全模块 (HSM) 保护的,可以防止信息被盗。 有关使用 Key Protect的更多信息,请参阅 入门教程。
- Hyper Protect Crypto Services(保管自己的密钥 - KYOK)是由您控制的单租户专用 HSM。 该服务在通过 FIPS 140-2 级别 4 认证的硬件上构建,该级别是行业内任何云提供者提供的最高级别。 请注意,Hyper Protect Crypto Services 已被弃用。
IBM Cloud® 正在将专用密钥管理服务从 Hyper Protect Crypto Services 过渡到 IBM® Key Protect Dedicated。 在 2027 年 3 月 20 日 HPCS 生命周期结束 (EOL) 之前,将现有 Hyper Protect Crypto Services (HPCS) 根密钥迁移到 IBM® Key Protect 专用(单租户),以确保服务的持续可用性。 在该日期之后,任何剩余的实例都将被终止。 为确保服务的持续可用性和支持,您必须在 EOL 日期之前将所有现有的 HPCS 根密钥迁移到 IBM Key Protect Dedicated(单租户)。 了解如何迁移根密钥。
这些服务允许使用客户提供的密钥来控制加密。 通过禁用或删除此密钥,您可以阻止对服务所存储数据的进一步访问,因为解密已不再可能。
如果需要以下功能,请考虑使用客户管理密钥:
- 使用自己的密钥对静态数据进行加密。
- 明确控制静态存储数据的生命周期。
客户管理的密钥在企业套餐上可用,并且仅在 2019 年 10 月之后创建的集群上可用。
客户管理密钥的删除是不可恢复的,并且会导致存储在 Event Streams 实例中的任何数据丢失。
信息级加密以确保合规性
一些监管标准,如 PCI DSS,要求敏感信息数据(如持卡人信息)在整个生命周期(静态、动态和使用中)都要加密。
Event Streams 用于存储信息数据的文件系统是加密的,可防止未经授权的访问。 但是,当信息通过传输层时,Event Streams 必须对这些文件系统进行解密,才能处理信息。 虽然这意味着报文有效载荷不是端到端加密的,但传输过程中和静止状态下的加密可确保在整个报文生命周期内提供符合行业最佳实践的强大保护。
为确保敏感数据不被目标收件人以外的任何人读取,客户端必须在向 Event Streams 发送信息之前,在应用程序层面对信息本身进行加密,这种做法被称为信息级加密。
客户管理的加密未涵盖的内容
如果选择了客户管理的加密功能,请注意此加密仅涵盖 **** 消息有效内容数据。Event Streams 对与使用服务相关的其他静态数据进行加密。 但是,虽然已加密,但 未 使用客户管理的加密对非消息有效内容数据进行加密。 示例包括客户机元数据,例如主题名称,主题配置数据,存储在模式注册表中的模式以及与企业实例配置相关的元数据。
因此,请勿在此类客户机元数据中使用机密信息。
客户管理的加密的运作方式
Event Streams 使用一种称为信封加密的概念来实现客户管理密钥。
包络加密是指使用一个加密密钥对另一个加密密钥进行加密的做法。 用于加密实际数据的密钥称为数据加密密钥 (DEK)。 DEK 本身从不存储,而是由第二个密钥(称为密钥加密密钥 (KEK))封装,以创建一个封装的 DEK。
要解密数据,必须首先对包装的 DEK 解包才能获取 DEK。 此过程只能通过访问 KEK 来实现,在本例中,KEK 是存储在 Key Protect 或 Hyper Protect Crypto Services中的根密钥。
您拥有 KEK,此密钥由您在 Hyper Protect Crypto Services 或 Key Protect 服务中创建为根密钥。 Event Streams 服务绝不会看到根 (KEK) 密钥。 此密钥的存储和管理以及使用此密钥来打包和解包 DEK 完全在密钥管理服务中执行。 如果禁用或删除密钥,那么无法再解密数据。
为 Event Streams 启用客户管理的密钥
要供应 Event Streams 实例以使用客户管理的密钥,请完成以下步骤:
- 供应 Key Protect 或 Hyper Protect Crypto Services的实例。
- 创建授权策略以允许 Event Streams 服务以“读取者”身份访问密钥管理服务实例。 有关更多信息,请参阅 使用授权在服务之间授予访问权限。
- 创建根密钥或将其导入密钥管理服务实例中。
- 使用密钥管理服务实例图形用户界面中的查看 CRN 选项,检索密钥的云资源名称 (CRN)。
- 供应 Event Streams 的实例。 仅企业套餐上支持此功能。
如果通过 IBM Cloud® 控制台进行供应,请选择密钥管理服务实例,然后从该实例中选择根密钥。
如果通过 CLI 进行配置,请使用以下命令:
ibmcloud resource service-instance-create EVENT-STREAMS-INSTANCE-NAME messagehub ibm.message.hub.enterprise.3nodes.2tb REGION -p '{"kms_key_crn":"KMS_KEY_CRN"}'
无法更新没有客户管理密钥的现有群集,因为这种操作具有破坏性,会导致所有消息和主题定义丢失。 您必须删除实例,并使用加密密钥重新创建。
使用客户管理的密钥
在向 Event Streams 实例提供客户管理的密钥后,它具有以下附加功能。
阻止对数据的访问
要临时阻止访问,请禁用根密钥。 这样,Event Streams 就无法再访问数据,因为它无法再访问密钥。
要永久删除访问权限,请删除密钥。 但是,您必须极为谨慎,因为此操作不可恢复。 您无法访问存储在 Event Streams 实例中的任何数据。 无法恢复这些数据。
在这两种情况下,Event Streams 实例都会关闭,不再接受或处理连接。 会生成一个 Activity Tracker 事件来报告该操作。 有关更多信息,请参阅 Activity Tracker 事件。
Event Streams Event Streams 将继续需要服务对服务策略来注销密钥。 要确定何时可以安全地除去服务到服务策略,请检查 KMS 根密钥上的关联资源。 如果根密钥仍与 Event Streams 实例相关联,则保留该策略。 虽然删除此授权可防止 Event Streams 今后访问您的数据,但已在使用中的数据在一段时间内仍可继续使用。
在您使用 IBM Cloud 控制台或 CLI 取消配置之前,您都要为 Event Streams 实例付费。 即使您选择阻止访问数据,仍会应用这些费用。
复原对数据的访问
仅当未删除密钥时,才能复原访问权。 要恢复访问权,请重新启用根密钥。 在经过很短的一段初始化时间后,Event Streams 实例会重新启动并再次开始接受连接。 这将保留所有数据,但会受实例中配置的正常保留时间限制的制约。
这将生成 Activity Tracker 事件以报告相应操作。 有关更多信息,请参阅 Activity Tracker 事件。
轮换密钥
Key Protect 和 Hyper Protect Crypto Services 支持根据需求或按安排轮换根密钥。 轮换密钥时,Event Streams 通过重新包装 DEK 来采用新密钥,如 客户管理的加密工作方式 中所述。
这将生成 Activity Tracker 事件以报告相应操作。 有关更多信息,请参阅 Activity Tracker 事件。
禁用客户管理的加密
启用客户管理加密后,无法将其禁用。 您必须改为删除服务实例,然后创建新实例。
从 Hyper Protect Crypto Services (HPCS) 迁移到 Key Protect 专用 (KP-ST)
在从 Hyper Protect Crypto Services (HPCS) 迁移到 Key Protect 专用 (KP-ST) 的过程中,会发生以下情况:
- 每个 KMS 实例都有自己独一无二的根密钥。 迁移包括使用新的 IBM® Key Protect 专用根密钥重新关联服务。
- 现有的数据加密密钥(DEK)被安全地重新封装。
- 在过渡期间,Hyper Protect Crypto Services 到服务和 Key Protect 到服务的访问政策必须保持不变。
- 加密数据不会被重新加密或移动。
- 保持服务可用性。
先决条件
在开始迁移之前,请确保您已
- Key Protect 专用(单租户)实例。
- 在 Key Protect 专用 (KP-ST) 实例中创建的根密钥。
- 管理密钥和服务访问策略的权限。
迁移步骤
- 识别正在使用的 Hyper Protect Crypto Services 根密钥。 密钥必须存在于 Hyper Protect Crypto Services 实例中,而且服务必须已经可以访问该密钥。
- 创建或选择 Key Protect 专用根密钥。 密钥必须位于相应的 Key Protect 专用(单个租户)实例中,并可被服务访问。
- 创建连接两个密钥的迁移意图。 迁移意图将当前的 Hyper Protect Crypto Services 密钥(源)映射到新的 Key Protect 专用密钥(目标)。 有关 Key Protect 迁移的更多信息,请参阅 从 Hyper Protect Crypto Services(HPCS)迁移到 Key Protect 专用。
- 执行迁移需要 1-2 个工作日。Event Streams 安全地重新关联和重新封装 DEK(如适用),而不会重新加密或移动数据。
- 验证迁移完成。 服务现在必须引用 Key Protect ST 根密钥。Key Protect ST 根密钥应可见并处于激活状态,同时应删除 Hyper Protect Crypto Services 关联。