服务器端加密(SSE-KP)与 IBM Key Protect
您可以使用 IBM Key Protect 创建、添加和管理密钥,然后将其与您的 IBM® Cloud Object Storage 实例关联,以加密存储桶。
准备工作
在您计划将 Key Protect 与 Cloud Object Storage 邮箱配合使用前,您需要:
您还需要确保使用 IBM Cloud 目录 创建服务实例,并授予相应的许可权。 此部分概述了相关逐步指示信息以帮助您入门。
创建一个 IBM 的实例 Key Protect
有关如何供应和设置相应服务实例的指示信息,请参阅特定于服务的产品页面。
自2025年1月1日起,每个账户的五个关键版本不再免费。 从创建的第一个密钥开始,每个密钥版本都需要收费。
拥有 Key Protect实例后,需要创建根密钥并记录该密钥的 CRN (Cloud Resource Name)。 在创建存储区期间,会在头中发送 CRN。
在创建用于 Key Protect的存储区之前,请查看 有关可用性和灾难恢复的相关指南。
请注意,跨区域存储区的受管加密 必须 使用 Key Protect 实例中最近的 高可用性位置 (us-south
,eu-de
或 jp-tok
) 中的根密钥。
在 Key Protect 中创建或添加密钥
导航至 Key Protect 的实例,然后生成或输入根密钥。
授予服务授权
授权 Key Protect 与 IBM 共用 COS:
- 打开 IBM Cloud 仪表板。
- 从菜单栏中,单击管理 > 访问权 (IAM)。
- 在侧边导航中,单击授权。
- 单击创建授权。
- 在源服务菜单中,选择 Cloud Object Storage。
- 在源服务实例菜单中,选择要授权的服务实例。
- 在 Target服务菜单中,选择 IBM Key Protect。
图 1: 授予 Key Protect的服务授权。 - 在目标服务实例菜单中,选择要授权的服务实例。 其他字段可能保留为空白。
- 启用读取者角色。
- 单击授权。
创建存储区
当您的密钥存在于 Key Protect 中,且您授权该服务与 IBM COS 一起使用时,请将密钥与新的存储桶关联:
- 导航至 Object Storage 的实例。
- 单击创建存储区。
- 选择 定制存储区。
- 输入存储区名称,选择区域弹性,然后选择位置和存储类。
- 在 服务集成中,切换 已禁用密钥管理 以启用加密密钥管理,然后单击 使用现有实例。
- 选择关联的服务实例和密钥,然后单击 关联密钥。
- 请验证信息是否正确。
- 单击创建。
您只能在创建存储桶时选择使用 Key Protect 管理加密。 无法更改现有邮箱以使用 Key Protect。
如果存储区创建失败,并返回 400 Bad Request
错误和The Key CRN could not be found
消息,请确保 CRN 正确且服务到服务的授权策略存在。
在 存储区 列表中,存储区在 属性 下具有 视图 链接,您可以在该链接中验证该存储区是否已启用 Key Protect 密钥。
请注意,对于使用SSE-KP加密的对象,返回的 Etag
值将是原始解密对象的 MD5 哈希值。
密钥生命周期管理
Key Protect 提供各种方法来管理加密密钥的生命周期。 有关更多详细信息,请参阅 Key Protect 文档。
轮换密钥
密钥轮换是缓解数据违规风险的重要一环。 定期更改密钥可减少因密钥丢失或泄露而可能导致的数据丢失。 密钥轮换的频率因组织而异,并取决于若干变量,例如环境、加密数据量、数据分类和合规性法律。 美国国家标准与技术研究院(NIST) 提供了适当密钥长度的定义,并给出了密钥使用期限的指导方针。
更多信息,请参阅 Key Protect。
禁用和重新启用密钥
作为管理员,如果您怀疑数据可能存在安全漏洞,损害或违规,那么可能需要 临时禁用根密钥。 禁用根密钥时,将暂挂其加密和解密操作。 在确认安全风险不再处于活动状态之后,您可以通过启用禁用的根密钥来重新建立对数据的访问权。
如果禁用了密钥,然后快速重新启用,那么在刷新高速缓存的密钥信息之前,可能会拒绝对该存储区发出的请求长达一个小时。
删除密钥和加密擦除
无法删除与具有 保留时间策略 的存储区相关联的根密钥。 必须先清空并销毁存储区,然后才能删除根密钥。 有关更多信息,请 参阅 Key Protect 文档。
加密擦除 (或加密粉碎) 是一种通过 删除加密密钥 而不是数据本身来使加密数据不可读的方法。 当 在 Key Protect 中删除根密钥 时,它将影响使用该根密钥创建的任何存储区中的所有对象,从而有效“粉碎”数据并防止对存储区进行任何进一步的读取或写入。 此过程不是瞬时的,而是在删除密钥后大约 90 秒内发生。
虽然无法读取加密粉碎的存储区中的对象,并且无法写入新对象,但现有对象将继续使用存储器,直到用户将其删除为止。
复原已删除的密钥
作为管理员,您可能需要 复原已导入的根密钥 到 Key Protect,以便您可以访问该密钥先前保护的数据。 当您恢复密钥时,会将密钥从“已销毁”状态恢复为“激活”状态,并恢复对之前使用该密钥加密的任何数据的访问权限。 这必须在删除密钥后 30 天内发生。
活动跟踪
删除,旋转,暂挂,启用或复原 Key Protect 根密钥时,将生成 Activity Tracker 管理事件 (cloud-object-storage.bucket-key-state.update
) 以及由 Key Protect记录的任何事件。
如果在密钥的生命周期操作中发生服务器端故障,那么 COS 不会记录该故障。 如果 Key Protect 在发送事件后四小时内未从 COS 接收到成功的事件处理,那么 Key Protect 将记录失败。
cloud-object-storage.bucket-key-state.update
操作由 Key Protect中发生的事件触发,并要求向 Key Protect 服务注册存储区。 当使用 Key Protect 根密钥创建存储区时,将自动进行此注册。
在 2020 年 2 月 26th之前创建的存储区未向 Key Protect 服务注册,此时不会接收加密密钥生命周期事件的通知。 可以通过执行 存储区列表操作 并查看存储区创建日期来识别这些存储区。 要确保这些存储区具有来自
Key Protect的最新密钥状态,建议 对每个受影响存储区中的对象执行某些数据操作,例如 PUT
,GET
或 HEAD
。 建议两次 (至少相隔一小时) 执行对象操作,以确保密钥状态与
Key Protect 状态正确同步。
有关对象存储器的 Activity Tracker 事件的更多信息,请参阅参考主题。