在 Oracle GoldenGate 中使用 Oracle Key Vault 歷程檔加密

瞭解搭配 Oracle GoldenGate Microservices Architecture 使用 Oracle Key Vault (OKV) 的優點。判斷 Oracle GoldenGate 中可用的系統需求、程序及參數,以使用 Oracle GoldenGate 來設定 OKV。

下圖說明 Oracle GoldenGate 環境中的 Oracle Key Vault 設定與工作流程。 圖表顯示 KMS 中管理的主要加密金鑰週期。Oracle GoldenGate 未將歷程檔加密主要金鑰儲存在磁碟上。「分送服務」和「接收者服務」使用 Web 安全通訊端 (wss) 通訊協定透過安全的 TLS 網路連線。

如圖所示,您可以在設定 Oracle GoldenGate 中部署的加密設定檔時,選取金鑰保存庫 (OKV) 作為金鑰管理系統。Extract,Replicat 處理作業會使用此加密設定檔來儲存並套用主要金鑰,然後再使用分送路徑傳輸歷程檔,並以 RECVPATH 處理作業接收另一端的檔案。「Web 安全通訊端」(wss) 通訊協定用於驗證 DISTPATH 與 RECVPATH 之間的連線,以建立安全的通訊通道。

Oracle Key Vault 功能

Oracle GoldenGate 26ai 和更新版本支援 Oracle Key Vault 21.8 以進行歷程檔加密。下表提供 Oracle Key Vault (OKV) 的行為和功能。

如需設定 OKV 的詳細資訊,請參閱 Installing and Configuring Oracle Key Vault 。

下列清單描述 Oracle Key Vault 功能:

使用 Oracle Key Vault 設定 GoldenGate 加密設定檔的先決條件

瞭解使用 Oracle GoldenGate 設定 OKV 的先決條件。

在本節中,已使用命令行執行產生主要金鑰的步驟。或者,您也可以使用 OKV Web 介面來建立 Oracle GoldenGate 的主要金鑰。如果您要從 OKV Web 介面產生主要金鑰,請依照「Oracle Key Vault Administrator's Guide 」中「 Create GoldenGate Master Key 」提供的步驟。

下列步驟是在執行 Oracle GoldenGate 執行處理的機器上執行 OKV 組態:

  1. 從 OKV 伺服器下載 okvrestclipackage.zip,其中 Oracle GoldenGate 部署為與部署相同的系統使用者。

  2. 使用 Oracle Key Vault Administrator's Guide 中的 Enabling RESTful Services 所提供的步驟,啟用 RESTFUL Services。

  3. 設定 OKV_HOME 環境變數。

    OS> setenv OKV_HOME /u01/app/oracle/OKV

    子目錄結構包含 OKV 環境所需的程式庫、二進位檔及組態檔。請參閱「Oracle Key Vault Installation and Upgrade Guide 」中的Oracle Key Vault Installation and Configuration ,以取得 OKV 伺服器內組態的詳細資訊。

  4. 從 OKV 伺服器下載並安裝端點檔案 okvclient.jar,其中 Oracle GoldenGate 部署為與部署相同的系統使用者。例如,

    OS> java -jar okvclient.jar -d /u01/app/oracle/OKV
  5. 建立金鑰。公事包的名稱是由 OKV 管理員提供。以下範例顯示金鑰的建立方式:

    OS> okv managed-object key create
     [--activation-date activation date]
     [--algorithm algorithm]
     [--custom-attribute custom attribute]
     [--deactivation-date deactivation date]
     [-- extractable extractable]
     [--length length]
     [--mask mask]
     [--name name]
     [--wallet wallet]
    
    ex - okv managed-object key create --algorithm AES --length 256 --mask "ENCRYPT,DECRYPT,TRANSLATE_ENCRYPT,TRANSLATE_DECRYPT,TRANSLATE_WRAP,TRANSLATE_UNWRAP" --wallet wallet1

    或者,您可以註冊自己的金鑰,如下列範例所示:

    OKV> okv managed-object key register
      [--activation-date activation date]
      [--algorithm algorithm]
      [--custom-attribute custom attribute]
      [--deactivation-date deactivation date]
      [--extractable extractable]
      [--length length]
      [--mask mask]
      [--name name]
    
      --object object
      [--wallet wallet]
    
    ex -  bin/okv managed-object key register --length 256 --activation-date "NOW" --object symkey.txt --algorithm AES --mask "ENCRYPT,DECRYPT,TRANSLATE_ENCRYPT,TRANSLATE_DECRYPT,TRANSLATE_WRAP,TRANSLATE_UNWRAP"
    
       --wallet wallet1
  6. 啟用金鑰,如下列範例所示:

    OS> okv managed-object object activate --uuid UUID
  7. 新增 Oracle GoldenGate 相關金鑰屬性 (KeyName、KeyVersion) 至組態。金鑰名稱必須與 Oracle GoldenGate 內建立之 KMS 加密設定檔中的主要金鑰名稱相符。金鑰值必須與主金鑰的版本號碼相符。

    OS> okv managed-object custom-attribute add --custom-attribute custom attribute --uuid uuid
    
    ex - okv managed-object custom-attribute add --custom-attribute '[ { "name": "x-OGG-KeyName", "value" : "OGG_Masterkey", "type" : "text" },{ "name": "x-OGG-KeyVersion", "value" : "1", "type" : "text"} ] '
  8. 使用 okvutil 列出組態設定並檢查端點狀態。如下列範例所示:

    *OS>okvutil list -v 4*

    此命令的輸出顯示組態設定值和端點狀態:

    okvutil version 21.12.0.0.0
    Endpoint type: Oracle AI Database
    Configuration file: u01/app/oracle/OKV/conf/okvclient.ora
    Server: 100.70.1.1:5696
    Standby Servers:
    Auto-login wallet found, no password needed
    Trying to connect to 100.70.1.1:5696 ...
    Connected to 100.70.1.1:5696.
    Unique ID                               Type            Identifier
    8BC11E57-5269-403D-9B69-A66641ADAFC7   Symmetric          Key   -

接下來的步驟是在 Oracle GoldenGate 內進行管理,並顯示為「管理從屬端」的實行。

Oracle Key Vault 之不同主要狀態的從屬端行為

下表根據不同的歷程檔加密金鑰狀態,描述寫入器 (Extract) 或讀取器 (Replicat) 從屬端處理作業的相對行為。

如果主金鑰無法擷取,則表示 OKV 加密作業正在使用遠端加密。這表示主金鑰無法離開 OKV,或無法從 OKV 擷取。Oracle GoldenGate 中以每個歷程檔一次為基礎進行加密與解密的命令會在 OKV 內執行。

金鑰可能處於下列狀態:

金鑰狀態 歷程檔寫入器 (加密) 歷程檔讀取器 (解密)
有效 歷程檔寫入器會選擇最高版本號碼與「作用中」狀態以進行加密。 歷程檔讀取器可以使用此金鑰和版本號碼來解密歷程檔。
主動 歷程檔寫入器會忽略,且不會考量含有這些狀態的金鑰版本號碼。 不適用
已停用 無 歷程檔讀取器會在金鑰和版本號碼停用或洩漏時,擷取並解密歷程檔。
遭入侵 無 歷程檔讀取器會在金鑰和版本號碼停用或洩漏時,擷取並解密歷程檔。
已毀棄 非 如果解密所需的金鑰和版本號碼處於毀棄或毀棄狀態,則歷程檔讀取器會產生錯誤並異常中止。
已毀棄-遭入侵 無 歷程檔讀取器會發出錯誤,如果解密所需的金鑰和版本號碼處於毀棄或毀損狀態,則會發出異常中止。

套用 OKV 加密設定檔

Oracle GoldenGate 管理服務提供設定 Extract 和 Replicat 處理作業加密設定檔的選項。

請使用下列步驟,使用 Oracle Key Vault (OKV) 建立加密設定檔:

  1. 在設定 OKV 之前,您需要執行用戶端安裝。請參閱Oracle Key Vault Administrator's Guide 中的 Step 1:Configure the Oracle Key Vault Server Environment 。

  2. 從「管理服務」左側導覽窗格中,按一下加密。會顯示「加密設定檔」頁面。

  3. 按一下 OKV 旁邊的加號 +,然後指定下列 OKV 組態詳細資訊:

    選項 說明
    設定檔名稱 加密設定檔的名稱
    說明 描述加密設定檔。
    預設設定檔 如果您要將此設定檔設為預設值,請啟用此選項。
    加密設定檔類型 選取 Oracle Key Vault (OKV) 。
    KMS 程式庫路徑 指定安裝 Oracle Key Vault 的目錄位置。在 Web 介面中,這稱為「KMS 程式庫」路徑,但在「管理從屬端」中,這是 Oracle Key Vault 路徑。
    Oracle Key Vault 版本  
    主要金鑰名稱 指定主要金鑰的名稱。
    存留時間 從 Oracle Key Vault 擷取之金鑰的存留時間 (TTL)。將下一個歷程檔加密時,Extract 會檢查 TTL 是否已過期。如果金鑰已過期,則會擷取主要金鑰的最新版本。預設值為 24 小時。

另請參閱下列教學課程以瞭解參考資訊: Manage Encryption in Oracle GoldenGate Microservices with Oracle Key Vault