本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
透明数据加密(TDE)用于数据库文件加密。使用 TDE,数据库软件可以先对数据进行加密,然后再将其存储在磁盘上。数据库的表列或表空间中的数据通过表密钥或表空间密钥进行加密。Oracle 数据库软件的某些版本提供 TDE。在 Oracle TDE 中,这些密钥通过 TDE 主加密密钥进行加密。通过将 TDE 主加密密钥存储在 AWS CloudHSM 集群 HSMs 中,可以提高安全性。

在此解决方案中,您将使用安装在亚马逊 EC2 实例上的 Oracle 数据库。Oracle 数据库与 PKCS #11 的AWS CloudHSM 软件库集成,用于将 TDE 主密钥存储 HSMs 在集群中。
重要
-
我们建议在亚马逊 EC2 实例上安装 Oracle 数据库。
完成以下步骤以完成 Oracle TDE 与 AWS CloudHSM的集成。
第 1 步:设置先决条件
要完成 Oracle TDE 与的集成 AWS CloudHSM,您需要满足以下条件:
至少有一个 HSM 的活动 AWS CloudHSM 集群。
运行亚马逊 Linux 操作系统的亚马逊 EC2 实例,安装了以下软件:
AWS CloudHSM 客户端和命令行工具。
PKCS #11 的 AWS CloudHSM 软件库。
甲骨文数据库。 AWS CloudHSM 支持 Oracle TDE 集成。客户端软件开发工具包 5.6 及更高版本支持适用于 Oracle Database 19c 的 Oracle TDE。客户端软件开发工具包 3 支持适用于 Oracle Database 11g 和 12c 的 Oracle TDE。
-
拥有和管理集群 HSMs 中的 TDE 主加密密钥的加密用户 (CU)。
完成以下步骤可设置所有先决组件。
设置与 Oracle TDE 集成的先决条件 AWS CloudHSM
-
完成入门中的步骤。完成后,您将拥有一个带一个 HSM 的活动集群。您还将拥有一个运行亚马逊 Linux 操作系统的亚马逊 EC2 实例。还将安装和配置 AWS CloudHSM 客户端和命令行工具。
-
(可选) HSMs 向您的集群添加更多内容。有关更多信息,请参阅 向集群添加 HS AWS CloudHSM M。
-
连接到您的 Amazon EC2 客户端实例并执行以下操作:
-
安装 Oracle Database。有关更多信息,请参阅 Oracle Database 文档
。客户端软件开发工具包 5.6 及更高版本支持适用于 Oracle Database 19c 的 Oracle TDE。客户端软件开发工具包 3 支持适用于 Oracle Database 11g 和 12c 的 Oracle TDE。 -
使用 cloudhsm_mgmt_util 命令行工具在您的集群上创建加密用户 (CU)。有关创建 CU 的更多信息,请参阅如何使用 CMU 管理 HSM 用户和HSM 用户。
步骤 3:生成 Oracle TDE 主加密密钥
要在集群 HSMs 中生成 Oracle TDE 主密钥,请完成以下过程中的步骤。
生成主密钥
-
使用以下命令打开 Oracle SQL*Plus。在系统提示时,键入安装 Oracle Database 时设置的系统密码。
sqlplus / as sysdba
注意
使用客户端软件开发工具包 3 生成主密钥时,每次都必须设置
CLOUDHSM_IGNORE_CKA_MODIFIABLE_FALSE
环境变量。仅在生成主密钥时需要此变量。有关更多信息,请参阅“问题:Oracle 在主密钥生成过程中设置了 PKCS #11 属性CKA_MODIFIABLE
”,但在有关集成第三方应用程序的已知问题中 HSM 并不支持该属性。 -
运行 SQL 语句来创建主加密密钥,如以下示例所示。使用与您的 Oracle Database 的版本对应的语句。
<CU user name>
替换为加密用户 (CU) 的用户名。<password>
替换为 CU 密码。重要
仅运行以下命令一次。每次运行此命令时,它都会创建一个新的主加密密钥。
-
对于 Oracle Database 版本 11,运行以下 SQL 语句。
SQL>
alter system set encryption key identified by "
<CU user name>
:<password>
"; -
对于 Oracle Database 版本 12 和版本 19c,运行以下 SQL 语句。
SQL>
administer key management set key identified by "
<CU user name>
:<password>
";
如果响应是
System altered
或keystore altered
,则您已成功生成并设置 Oracle TDE 的主密钥。 -
-
(可选) 运行以下命令来验证 Oracle wallet 的状态。
SQL>
select * from v$encryption_wallet;
如果 wallet 未打开,请使用下列命令之一将其打开。
<CU user name>
替换为加密用户 (CU) 的名称。<password>
替换为 CU 密码。-
对于 Oracle 11,运行以下命令以打开 wallet。
SQL>
alter system set encryption wallet open identified by "
<CU user name>
:<password>
";要手动关闭 wallet,请运行以下命令。
SQL>
alter system set encryption wallet close identified by "
<CU user name>
:<password>
"; -
对于 Oracle 12 和 Oracle 19c,运行以下命令以打开 wallet。
SQL>
administer key management set keystore open identified by "
<CU user name>
:<password>
";要手动关闭 wallet,请运行以下命令。
SQL>
administer key management set keystore close identified by "
<CU user name>
:<password>
";
-