本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Oracle TDE AWS CloudHSM:配置数据库并生成主加密密钥
要将 Oracle TDE 与您的 AWS CloudHSM 集群集成,请参阅以下主题:
-
更新 Oracle Database 配置以使用您的群集中的 HSM 作为外部安全模块。有关外部安全模块的信息,请参阅《Oracle Database 高级安全指南》
中的透明数据加密简介。 -
在您的集群中的 HSM 上生成 Oracle TDE 主加密密钥。
更新 Oracle Database 配置
要将 Oracle Database 配置更新为使用您的集群中的 HSM 作为外部安全模块,请完成以下步骤。有关外部安全模块的信息,请参阅《Oracle Database 高级安全指南》
更新 Oracle 配置
-
连接到您的 Amazon EC2 客户端实例。这是在其中安装 Oracle Database 的实例。
-
为名为
sqlnet.ora
的文件创建备份副本。有关此文件的位置,请参阅 Oracle 文档。 -
使用文本编辑器编辑名为
sqlnet.ora
的文件。添加以下行。如果文件中的现有行以encryption_wallet_location
开头,请将现有行替换为以下行。encryption_wallet_location=(source=(method=hsm))
保存该文件。
-
运行以下命令创建 Oracle 数据库期望在其中查找 AWS CloudHSM PKCS #11 软件库库的库文件的目录。
sudo mkdir -p /opt/oracle/extapi/64/hsm
-
运行以下命令将 PKCS #11 文件的 AWS CloudHSM 软件库复制到您在上一步中创建的目录中。
sudo cp /opt/cloudhsm/lib/libcloudhsm_pkcs11.so /opt/oracle/extapi/64/hsm/
注意
/opt/oracle/extapi/64/hsm
目录只能包含一个库文件。删除该目录中存在的所有其他文件。 -
运行以下命令更改
/opt/oracle
目录的所有权及其包含的所有内容。sudo chown -R oracle:dba /opt/oracle
-
启动 Oracle Database。
生成 Oracle TDE 主加密密钥
要在您的集群中的 HSM 上生成 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>
";
-