附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 其使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室時,請將這些值替代為雲端環境特定的值。
使用 Oracle Key Vault 管理 Oracle GoldenGate Microservices 中的加密
簡介
本教學課程提供在 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) 的程序稱為金鑰包裝 (American National Standards Institute (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 針對歷程檔加密提供下列「進階加密標準 (AES)」型方法:
-
本機公事包:加密主要金鑰儲存在本機公事包檔案中。
-
Oracle Key Vault:加密主要金鑰儲存在 Oracle Key Vault 中。Oracle Key Vault 可位於與 Oracle GoldenGate 伺服器不同的伺服器上。強烈建議使用 Oracle Key Vault 方法來加密內部部署 Oracle GoldenGate 歷程檔。此方法適用於 Oracle GoldenGate Microservices Architecture,需要在 Oracle GoldenGate 中定義加密設定檔。如需詳細資訊,請參閱在 Oracle GoldenGate 中使用 Oracle Key Vault 歷程檔加密。
-
OCI KMS:加密主要金鑰儲存在 OCI KMS 中,而主要金鑰絕不會離開 OCI KMS。如果您的 Oracle GoldenGate 部署可以存取 OCI KMS,建議使用此方法。它與 Oracle GoldenGate Microservices Architecture 相容,需要在 Oracle GoldenGate 中定義加密設定檔。如需詳細資訊,請參閱設定啟用 OCI KMS 歷程檔加密的 Oracle GoldenGate 處理作業。
工作 1:設定 Oracle Key Vault for Oracle GoldenGate
下列步驟屬於執行 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
。 -
執行以下範例指令以建立金鑰。公事包的名稱是由 Oracle Key Vault 管理員提供,或者之後可以從 Oracle Key Vault 主控台建立公事包關聯。
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 中建立的唯一 ID。
-
將從 Oracle Key Vault 主控台建立的公事包與加密金鑰建立關聯,並提供端點的存取權。
-
新增公事包詳細資訊以提供端點的存取權。
-
按一下「儲存」以儲存變更。
-
設定
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 Microservices 中設定加密設定檔
什麼是加密設定檔?
加密設定檔定義從 OCI KMS 安全存取主要金鑰所需的組態。它包含連線至 OCI KMS、認證要求以及識別用於加密和解密作業之特定主要金鑰的所有必要詳細資訊。這包括伺服器連線參數、認證證明資料以及金鑰識別屬性。
如何在 Oracle GoldenGate Microservices Architecture 中設定加密設定檔?
加密設定檔可以使用管理伺服器或 AdminClient 來設定。
AdminClient 提供像 ADD ENCRYPTIONPROFILE
、ALTER ENCRYPTIONPROFILE
、DELETE ENCRYPTIONPROFILE
和 INFO ENCRYPTIONPROFILE
等指令來管理這些設定檔。此外,已增強 Extract、Replicat 和 Distribution Path 的 ADD
和 ALTER
命令,以包含 ENCRYPTIONPROFILE
encryption-profile-name 參數。
Oracle GoldenGate 管理伺服器提供設定受管理 Extract 和 Replicat 處理作業之加密設定檔的選項。
-
若要設定加密設定檔,請按一下導覽窗格中的設定檔,然後選取金鑰管理系統 (KMS) 。
-
依預設,會建立本機公事包設定檔。如果需要將 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
。 - 存留時間:從 OCI KMS 擷取之金鑰的存留時間 (TTL)。將下一個歷程檔加密時,Extract 會檢查 TTL 是否已過期。如果是,它會擷取主要金鑰的最新版本。預設值為 24 小時。
注意:請勿上傳具有金鑰名稱與金鑰版本重複值的金鑰。在啟動、重新啟動或變換時,Oracle GoldenGate 處理作業會擷取最高的「金鑰版本」值。
工作 3:新增資料庫詳細資訊和測試連線
-
開啟「Oracle GoldenGate 管理服務主控台」並登入。
-
按一下左邊導覽窗格中的資料庫連線。
-
按一下資料庫連線 (DB Connections) 旁邊的加號 (+)。將會顯示證明資料。
-
送出資料庫詳細資訊,然後按一下送出。
-
按一下連線資料庫圖示以連線至資料庫。
任務 4:提供加密設定檔來新增擷取
若要新增 Extract,請輸入下列影像中所示的必要資訊。
我們可以驗證歷程檔現在是否已使用字串命令加密,如下圖所示。
我們也可以檢查 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 Help Center 。
Manage Encryption in Oracle GoldenGate Microservices with Oracle Key Vault
G34783-02
Copyright ©2025, Oracle and/or its affiliates.