客户管理的加密密钥简介
客户管理的加密密钥概述
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。
创建 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 disable:从 Vault 禁用 CMEK。 |
|
CMEK 重新启用:从 Vault 重新启用禁用的 CMEK。 |
|
CMEK 删除:您从 Vault 中删除 CMEK。 |
|
CMEK 删除:您从专用环境中取消分配 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 策略要求:
-
要授予块存储卷访问权限以在所需的区间中使用 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。 -
要向区域和区间中的对象存储授予使用 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。 -
要向 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。 -
要授予 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 。