IBM Cloud Docs
使用 Hyper Protect Crypto Services 进行服务器端加密

使用 Hyper Protect Crypto Services 进行服务器端加密

您可以使用 Hyper Protect Crypto Services 来创建,添加和管理密钥,然后可以将这些密钥与 IBM® Cloud Object Storage 实例关联以加密存储区。

此功能当前在 Object Storage 中不支持 Satellite。 了解更多信息。

准备工作

在计划将 Hyper Protect Crypto Services 与 Cloud Object Storage 存储区配合使用之前,您需要:

您将需要确保使用 IBM Cloud 目录 创建服务实例,并授予相应的许可权。 此部分概述了相关逐步指示信息以帮助您入门。

供应 Hyper Protect Crypto Services 的实例

有关如何供应和设置相应服务实例的指示信息,请参阅特定于服务的产品页面。

具有 Hyper Protect Crypto Services实例后,需要创建根密钥并记下该密钥的 CRN (Cloud Resource Name)。 在创建存储区期间,会在头中发送 CRN。

在创建存储区以用于 Hyper Protect Crypto Services之前,请查看 有关可用性和灾难恢复的相关指导

在 Hyper Protect Crypto Services 中创建或添加密钥

导航至 Hyper Protect Crypto Services 的实例,然后初始化服务实例。 创建主密钥后,生成或输入根密钥

授予服务授权

授权 Hyper Protect Crypto Services 与 IBM COS 配合使用:

  1. 打开 IBM Cloud 仪表板。
  2. 从菜单栏中,单击管理 > 访问权 (IAM)
  3. 在侧边导航中,单击授权
  4. 单击 创建 以创建授权。
  5. 源服务菜单中,选择 Cloud Object Storage
  6. 源服务实例菜单中,选择要授权的服务实例。
  7. 目标服务菜单中,选择 Hyper Protect Crypto Services
  8. 目标服务实例菜单中,选择要授权的服务实例。
  9. 启用读取者角色。
  10. 单击授权

创建存储区

当您的密钥存在于 Hyper Protect Crypto Services 中,并且您已授权该服务用于 IBM COS 时,现在可以将该密钥与新存储区相关联:

  1. 导航至 Object Storage 的实例。
  2. 单击创建存储区
  3. 选择 定制存储区
  4. 输入存储区名称,选择弹性 (当前仅支持 "区域" 和 "美国跨区域"),然后选择位置和存储类。
  5. 服务集成中,切换 已禁用密钥管理 以启用加密密钥管理,然后单击 使用现有实例
  6. 选择关联的服务实例和密钥,然后单击 关联密钥
  7. 请验证信息是否正确。
  8. 单击创建

您可以选择仅在创建时使用 Hyper Protect Crypto Services 来管理存储区的加密。 无法将现有存储区更改为使用 Hyper Protect Crypto Services。

如果存储区创建失败,并返回 400 Bad Request错误和The Key CRN could not be found 消息,请确保 CRN 正确且服务到服务的授权策略存在。

Buckets 列表中,存储区现在在 Attributes 下具有 视图 链接,指示存储区已启用 Hyper Protect Crypto Services 密钥。 要查看密钥详细信息 (以及其他对象元数据),请单击 View

请注意,针对使用 Hyper Protect Crypto Services 加密的对象返回的 Etag 值是原始解密对象的实际 MD5 散列。

还可以使用 REST API 或 SDK (GoJavaNode.jsPython)。

创建跨区域存储区

使用根密钥从 Hyper Protect Crypto Services 实例创建 COS 跨区域存储区要求该实例 配置故障转移配置

您可以确认是否使用 IBM Cloud 控制台或 CLI 为所选 Hyper Protect Crypto Services 实例正确配置了故障转移。

从 IBM Cloud 控制台,浏览至 Hyper Protect Crypto Services 实例,然后单击 概述。 “故障转移”部分将指示相应故障转移区域中加密单元的状态。

确保存在故障转移部分,所有验证检查都为绿色,并且没有针对该 Hyper Protect Crypto Services 实例的警告。 如果您看到任何错误或警告,或者如果故障转移部分不存在,请 参阅 Hyper Protect Crypto Services 文档以获取进一步的指导

您还可以使用 CLI 列出属于目标资源组的所有实例的所有加密单元:

ibmcloud tke cryptounits

要获取所选实例的加密单元的状态,请创建与该实例关联的加密单元列表并进行比较:

ibmcloud tke cryptounit-add

选择单元后,您可以检查其验证模式:

ibmcloud tke cryptounit-compare

请确保所有这些都有效并且具有相同的验证模式。

验证故障转移配置是否存在后,您可以继续使用该 Hyper Protect Crypto Services 实例中的密钥来创建“跨区域”存储区。

如果在具有 Hyper Protect Crypto Services 根密钥的美国跨区域中创建跨区域存储区失败并返回 500 错误,那么建议用户在重新尝试创建存储区之前,检查该 Hyper Protect Crypto Services 实例的故障转移配置状态 (使用上述详细描述的方法)。

密钥生命周期管理

Hyper Protect Crypto Services 提供各种方法来管理加密密钥的生命周期。 有关更多详细信息,请参阅 Hyper Protect Crypto Services 文档

轮换密钥

密钥轮换是缓解数据违规风险的重要一环。 定期更改密钥可减少因密钥丢失或泄露而可能导致的数据丢失。 密钥轮换的频率因组织而异,并取决于若干变量,例如环境、加密数据量、数据分类和合规性法律。 美国国家标准技术学会(NIST) 提供了相应密钥长度的定义,并提供了应使用的密钥长度的准则。

有关更多信息,请参阅 Hyper Protect Crypto Services 中有关旋转密钥的文档。

禁用和重新启用密钥

作为管理员,如果您怀疑数据可能存在安全漏洞,损害或违规,那么可能需要 临时禁用根密钥。 禁用根密钥时,将暂挂其加密和解密操作。 在确认安全风险不再处于活动状态之后,您可以通过启用禁用的根密钥来重新建立对数据的访问权。

删除密钥和加密擦除

加密擦除 (或加密粉碎) 是一种通过 删除加密密钥 而不是数据本身来使加密数据不可读的方法。 当 在 Hyper Protect Crypto Services 中删除根密钥 时,它将影响使用该根密钥创建的任何存储区中的所有对象,从而有效“粉碎”数据并防止对存储区进行任何进一步的读取或写入。 此过程不是瞬时的,而是在删除密钥后大约 90 秒内发生。

虽然无法读取加密粉碎的存储区中的对象,并且无法写入新对象,但现有对象将继续使用存储器,直到用户将其删除为止。

复原已删除的密钥

作为管理员,您可能需要 复原已导入的根密钥 到 Hyper Protect Crypto Services,以便您可以访问该密钥先前保护的数据。 复原密钥时,将密钥从“已销毁”状态移至“活动密钥”状态,并复原对先前使用该密钥加密的任何数据的访问权。 这必须在删除密钥后 30 天内发生。

如果删除了最初由用户上载的密钥,然后使用不同的密钥资料进行复原,那么 将导致数据丢失。 建议将 n-5 密钥保留在某个位置进行归档,以确保正确的密钥资料可用于复原。

活动跟踪

删除,旋转,暂挂,启用或复原 Hyper Protect Crypto Services 根密钥时,除了 Hyper Protect Crypto Services记录的任何事件外,还会生成 Activity Tracker 管理事件 (cloud-object-storage.bucket-key-state.update)。

如果在密钥的生命周期操作中发生服务器端故障,那么 COS 不会记录该故障。 如果 Hyper Protect Crypto Services 在发送事件后四小时内未收到来自 COS 的成功事件处理,那么 Hyper Protect Crypto Services 将记录失败。

cloud-object-storage.bucket-key-state.update 操作由 Hyper Protect Crypto Services中发生的事件触发,并要求向 Hyper Protect Crypto Services 服务注册存储区。 使用 Hyper Protect Crypto Services 根密钥创建存储区时,将自动执行此注册。

在 2020 年 2 月 26th之前创建的存储区不会向 Hyper Protect Crypto Services 服务注册,并且此时不会接收加密密钥生命周期事件的通知。 可以通过执行 存储区列表操作 并查看存储区创建日期来识别这些存储区。 为确保这些存储区具有来自 Hyper Protect Crypto Services的最新密钥状态,建议 对每个受影响存储区中的对象执行一些数据操作,例如 PUTGETHEAD。 建议两次 (至少相隔一小时) 执行对象操作,以确保密钥状态与 Hyper Protect Crypto Services 状态正确同步。

有关对象存储器的 Activity Tracker 事件的更多信息,请参阅参考主题