注意:

使用 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 GoldenGate 提供以下基于高级加密标准 (Advanced Encryption Standard,AES) 的线索加密方法:

任务 1:为 Oracle GoldenGate 配置 Oracle Key Vault

以下步骤属于运行 Oracle GoldenGate 实例的计算机上的 Oracle Key Vault 配置。

  1. 从 Oracle Key Vault 服务器下载 okvrestservices.jar,确保 Oracle GoldenGate 部署在与部署相同的系统用户下。

  2. 从 Oracle Key Vault 服务器下载并安装端点文件 okvclient.jar,确保 Oracle GoldenGate 部署在与部署相同的系统用户下。例如,java -jar okvclient.jar -d /u01/app/oracle/OKV

    图像

  3. 运行以下示例命令以创建密钥。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"
    
    

    图像

  4. 在 Oracle Key Vault 控制台中,我们可以验证密钥并与在步骤 3 中创建的唯一标识符匹配。

    图像

  5. 将从 Oracle Key Vault 控制台创建的 wallet 与加密密钥关联并提供对端点的访问。

    图像

  6. 添加 wallet 详细信息以提供对端点的访问。

    图像

  7. 单击保存可保存所做的更改。

    图像

    图像

  8. 设置 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

  9. 按以下示例中所示激活密钥。

    java -jar okvrestservices.jar kmip  --config /u01/app/oracle/OKV/conf/okvclient.ora  --service activate -uid A087DAC3-ED0F-4F06-BF6C-3F3CD3FC528B
    

    图像

  10. 将 Oracle GoldenGate 相关关键属性(KeyNameKeyVersion)添加到配置中。密钥名称必须与在 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
    
    

    图像

    图像

  11. 使用 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 ENCRYPTIONPROFILEALTER ENCRYPTIONPROFILEDELETE ENCRYPTIONPROFILEINFO ENCRYPTIONPROFILE 等命令来管理这些配置文件。此外,对 Extract、Replicat 和 Distribution Path 的 ADDALTER 命令进行了增强,以包括 ENCRYPTIONPROFILE encryption-profile-name 参数。

Oracle GoldenGate Administration Server 提供了用于为托管的提取和复制进程设置加密配置文件的选项。

  1. 要设置加密配置文件,请在导航窗格中单击 Profile(配置文件),然后选择 Key Management System (KMS)

  2. 默认情况下,将创建本地 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:添加数据库详细信息和测试连接

  1. 打开 Oracle GoldenGate 管理服务控制台并登录。

  2. 从左侧导航窗格中单击 DB Connections

  3. 单击 DB Connections(DB 连接)旁边的加号 (+)。将显示 Credentials(身份证明)

  4. 提交数据库详细信息,然后单击提交

  5. 单击“Connect database(连接数据库)”图标以连接到数据库。

图像

任务 4:通过提供加密配置文件添加提取

要添加提取,请输入必需的信息,如以下图像中所示。

图像

图像

图像

我们可以验证线索文件现在是否使用字符串命令进行加密,如下图中所示。

图像

我们还可以检查 Oracle GoldenGate 错误日志以验证线索文件是否已加密。

图像

确认

更多学习资源

通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心