客户管理的加密密钥简介

了解适用于专用环境的客户管理的加密密钥。

客户管理的加密密钥概述

Oracle NoSQL Database Cloud Service (NDCS) 使用数据加密密钥对静态数据进行加密,从而有效防范安全漏洞。然后,使用主加密密钥对数据加密密钥进行加密。默认情况下,NDCS 使用 Oracle 托管的主加密密钥。

NDCS 还允许您使用自己的主加密密钥(称为客户管理的加密密钥 (Customer-Managed Encryption Key,CMEK))加密数据加密密钥。在使用此功能之前,必须在专用环境中启用 CMEK。创建为 CMEK 配置的专用环境时,Oracle NoSQL Database 使用 OCI 块存储卷来存储和加密数据库数据,并使用您控制的主加密密钥。此外,您的环境数据备份驻留在 OCI 对象存储中,并使用您的主密钥进行加密。要提交服务单,请参阅请求专用托管环境

您可以创建和管理自己的主加密密钥。NDCS 使用 OCI 密钥管理服务 (Key Management Service,KMS) 将您的主加密密钥存储在 Vault 中并管理密钥的运行状态。

术语

  • 客户管理的加密密钥 (CMEK):用于加密和解密块存储卷和对象存储密钥的主加密密钥。
  • 静态数据:指存储在 Oracle NoSQL Database 中的数据。
  • CMEK 的专用环境:专为您的租户配置的 Oracle NoSQL 环境,配置为使用客户管理的加密密钥。
  • 密钥管理服务 (Key Management Service,KMS):在 Vault 中存储和管理密钥的 OCI 服务。KMS 提供对加密密钥的集中管理和控制。
  • 密钥轮换:将旧加密密钥替换为新密钥的过程,以便在密钥被泄露时降低风险。
  • 块存储卷服务: OCI 服务支持您动态供应和管理块存储,满足必要的应用需求。
  • 对象存储服务: OCI 服务可为数据提供完全可编程、可扩展且持久的云存储。
  • OCI Vault 服务: OCI 服务提供用于管理加密密钥和密钥的安全集中位置。

CMEK 是如何工作的?

通过 OCI Vault 服务,您可以在租户中创建 Vault 作为加密密钥的容器。在 Vault 中创建 CMEK 时,会为其分配唯一的 Oracle Cloud ID (OCID)。

您可以通过 OCI 控制台向专用环境分配 CMEK。块存储卷服务和对象存储服务使用 CMEK 加密块存储卷和对象存储密钥。

NDCS 允许您分配新的 CMEK 来支持密钥轮换。您必须先在 Vault 中创建新密钥。要触发轮换,请从 OCI 控制台更新专用环境中的新密钥。轮换到新的 CMEK 不会对块存储卷或对象存储中存储的任何数据进行重新加密。它仅对块存储卷和对象存储密钥进行重新加密。

块存储卷服务和对象存储服务管理所有数据操作。

CMEK 创建

Oracle NoSQL Database Cloud Service 支持与 OCI Vault 服务独家集成来创建 Vault,并使用 KMS 在 Vault 中创建、存储和管理 CMEK。有关 Vault 的更多详细信息,请参阅 Oracle Cloud Infrastructure 文档中的 OCI Vault 主题。

您必须先从 OCI 控制台创建 Vault,然后在 Vault 中创建 CMEK。

有关详细信息,请参阅 Oracle Cloud Infrastructure 文档中的 Creating a Vault 主题。

CMEK 创建:

创建 CMEK 时,可以指定其保护模式、算法和长度。

请按照以下步骤创建 CMEK。有关详细信息,请参阅 Oracle Cloud Infrastructure 文档中的 Creating a Master Encryption Key 主题。

先决条件
  • 创建 Vault。
过程
  1. 登录您的 OCI 控制台。
  2. 打开位于左上角的导航菜单,选择身份和安全,然后选择 Vault
  3. 选择包含 Vault 的区间
  4. 选择要在其中创建 CMEK 的 Vault 的名称。
  5. 资源下,选择主加密密钥,然后选择创建密钥。请注意,密钥可以在与 Vault 的密钥不同的区间中创建。
  6. 对于保护模式,请选择以下选项之一:HSM 或软件。
  7. 输入用于标识 CMEK 的名称。
  8. 对于密钥配置:算法,选择高级加密标准 (Advanced Encryption Standard,AES) 算法。KMS 支持 AES、RSA 和 ECDSA 算法。但是,NDCS 只允许 CMEK 使用对称密钥配置。因此,必须选择生成对称密钥的 AES 选项。
  9. 对于密钥配置:长度,选择密钥长度为 256 位。
  10. 如果要导入外部密钥,请选中导入外部密钥复选框并提供以下详细信息:
    • 包装算法:选择 RSA_OAEP_AES_SHA256 。OCI 支持此算法来导入公开包装的密钥。
    • 外部关键字数据源:上载包含包装的 RSA 密钥材料的文件。
  11. 选择创建密钥

    图 - Vault 中的 CMEK 创建



    注意:

    Oracle NoSQL Database Cloud Service 仅支持单版本密钥。
CMEK 访问:

创建 CMEK 后,将其分配给专用环境。专用环境中的块存储卷服务和对象存储服务在内部使用 CMEK 的 OCID 访问 CMEK。

Vault 中的 CMEK 生命周期:

Vault 支持以下操作:

  • 创建:您在 Vault 中创建 CMEK。
  • 禁用/启用:您可以禁用/启用 CMEK 以控制其使用情况。
  • 删除:您可以从 Vault 中删除 CMEK。删除是一个包含等待期的两个步骤过程,用于防止意外删除。

    注意:

    CMEK 的状态在此等待期间处于禁用状态。

有关启用、禁用和删除 CMEK 的详细信息,请参见 CMEK Key Management Workflow

CMEK 管理操作

Oracle NoSQL Database Cloud Service 可管理 CMEK 在专用环境中的操作。这包括 CMEK 分配给专用环境、CMEK 旋转、移除、在保管库中禁用、重新启用和删除。

下表介绍了 CMEK 管理中涉及的任务。有关 CMEK 密钥管理任务的详细信息,请参见 CMEK Key Management Workflow

表 - CMEK 管理任务

用户任务 NDCS 任务

CMEK 分配:您可以从 OCI 控制台向专用环境分配 CMEK。

  • 在专用环境的块存储卷和对象存储中触发密钥加密。
  • 显示 CMEK 分配的启动和完成时的通知。
CMEK 轮换:在专用环境中更新 CMEK。
  • 触发对专用环境的块存储卷和对象存储中的密钥重新加密。
  • 显示有关启动和完成更新流程的通知。
CMEK disable:从 Vault 禁用 CMEK。
  • 检查与专用环境关联的 CMEK 的元数据和当前状态。
  • 使专用环境不可用。使用 CMEK 的任何数据或资源都呈现为不可用状态。
  • 禁用专用环境中的所有预警。
  • 显示相应的通知以通知 CMEK 已在 Vault 中禁用。
CMEK 重新启用:从 Vault 重新启用禁用的 CMEK。
  • 无法自动恢复服务。您必须提交请求恢复服务的 CAM 票证。
  • 只有通过 CAM 票证明确请求服务才能恢复。
CMEK 删除:您从 Vault 中删除 CMEK。
  • 支持两步删除过程。将为 CMEK 分配暂挂删除状态,这等同于禁用状态。达到删除日期后,将永久删除 CMEK。
  • 使专用环境不可用。使用已删除的 CMEK 加密的所有数据在删除日期后将永久无法访问。
  • 显示用于通知 CMEK 在保管库中删除的相应通知。
CMEK 删除:您从专用环境中取消分配 CMEK。
  • 将专用环境还原为 Oracle 托管的密钥,并触发对专用环境的块存储卷和对象存储中的密钥重新加密。
  • 显示 CMEK 删除的启动和完成时的通知。

CMEK 访问控制

Oracle NoSQL Database Cloud Service 使用 Oracle Cloud Infrastructure Identity and Access Management (IAM) 提供对 Oracle 云的安全访问。通过 OCI IAM,您可以实施访问控制来使用 KMS 功能。

您必须创建策略来访问 Vault、块存储卷和对象存储中的 CMEK,以执行所有必需的操作。有关策略的更多详细信息,请参阅 Oracle Cloud Infrastructure 文档中的 Policies Work

以下是您的租户中 CMEK 使用的基本 IAM 策略要求:

  1. 要授予块存储卷访问权限以在所需的区间中使用 CMEK,请执行以下操作:
    allow service blockstorage to use keys in compartment <name_of_compartment> where target.key.id = <key-ocid>

    其中:

    name_of_compartment: 专用环境中的区间名称。

    key-ocid: CMEK 的 OCID。

  2. 要向区域和区间中的对象存储授予使用 CMEK 的访问权限:
    allow service objectstorage-<region> to use keys in compartment <name_of_compartment> where target.key.id = <key-ocid>

    其中:

    对象存储所在的 region: 区域。

    name_of_compartment: 专用环境中的区间名称。

    key-ocid: CMEK 的 OCID。

  3. 要向 Oracle NoSQL Database Cloud Service 授予对密钥代理 CMEK 的访问权限,请执行以下操作:

    需要允许集成服务(例如 NDCS)在特定区间中使用密钥时,可以添加密钥委派权限。
    allow service nosql-database-cloud to use key-delegate in compartment <name_of_compartment> where target.key.id = <key-ocid>

    其中:

    name_of_compartment: 专用环境中的区间名称。

    key-ocid: CMEK 的 OCID。

  4. 要授予 Oracle NoSQL Database Cloud Service 读取 CMEK 的访问权限:
    allow service nosql-database-cloud to read keys in compartment <name_of_compartment> where target.key.id = <keyocid>

    其中:

    name_of_compartment: 专用环境中的区间名称。

    key-ocid: CMEK 的 OCID。

CMEK 监视和日志记录

Oracle NoSQL Database Cloud Service 支持在专用环境中记录所有与 CMEK 相关的事件,并通过相应的通知发出警报。

OCI 审计日志

Oracle NoSQL Database Cloud Service 使用 OCI 审计服务记录所有关键状态更改。审计日志信息包括:

  • 检测到状态更改的时间戳。
  • CMEK 的以前和新状态。有关 CMEK 生命周期管理的详细信息,请参阅 CMEK 密钥管理工作流
  • 受影响的端点。
  • 采取的特殊行动。

OCI 预警

Oracle NoSQL Database Cloud Service 使用 OCI 监视服务使用指标和预警功能主动和被动监视云资源。您可以基于以下指标设置 OCI 预警:

表 - CMEK 度量和预警

度量 显示名称 单位 说明
EncryptionKeyStatus 加密密钥状态 整数

Oracle NoSQL Database Cloud Service 看到的加密密钥的状态。

如果值为 0,则禁用加密密钥。

如果值为 1,将启用加密密钥并能够执行加密/解密。

Oracle 管理的密钥始终返回 1。

EncryptionKeyType 加密密钥类型 整数

分配给 Oracle NoSQL Database Cloud Service 的当前加密密钥类型。

如果值为 0,则使用 Oracle 管理的密钥。

如果值为 1,则改用 CMEK。

OCI 控制台

Oracle NoSQL Database Cloud Service 使用 OCI 通知服务在 OCI 控制台上为受影响的专用环境显示严重预警。

您将收到以下与 CMEK 相关的事件的通知:

  • 将新 CMEK 分配给专用环境。
  • CMEK 在专用环境中发生更改。
  • CMEK 已从专用环境中删除。
  • 正在从 Vault 中删除 CMEK,它正处于等待期。
  • CMEK 已从 Vault 中删除。
  • CMEK 已在 Vault 中重新启用。
  • 加密过程在专用环境中启动。
  • 加密过程在专用环境中完成。

这些警报包括:

  • CMEK 的当前状态。
  • 如果专用环境不可用,则说明原因。

CMEK 服务可用性

Oracle NoSQL Database Cloud Service 监视 Vault 中的 CMEK 服务可用性,并在禁用或删除 CMEK 时执行相应操作。当专用环境因 CMEK 问题而变得不可用或不可恢复时,NDCS 会提供明确的错误消息和日志。

如果禁用 CMEK,Oracle NoSQL Database Cloud Service 将触发以下操作:

  • 立即禁用对专用环境的所有访问。
  • 关闭专用环境上的实例。
  • 禁用对专用环境的所有监视。
  • 确保无法访问专用环境的块存储卷和对象存储中的数据。

有关禁用 CMEK 的详细信息,请参见 CMEK Disable

如果删除 CMEK,Oracle NoSQL Database Cloud Service 将触发以下操作:

  • 立即将专用环境标记为不可恢复。
  • 关闭专用环境上的实例。
  • 禁用对专用环境的所有监视。
  • 计划永久终止的专用环境。

有关删除 CMEK 的详细信息,请参见 CMEK Delete

如果重新启用 CMEK,Oracle NoSQL Database Cloud Service 将建议执行以下操作:

  • 在保管库中重新启用 CMEK 后,必须提交 CAM 票证才能使环境重新联机。

有关重新启用 CMEK 的详细信息,请参见 CMEK Restore