Oracle 資料庫透明資料加密 (TDE) 搭配 AWS CloudHSM - AWS CloudHSM

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

Oracle 資料庫透明資料加密 (TDE) 搭配 AWS CloudHSM

透明資料加密 (TDE) 用於加密資料庫檔案。使用 TDE,資料庫軟體會先加密資料,再將其儲存在磁碟上。資料庫資料表資料欄或資料表空間中的資料會使用資料表金鑰或資料表空間金鑰加密。某些版本的 Oracle 資料庫軟體提供 TDE。在 Oracle 中TDE,這些金鑰會使用TDE主加密金鑰進行加密。您可以將TDE主加密金鑰儲存在 AWS CloudHSM 叢集HSMs的 中,以達到更高的安全性。

將 Oracle TDE主加密金鑰存放在 中 AWS CloudHSM。

在此解決方案中,您可以使用安裝在 Amazon EC2執行個體上的 Oracle 資料庫。Oracle Database 與 AWS CloudHSM PKCS #11 的軟體程式庫整合,將TDE主金鑰存放在叢集中的 HSMs中。

重要
  • 建議您在 Amazon EC2執行個體上安裝 Oracle 資料庫。

完成下列步驟,以完成 Oracle 與 的TDE整合 AWS CloudHSM。

步驟 1. 設定先決條件

若要完成 Oracle 與 的TDE整合 AWS CloudHSM,您需要下列項目:

  • 具有至少一個 的作用中 AWS CloudHSM 叢集HSM。

  • 執行 Amazon Linux 作業系統的 Amazon EC2執行個體,已安裝下列軟體:

    • AWS CloudHSM 用戶端和命令列工具。

    • #PKCS11 AWS CloudHSM 的軟體程式庫。

    • Oracle Database. AWS CloudHSM support Oracle TDE整合。用戶端 SDK 5.6 和更新版本支援 Oracle TDE for Oracle Database 19c。用戶端 SDK 3 支援 Oracle TDE for Oracle 資料庫 11g 和 12c 版。

  • 密碼編譯使用者 (CU),可擁有和管理叢集HSMs中 的主TDE加密金鑰。

完成以下步驟來設定所有先決條件。

設定 Oracle 與 TDE整合的先決條件 AWS CloudHSM
  1. 完成「開始使用」中的步驟。執行此操作後,您將有一個具有 的作用中叢集HSM。您也會有一個執行 Amazon Linux 作業系統的 Amazon EC2執行個體。 AWS CloudHSM 用戶端和命令列工具也會進行安裝和設定。

  2. (選用) HSMs將更多新增至叢集。如需詳細資訊,請參閱將 HSM新增至 AWS CloudHSM 叢集

  3. 連線至您的 Amazon EC2用戶端執行個體並執行下列動作:

    1. 安裝 PKCS #11 AWS CloudHSM 的軟體程式庫

    2. 安裝 Oracle 資料庫。如需詳細資訊,請參閱 Oracle 資料庫文件。用戶端 SDK 5.6 和更新版本支援 Oracle TDE for Oracle Database 19c。用戶端 SDK 3 支援 Oracle TDE for Oracle 資料庫 11g 和 12c 版。

    3. 使用 cloudhsm_mgmt_util 命令列工具來在您的叢集上建立加密使用者 (CU)。如需建立 CU 的詳細資訊,請參閱如何使用 和 管理HSM使用者CMUHSM 使用者

步驟 3:產生 Oracle TDE主加密金鑰

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

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

    sqlplus / as sysdba
    注意

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

  2. 執行建立主加密金鑰的SQL陳述式,如下列範例所示。請使用與 Oracle 資料庫版本對應的陳述式。Replace (取代) <CU user name> 密碼編譯使用者 (CU) 的使用者名稱。Replace (取代) <password> 使用 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;

    如果錢包未開啟,請使用下列其中一個命令來開啟。Replace (取代) <CU user name> 密碼編譯使用者 (CU) 的名稱。Replace (取代) <password> 使用 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>";