专用 Exadata 基础结构上的 Autonomous Database 中的主加密密钥

默认情况下,Autonomous Database on Dedicated Exadata Infrastructure 创建和管理用于保护数据的所有主加密密钥,并将其存储在数据库所在的同一 Exadata 系统上的安全 PKCS 12 密钥库中。这些密钥称为 Oracle 管理的加密密钥。

使用 Oracle 托管密钥时,Oracle 将确保密钥作为 Oracle 托管元数据进行整个生命周期。在 Exadata Cloud@Customer 部署上,对备份的访问是一项共同的责任,客户必须确保数据库环境和备份文件可访问性,以便 Oracle API 使用内部密钥管理生命周期操作。

如果贵公司的安全策略需要,则 Autonomous Database 可以使用您使用 Oracle Key Store 创建和管理的密钥。对于 Oracle Public Cloud 部署,您还可以使用 Oracle Cloud Infrastructure Vault 服务来创建和管理密钥。如果客户在 Oracle Cloud 或任何第三方云环境之外存储密钥,则可以使用外部密钥管理服务 (External KMS)。

使用 OCI Vault 服务创建客户管理的密钥时,您还可以导入自己的密钥材料(自带密钥或 BYOK),而不是让 Vault 服务在内部生成密钥材料。

注意:

由于 Oracle Key Vault (OKV) 中存储的客户管理的密钥是数据库主机的外部密钥,因此使用其密钥使 OKV 无法访问数据库的任何配置更改或中断都会使其数据无法访问。

此外,无论您使用的是 Oracle 管理的密钥还是客户管理的密钥,您都可以在需要时轮换现有数据库中使用的密钥以满足公司安全策略。有关更多详细信息,请参见 Rotate the Encryption Keys

开始之前:区间层次结构最佳实践

Oracle 建议您为专用基础设施上的 Autonomous Database 部署创建区间层次结构,如下所示:
  • 整个部署的“父”区间
  • 各类资源的“子”区间:
    • 自治数据库
    • 自治容器数据库和基础设施资源(Exadata 基础设施和自治 Exadata VM 集群)
    • VCN(虚拟云网络)及其子网
    • 包含客户管理的密钥的 Vault

在使用客户管理的密钥时,遵循此最佳做法尤其重要,因为您创建的用于授予 Autonomous Database 对密钥访问权限的策略语句必须添加到区间层次结构中比包含 Vault 及其密钥的区间更高的策略中。

相关主题

在 Vault 服务中使用客户管理的密钥

在使用存储在 Vault 服务中的客户管理的密钥之前,必须执行许多预备配置任务来创建 Vault 和主加密密钥,然后使该 Vault 及其密钥可供 Autonomous Database 使用;具体而言:

  1. 按照 Oracle Cloud Infrastructure 文档中的创建新 Vault 中的说明在 Vault 服务中创建 Vault。按照这些说明操作时,Oracle 建议您在专门创建的区间中创建 Vault,以包含包含客户管理的密钥的 Vault,如 Compartment Hierarchy Best Practice 中所述。
    创建 Vault 后,您可以按照 Oracle Cloud Infrastructure 文档中的创建新主加密密钥中的说明在 Vault 中至少创建一个主加密密钥。按照以下说明进行选择时:
    • 在区间中创建:Oracle 建议您在与其 Vault 相同的区间中创建主加密密钥;即专为包含包含客户管理的密钥的 Vault 创建的区间。
    • 保护模式:从下拉列表中选择适当的值:
      • HSM ,用于创建在硬件安全模块 (Hardware Security Module,HSM) 上存储和处理的主加密密钥。
      • 软件:创建存储在 Vault 服务的软件文件系统中的主加密密钥。受软件保护的密钥使用基于 HSM 的根密钥进行静态保护。您可以将软件密钥导出到其他密钥管理设备或其他 OCI 云区域。与 HSM 密钥不同,受软件保护的密钥是免费的。
    • 密钥配置算法:AES
    • 密钥配置长度:256 位

    注意:

    您还可以向现有 Vault 添加加密密钥。
  2. 使用网络服务向 VCN(虚拟云网络)和 Autonomous Database 资源所在的子网创建服务网关、路由规则和出站安全规则
  3. 使用 IAM 服务创建动态组,以标识 Autonomous Database 资源以及授予该动态组对您创建的主加密密钥的访问权限的策略语句。

提示:

有关演示这些说明的“试用”替代方法,请参阅 Oracle Autonomous Database Dedicated for Security Administrators 中的 Lab 17:Customer Controlled Database Encryption Keys

使用上述步骤配置客户管理的密钥后,您可以在预配自治容器数据库 (Autonomous Container Database,ACD) 时配置该密钥,或者从 ACD 或 Autonomous Database 的“详细信息”页面轮换现有加密密钥。在此 ACD 中预配的自治数据库将自动继承这些加密密钥。有关更多详细信息,请参见 Create an Autonomous Container DatabaseRotate the Encryption Key of an Autonomous Container Database

如果要启用跨区域 Autonomous Data Guard,首先需要将 OCI Vault 复制到要添加备用数据库的区域。有关详细信息,请参见 Replicating Vaults and Keys

注意:

在引入跨区域 Vault 复制功能之前创建的虚拟 Vault 无法跨区域复制。如果您的 Vault 需要在其他区域中复制,并且该 Vault 不支持复制,请创建新 Vault 和新密钥。但是,所有专用 Vault 都支持跨区域复制。有关详细信息,请参见 Virtual vault cross-region replication

在 Vault 服务中使用自带密钥 (BYOK)

适用于:适用 仅限 Oracle Public Cloud

使用 OCI Vault 服务创建客户管理的密钥时,您还可以导入自己的密钥材料(自带密钥或 BYOK),而不是让 Vault 服务在内部生成密钥材料。

在将自己的密钥引入 Vault 服务之前,必须执行许多预备配置任务来创建 Vault 并导入主加密密钥,然后使该 Vault 及其密钥可供 Autonomous Database 使用;具体而言:
  1. 按照 Oracle Cloud Infrastructure 文档中的创建新 Vault 中的说明在 Vault 服务中创建 Vault。按照这些说明操作时,Oracle 建议您在专门创建的区间中创建 Vault,以包含包含客户管理的密钥的 Vault,如 Compartment Hierarchy Best Practice 中所述。
    创建 Vault 后,您可以按照 Oracle Cloud Infrastructure 文档中的创建新主加密密钥中的说明在 Vault 中至少创建一个主加密密钥。您还可以将客户加密密钥导入现有 Vault。按照以下说明进行选择时:
    • 在区间中创建:Oracle 建议您在与其 Vault 相同的区间中创建主加密密钥;即专为包含包含客户管理的密钥的 Vault 创建的区间。
    • 保护模式:从下拉列表中选择适当的值:
      • HSM ,用于创建在硬件安全模块 (Hardware Security Module,HSM) 上存储和处理的主加密密钥。
      • 软件:创建存储在 Vault 服务的软件文件系统中的主加密密钥。受软件保护的密钥使用基于 HSM 的根密钥进行静态保护。您可以将软件密钥导出到其他密钥管理设备或其他 OCI 云区域。与 HSM 密钥不同,受软件保护的密钥是免费的。
    • 密钥配置算法:AES
    • 密钥配置长度:256 位
    • 导入外部密钥:要使用客户加密密钥 (BYOK),请选择导入外部密钥并提供以下详细信息:
      • 包装密钥信息。此部分是只读的,但您可以查看公共包装密钥详细信息。
      • 包装算法。从下拉列表中选择换行算法。
      • 外部密钥数据源。上载包含包装的 RSA 密钥材料的文件。

    注意:

    您可以将密钥材料导入为新的外部密钥版本,也可以单击现有主加密密钥的名称并将其轮换为新密钥版本。

    有关详情,请参阅将密钥材料导入为外部密钥版本

  2. 使用网络服务向 VCN(虚拟云网络)和 Autonomous Database 资源所在的子网创建服务网关、路由规则和出站安全规则
  3. 使用 IAM 服务创建动态组,以标识 Autonomous Database 资源以及授予该动态组对您创建的主加密密钥的访问权限的策略语句。

使用上述步骤配置客户管理的 BYOK 后,您可以通过从自治容器数据库或 Autonomous Database 的详细信息页面轮换现有加密密钥来使用它。有关更多详细信息,请参见 Rotate the Encryption Key of an Autonomous Container Database

使用 OCI 外部密钥管理服务 (OCI EKMS) 中的外部密钥

适用于:适用 仅限 Oracle Public Cloud

在使用 OCI EKMS 中的外部密钥之前,您必须执行许多预备配置任务来创建 Vault,然后使该 Vault 及其密钥可供 Autonomous Database 使用。

在 OCI EKMS 中,您可以在 OCI 外部托管的第三方密钥管理系统上存储和控制主加密密钥(作为外部密钥)。您可以使用此功能来增强数据安全性,或者在符合法规的情况下将密钥存储在 Oracle Public Cloud 或任何第三方云部署环境之外。由于实际密钥位于第三方密钥管理系统,因此您只能在 OCI 中创建密钥引用。
  1. 您可以在 OCI EKMS 中创建和管理保存关键参考的 Vault。您可以将 OCI EKMS 中的密钥与部署在 Oracle Public Cloud 上的 Autonomous Database on Dedicated Exadata Infrastructure 一起使用。有关更多详细信息,请参阅在 OCI EKMS 中创建 Vault 。按照以下说明进行选择时:
    • 在区间中创建:为 OCI EKMS Vault 选择区间。
    • IDCS 帐户名 URL :输入用于访问 KMS 服务的验证 URL。控制台将重定向到登录屏幕。
    • 密钥管理供应商:选择部署密钥管理服务的第三方供应商。目前,OCI KMS 仅支持 Thales 作为外部密钥管理供应商。
    • 客户端应用程序 ID :输入在 Oracle 身份域中注册机密客户端应用程序时生成的 OCI KMS 客户端 ID。
    • 客户端应用程序密钥:输入在 Oracle 身份域中注册的机密客户端应用程序的密钥 ID。
    • 区间中的专用端点:选择外部密钥管理的专用端点 GUID。
    • 外部 Vault URL :输入在外部密钥管理中创建 Vault 时生成的 Vault URL。
  2. 使用网络服务向 VCN(虚拟云网络)和 Autonomous Database 资源所在的子网创建服务网关、路由规则和出站安全规则
  3. 使用 IAM 服务创建动态组,以标识 Autonomous Database 资源以及授予该动态组对您创建的主加密密钥的访问权限的策略语句。

创建服务网关、路由规则和出站安全规则

通过 Oracle Cloud Infrastructure (OCI) 服务网关,您可以通过单个网关同时从虚拟云网络 (VCN) 或本地网络安全地访问多个 Oracle Cloud 服务,而无需通过互联网。

按照 Oracle Cloud Infrastructure 文档中的任务 1:创建服务网关中的说明,在 VCN(虚拟云网络)中创建 Autonomous Database 资源所在的服务网关。

创建服务网关后,请将路由规则和出站安全规则添加到 Autonomous Database 资源所在的每个子网(在 VCN 中),以便这些资源可以使用网关访问 Vault 服务:
  1. 转到子网的子网详细信息页。
  2. 子网信息选项卡中,单击子网的路由表的名称以显示其路由表详细信息页。
  3. 在现有路由规则表中,检查是否已存在具有以下特征的规则:
    • 目标:Oracle 服务网络中的所有 IAD 服务
    • 目标类型:服务网关
    • 目标:刚在 VCN 中创建的服务网关的名称

    如果不存在此类规则,请单击添加路由规则并添加具有这些特征的路由规则。

  4. 返回到子网的子网详细信息页。
  5. 在子网的安全列表表中,单击子网的安全列表的名称以显示其安全列表详细信息页。
  6. 在侧边菜单的资源下,单击出站规则
  7. 在现有出站规则表中,检查是否已存在具有以下特征的规则:
    • 无状态:否
    • 目标:Oracle 服务网络中的所有 IAD 服务
    • IP 协议:TCP
    • 源端口范围:全部
    • 目的地端口范围: 443

    如果不存在此类规则,请单击添加出站规则并添加具有这些特征的出站规则。

创建动态组和策略语句

要授予 Autonomous Database 资源访问客户管理的密钥的权限,请创建一个 IAM 动态组来标识这些资源,然后创建一个 IAM 策略来授予此动态组访问您在 Vault 服务中创建的主加密密钥的权限。

定义动态组时,您可以通过指定包含 Exadata 基础结构资源的区间的 OCID 来标识 Autonomous Database 资源。
  1. 复制包含 Exadata 基础结构资源的区间的 OCID。可以在区间的区间详细信息页上找到此 OCID。
  2. 按照 Oracle Cloud Infrastructure 文档中的创建动态组中的说明创建动态组。按照以下说明输入此格式的匹配规则:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    其中 <compartment-ocid> 是包含自治 Exadata VM 集群资源的区间的 OCID。

创建动态组后,在区间层次结构中比包含 Vault 和密钥的区间更高的区间中导航到(或创建)IAM 策略。然后,添加以下格式的策略语句:
allow dynamic-group <dynamic-group-name>
to manage keys
in compartment <vaults-and-keys-compartment>
where all {
target.key.id='<key_ocid>',
request.permission!='KEY_MOVE',
request.permission!='KEY_IMPORT'
}
如果您要为 Autonomous Data Guard 部署使用复制的虚拟 Vault 或复制的虚拟专用 Vault,请添加以下格式的其他策略语句:
allow dynamic-group <dynamic-group>
to read vaults
in tenancy | compartment <vaults-and-keys-compartment>

其中,<dynamic-group> 是您创建的动态组的名称,<vaults-and-keys-compartment> 是您在其中创建 Vault 和主加密密钥的区间的名称。

在 Oracle Key Vault 中使用客户管理的密钥

Oracle Key Vault (OKV) 是一款全栈、安全增强的软件设备,旨在集中管理企业内的密钥和安全对象。您可以将本地 OKV 部署与 Oracle Autonomous Database 集成,以创建和管理您自己的主密钥。

在使用 OKV 中存储的客户管理的密钥之前,必须执行许多预备配置任务,如 Prepare to Use Oracle Key Vault 中所述。

完成准备配置任务后,您可以在预配自治容器数据库 (Autonomous Container Database,ACD) 时关联 OKV 中的客户经理密钥,在此 ACD 中预配的所有 Autonomous Database 将自动继承这些加密密钥。有关详细信息,请参阅创建自治容器数据库

注意:

如果要启用跨区域自治数据卫士,请确保已在密钥库中为您的 OKV 集群添加了连接 IP 地址。

可以从 ACD 的“详细信息”页面更新 OKV 端点组。(可选)您还可以在预配 ACD 或更高版本时添加 OKV 密钥库的 OKV 端点组名称。

要在 ACD 上更新 OKV 端点组,必须确保:
  • OKV 端点组名称可以访问相应的 OKV wallet。
  • 与 ACD 对应的 OKV 端点是 OKV 端点组的一部分。
  • OKV 端点组具有对端点的默认 wallet 的读取访问权限。
要更新 OKV 端点组名称,请执行以下操作:
  • 转到 ACD 的 Details(详细信息)页面。有关说明,请参阅“查看自治容器数据库的详细信息”。
  • 单击 Encryption 下的 OKV 端点组名称旁边的 Edit
  • 从列表中选择密钥库并输入 OKV 端点组的名称。端点组名称必须全部采用大写形式,可以包含数字、连字符 (-) 和下划线 (_) 并以大写字母开头。
  • 单击保存