客户管理的加密密钥简介

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

客户管理的加密密钥概述

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

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

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

术语

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 主题。

图 - OCI Vault

后面是图像的说明

插图 vault.png 的说明

CMEK 创建:

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

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

先决条件

过程

  1. 登录到您的 OCI 控制台。

  2. 打开位于左上角的导航菜单,选择身份和安全,然后选择 Vault

  3. 选择包含 Vault 的区间

  4. 选择要在其中创建 CMEK 的 Vault 的名称。

  5. Resources(资源)下,选择 Master Encryption Keys(主加密密钥),然后选择 Create Key(创建密钥)。请注意,密钥可以在与 Vault 的密钥不同的区间中创建。

  6. 对于保护模式,选择以下选项之一:HSM 或软件。

  7. 输入用于标识 CMEK 的名称。

  8. 对于 Key Shape:Algorithm ,选择 "Advanced Encryption Standard (AES) algorithm"。KMS 支持 AES、RSA 和 ECDSA 算法。但是,NDCS 只允许 CMEK 使用对称密钥配置。因此,必须选择 AES 选项,以生成对称密钥。

  9. 对于 Key Shape:Length ,选择密钥长度为 256 位。

  10. 如果要导入外部密钥,请选中导入外部密钥复选框并提供以下详细信息:

    • 包装演算法:选择 RSA_OAEP_AES_SHA256 。OCI 支持此算法导入公开包装的密钥。

    • 外部关键字数据源:上载包含包装的 RSA 密钥材料的文件。

  11. 选择创建密钥

图 - Vault 中的 CMEK 创建

后面是图像的说明

插图 createkey.png 的说明

注:Oracle NoSQL Database Cloud Service 仅支持单版本密钥。

CMEK 访问:

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

图 - CMEK 详细信息

后面是图像的说明

插图 key_ocid.png 的说明

Vault 中的 CMEK 生命周期:

Vault 支持以下操作:

注意:在此等待期内,CMEK 的状态处于禁用状态。

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

CMEK 管理操作

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

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

表 - CMEK 管理任务

用户任务 NDCS 任务
CMEK 分配:您可以从 OCI 控制台向专用环境分配 CMEK。
  • 在专用环境的块存储卷和对象存储中触发密钥加密。
  • 显示 CMEK 分配的启动和完成时的通知。
CMEK 轮换:在专用环境中更新 CMEK。
  • 触发对专用环境的块存储卷和对象存储中的密钥重新加密。
  • 显示有关启动和完成更新流程的通知。
CMEK disable:从 Vault 禁用 CMEK。
  • 检查与专用环境关联的 CMEK 的元数据和当前状态。
  • 使专用环境不可用。使用 CMEK 的任何数据或资源都呈现为不可用状态。
  • 禁用专用环境中的所有预警。
  • 显示相应的通知以通知 CMEK 已在保管库中禁用。
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 策略

后面是图像的说明

插图 cmek_policy.png 的说明

CMEK 监视和日志记录

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

OCI 审计日志

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

OCI 预警

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

表 - CMEK 度量和预警

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

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

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

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

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

加密密钥类型 加密密钥类型 整数

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

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

如果值为 1,则改用 CMEK。

OCI 控制台

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

您将收到以下与 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 的详细信息,请参见 CMEK Restore

相关主题