Oracle TDE 使用 AWS CloudHSM:設定資料庫並產生主要加密金鑰 - AWS CloudHSM

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Oracle TDE 使用 AWS CloudHSM:設定資料庫並產生主要加密金鑰

若要將 Oracle TDE 與您的 AWS CloudHSM 叢集整合,請參閱下列主題:

  1. 更新 Oracle 資料庫組態,使用叢集中的 HSM 做為外部安全模組。如需外部安全模組的相關資訊,請參閱 Oracle Database 進階安全指南中的透明資料加密簡介

  2. 在叢集的 HSM 上產生 Oracle TDE 主加密金鑰

更新 Oracle 資料庫組態

若要更新 Oracle 資料庫組態來使用叢集中的 HSM 做為外部安全模組,請完成以下步驟。如需外部安全模組的相關資訊,請參閱 Oracle Database 進階安全指南中的透明資料加密簡介

更新 Oracle 組態
  1. 連線到 Amazon EC2 用戶端執行個體。您已將 Oracle 資料庫安裝在此執行個體上。

  2. 建立名為 sqlnet.ora 之檔案的備份複本。關於此檔案的位置,請參閱 Oracle 文件。

  3. 使用文字編輯器來編輯名為 sqlnet.ora 的檔案。新增以下這一行。如果檔案中有一行以 encryption_wallet_location 開頭,請換成以下這一行。

    encryption_wallet_location=(source=(method=hsm))

    儲存檔案。

  4. 執行下列命令,以建立「Oracle 資料庫」預期在其中尋找 AWS CloudHSM PKCS #11 軟體程式庫之程式庫檔案的目錄。

    sudo mkdir -p /opt/oracle/extapi/64/hsm
  5. 執行下列命令,將 PKCS #11 檔案的 AWS CloudHSM 軟體程式庫複製到您在上一個步驟中建立的目錄。

    sudo cp /opt/cloudhsm/lib/libcloudhsm_pkcs11.so /opt/oracle/extapi/64/hsm/
    注意

    /opt/oracle/extapi/64/hsm 目錄必須僅包含一個程式庫檔案。移除該目錄中存在的任何其他檔案。

  6. 執行以下命令來變更 /opt/oracle 目錄的擁有權及其中一切設定。

    sudo chown -R oracle:dba /opt/oracle
  7. 啟動 Oracle 資料庫。

產生 Oracle TDE 主加密金鑰

若要在叢集中 HSM 上產生 Oracle TDE 主金鑰,請完成以下程序中的步驟。

產生主金鑰
  1. 使用下列命令開啟 Oracle SQL*Plus。當系統提示時,請輸入您安裝 Oracle 資料庫時所設定的系統密碼。

    sqlplus / as sysdba
    注意

    對於用戶端 SDK 3,每次產生主金鑰時,都必須設定 CLOUDHSM_IGNORE_CKA_MODIFIABLE_FALSE 環境變數。此變數僅用於產生主金鑰。如需詳細資訊,請參閱整合第三方應用程式的已知問題中的「問題:Oracle 在產生主金鑰期間設定 PCKS #11 屬性 CKA_MODIFIABLE,但 HSM 不支援此屬性」。

  2. 執行 SQL 陳述式來建立主加密金鑰,如下列範例所示。請使用與 Oracle 資料庫版本對應的陳述式。以加密使用者 (CU) 的使用者名稱取代 <CU 使用者名稱>。以 CU 密碼取代<密碼>

    重要

    只執行一次下列命令。每次執行此命令都會建立新的主加密金鑰。

    • 若為 Oracle 資料庫第 11 版,請執行下列 SQL 陳述式。

      SQL> alter system set encryption key identified by "<CU user name>:<password>";
    • 若為 Oracle 資料庫第 12 版和第 19c 版,請執行下列 SQL 陳述式。

      SQL> administer key management set key identified by "<CU user name>:<password>";

    如果回應是 System alteredkeystore altered,則表示您已成功產生和設定 Oracle TDE 的主金鑰。

  3. (選用) 執行以下命令來驗證 Oracle 錢包的狀態。

    SQL> select * from v$encryption_wallet;

    如果錢包未開啟,請使用下列其中一個命令來開啟。以加密使用者 (CU) 的名稱取代 <CU 使用者名稱>。以 CU 密碼取代<密碼>

    • 若為 Oracle 11,請執行下列命令來開啟錢包。

      SQL> alter system set encryption wallet open identified by "<CU user name>:<password>";

      若要手動關閉錢包,請執行下列命令。

      SQL> alter system set encryption wallet close identified by "<CU user name>:<password>";
    • 若為 Oracle 12 和 Oracle 19c,請執行下列命令來開啟錢包。

      SQL> administer key management set keystore open identified by "<CU user name>:<password>";

      若要手動關閉錢包,請執行下列命令。

      SQL> administer key management set keystore close identified by "<CU user name>:<password>";