注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间的示例值。完成实验室时,请将这些值替换为特定于云环境的值。
使用 Oracle Key Vault 在 Oracle GoldenGate 微服务中管理加密
简介
本教程提供了在 Oracle GoldenGate 微服务中使用 Oracle Key Vault 21.7 管理加密的分步流程。
密钥管理服务
Oracle 提供两项密钥管理服务:Oracle Key Vault 和 Oracle Cloud Infrastructure Key Management Service (OCI KMS);这两项服务均受 Oracle GoldenGate 支持。这些服务提供了管理加密密钥和凭证的可扩展性,可确保密钥不会由 Oracle GoldenGate 存储或管理。
Oracle GoldenGate 中的加密
Oracle GoldenGate 使用封装加密方法保护线索文件。对于每个线索文件,它会生成唯一的数据加密密钥 (DEK),称为本地密钥,用于加密线索文件的内容。然后,此 DEK 将使用主密钥进行加密,加密的 DEK 将嵌入到线索文件标头中。
此方法可确保为每个线索文件自动生成新的加密密钥,从而增强数据安全性。使用另一个密钥(主密钥)加密一个密钥 (DEK) 的过程称为密钥包装,这是由美国国家标准协会 (ANSI) 的 ANSI X9.102 标准化的技术。
为什么要使用 OCI KMS 来存储 Oracle GoldenGate 加密密钥?
密钥管理包括加密密钥的生成、分发、存储、使用和轮换。OCI KMS 包括关键服务器、用户定义的过程和安全协议。有效的密钥管理对于保持企业的整体安全态势至关重要。
将 OCI KMS 与 Oracle GoldenGate 结合使用的优势包括:
- 集中式主密钥管理:可以使用定制属性直接将主密钥生成并上载到 Oracle Key Vault,从而在 OCI KMS 本身中实现无缝的生命周期操作,例如轮换和到期。
- 无本地密钥存储:Oracle GoldenGate 不会在本地存储或管理主密钥,从而降低风险并简化合规性。
- 增强的安全集成:Oracle GoldenGate 受益于专有 OCI KMS 解决方案的高级安全功能,包括分层加密控制和严格访问策略。
线索文件加密
Oracle GoldenGate 提供以下基于高级加密标准 (Advanced Encryption Standard,AES) 的线索加密方法:
-
本地 Wallet:加密主密钥存储在本地 Wallet 文件中。
-
Oracle Key Vault:加密主密钥存储在 Oracle Key Vault 中。Oracle Key Vault 可以位于与 Oracle GoldenGate 服务器不同的服务器上。强烈建议使用 Oracle Key Vault 方法进行内部部署 Oracle GoldenGate 线索加密。此方法适用于 Oracle GoldenGate 微服务体系结构,需要在 Oracle GoldenGate 中定义加密概要信息。有关更多信息,请参见 Using Oracle Key Vault Trail File Encryption in Oracle GoldenGate 。
-
OCI KMS:加密主密钥存储在 OCI KMS 中,主密钥永远不会离开 OCI KMS。如果您的 Oracle GoldenGate 部署可以访问 OCI KMS,则建议使用此方法。它与 Oracle GoldenGate Microservices Architecture 兼容,需要在 Oracle GoldenGate 中定义加密配置文件。有关详细信息,请参阅配置 Oracle GoldenGate 流程以启用 OCI KMS 线索文件加密。
任务 1:为 Oracle GoldenGate 配置 Oracle Key Vault
以下步骤属于运行 Oracle GoldenGate 实例的计算机上的 Oracle Key Vault 配置。
-
从 Oracle Key Vault 服务器下载
okvrestservices.jar
,确保 Oracle GoldenGate 部署在与部署相同的系统用户下。 -
从 Oracle Key Vault 服务器下载并安装端点文件
okvclient.jar
,确保 Oracle GoldenGate 部署在与部署相同的系统用户下。例如,java -jar okvclient.jar -d /u01/app/oracle/OKV
。 -
运行以下示例命令以创建密钥。wallet 名称由 Oracle Key Vault 管理员提供,或者我们以后可以从 Oracle Key Vault 控制台关联 wallet。
java -jar okvrestservices.jar kmip --config /u01/app/oracle/OKV/conf/okvclient.ora --service create_key --algorithm AES --length 256 --mask "ENCRYPT,DECRYPT,TRANSLATE_ENCRYPT,TRANSLATE_DECRYPT,TRANSLATE_WRAP,TRANSLATE_UNWRAP"
-
在 Oracle Key Vault 控制台中,我们可以验证密钥并与在步骤 3 中创建的唯一标识符匹配。
-
将从 Oracle Key Vault 控制台创建的 wallet 与加密密钥关联并提供对端点的访问。
-
添加 wallet 详细信息以提供对端点的访问。
-
单击保存可保存所做的更改。
-
设置
OKV_HOME
环境变量。OS> export OKV_HOME /u01/app/oracle/OKV
子目录结构包含 Oracle Key Vault 环境所需的库、二进制文件和配置文件。有关 OKV 服务器内配置的更多信息,请参见Oracle Key Vault Administration Guide 中的 Oracle Key Vault Installation and Configuration 。
-
按以下示例中所示激活密钥。
java -jar okvrestservices.jar kmip --config /u01/app/oracle/OKV/conf/okvclient.ora --service activate -uid A087DAC3-ED0F-4F06-BF6C-3F3CD3FC528B
-
将 Oracle GoldenGate 相关关键属性(
KeyName
、KeyVersion
)添加到配置中。密钥名称必须与在 Oracle GoldenGate 中创建的 OCI KMS 加密概要信息中的主密钥名称匹配。密钥值必须与主密钥的版本号匹配。java -jar okvrestservices.jar kmip --config /u01/app/oracle/OKV/conf/okvclient.ora --service add_custom_attr --uid D98640C4-A4B4-4FA5-BF8B-8D90610CD68A --attribute x-OGG-Keyname --type TEXT --value OGG_Masterkey Success
java -jar okvrestservices.jar kmip --config /u01/app/oracle/OKV/conf/okvclient.ora --service add_custom_attr --uid D98640C4-A4B4-4FA5-BF8B-8D90610CD68A --attribute x-OGG-KeyVersion --type TEXT --value 1 Success
-
使用
okvutil
实用程序列出配置设置并检查端点状态,如以下示例中所示。-bash-4.2$ export OKV_HOME=/u01/app/oracle/OKV -bash-4.2$ $OKV_HOME/bin/okvutil list -v 4
任务 2:使用 Oracle Key Vault 在 Oracle GoldenGate 微服务中配置加密概要信息
什么是加密概要文件?
加密配置文件定义从 OCI KMS 安全访问主密钥所需的配置。它包含连接到 OCI KMS、验证请求以及标识要用于加密和解密操作的特定主密钥的所有必要详细信息。这包括服务器连接参数、验证凭证和密钥标识属性。
如何在 Oracle GoldenGate 微服务体系结构中配置加密概要信息?
可以使用管理服务器或 AdminClient 配置加密配置文件。
AdminClient 提供了 ADD ENCRYPTIONPROFILE
、ALTER ENCRYPTIONPROFILE
、DELETE ENCRYPTIONPROFILE
和 INFO ENCRYPTIONPROFILE
等命令来管理这些配置文件。此外,对 Extract、Replicat 和 Distribution Path 的 ADD
和 ALTER
命令进行了增强,以包括 ENCRYPTIONPROFILE
encryption-profile-name 参数。
Oracle GoldenGate Administration Server 提供了用于为托管的提取和复制进程设置加密配置文件的选项。
-
要设置加密配置文件,请在导航窗格中单击 Profile(配置文件),然后选择 Key Management System (KMS) 。
-
默认情况下,将创建本地 wallet 配置文件。如果需要将 Oracle Key Vault 设置为适用于 Oracle GoldenGate 的 OCI KMS 服务,请单击概要信息旁边的加号,以通过指定以下详细信息来为 Oracle Key Vault 创建加密概要信息:
- 名称:输入 Oracle Key Vault 加密配置文件的名称。
- 类型:将 OCI KMS 类型指定为 Oracle Key Vault。
- 主路径:指定安装 Oracle Key Vault 的目录位置。在管理客户机中,这是 Oracle Key Vault 路径。在 Web 界面中,这是 OCI KMS 库路径。
- 密钥名称属性:使用此定制属性指定加密密钥的名称。此值必须与 Oracle GoldenGate 中 OCI KMS 参数中的密钥名称匹配,并且复制开始后,无法更改此名称。
- 密钥版本属性:使用此定制属性指定加密密钥的版本。此值必须为数字。
- MasterKey 名称:指定主密钥的名称。
- MasterKey 版本:指定 Oracle Key Vault 的版本。默认值为
LATEST
,或者您可以指定版本号,例如18.1
。 - 生存时间: Extract 从 OCI KMS 检索的密钥的生存时间 (TTL)。加密下一个线索时,提取将检查 TTL 是否已过期。如果是,它将检索主密钥的最新版本。默认为 24 小时。
注:请勿上载具有重复值关键字名称和关键字版本的关键字。在启动、重新启动或滚动时,Oracle GoldenGate 进程检索最高的密钥版本值。
任务 3:添加数据库详细信息和测试连接
-
打开 Oracle GoldenGate 管理服务控制台并登录。
-
从左侧导航窗格中单击 DB Connections 。
-
单击 DB Connections(DB 连接)旁边的加号 (+)。将显示 Credentials(身份证明)。
-
提交数据库详细信息,然后单击提交。
-
单击“Connect database(连接数据库)”图标以连接到数据库。
任务 4:通过提供加密配置文件添加提取
要添加提取,请输入必需的信息,如以下图像中所示。
我们可以验证线索文件现在是否使用字符串命令进行加密,如下图中所示。
我们还可以检查 Oracle GoldenGate 错误日志以验证线索文件是否已加密。
相关链接
确认
- 作者 — Amresh Kumar Singh(Oracle 北美云服务— NACIE 高级云工程师),Ankush Chawla(Oracle 北美云服务— NACIE 首席云架构师)
更多学习资源
通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Manage Encryption in Oracle GoldenGate Microservices with Oracle Key Vault
G34782-02
Copyright ©2025, Oracle and/or its affiliates.