在多重主要伺服器或抄寫設定上,將 IBM® Security Guardium® Key Lifecycle Manager 配置為 Oracle TDE 的外部安全模組之後,請啟用 Oracle Wallet 的自動登入。
關於此作業
在多重主要或抄寫設定中, Oracle TDE 會先連接至 TDE 主要金鑰的主要主要伺服器。 如果主要伺服器無法使用, Oracle TDE 會連接至下一個可用的主要伺服器或複製伺服器。當 Oracle TDE 切換至另一個主要或複製伺服器時, Oracle Wallet 會因為資料庫重新啟動而關閉。 若要取得 TDE 主要金鑰,必須開啟 Oracle Wallet。 為了避免每次重新啟動資料庫時都需要開啟錢包,請配置自動登入。
程序
- 為每個資料庫建立目錄,並允許 Oracle 使用者存取此目錄。
mkdir -p SOFTWARE_WALLET_LOCATION
chown -R oracle:oinstall SOFTWARE_WALLET_LOCATION
- 在
spfile中啟動新的 sql 階段作業並重設 WALLET_ROOT 參數。
sqlplus / as sysdba
ALTER SYSTEM SET WALLET_ROOT="<software_wallet_location>" scope=spfile;
重新啟動資料庫。
SHUTDOWN IMMEDIATE;
STARTUP;
- 重設
TDE_CONFIGURATION 參數。
ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE" scope=spfile;
附註: 在 Oracle 19c中,依預設會在
pfile 或
spfile 檔案的
WALLET_ROOT 環境變數中設定的位置建立金鑰儲存庫。
重新啟動資料庫。
SHUTDOWN IMMEDIATE;
STARTUP;
- 在
spfile 檔案中提供的位置建立軟體金鑰儲存庫。
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY "<software_keystore_password>";
- 開啟軟體金鑰儲存庫。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "<software_keystore_password>";
- 將密鑰新增至軟體金鑰儲存庫。 此密鑰是硬體安全模組的密碼,用戶端是
HSM_PASSWORD。 HSM_PASSWORD 是 Oracle 定義的用戶端名稱,以軟體金鑰儲存庫中的密碼代表 HSM 密碼。
ADMINISTER KEY MANAGEMENT ADD SECRET '<cm_user:cm_user_password>' FOR CLIENT 'HSM_PASSWORD' IDENTIFIED BY "<software_keystore_password>" WITH BACKUP;
- 啟用自動登入。
ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE IDENTIFIED BY "<software_keystore_password>";
- 重設
TDE_CONFIGURATION 參數。
ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=HSM|FILE" scope=spfile;
重新啟動資料庫。
SHUTDOWN IMMEDIATE;
STARTUP;
- 檢查 Oracle Wallet 狀態。
SELECT WRL_TYPE, WRL_PARAMETER, WALLET_TYPE, STATUS FROM V$ENCRYPTION_WALLET;
輸出:
| WRL_TYPE |
WRL_PARAMETER |
WALLET_TYPE |
STATUS |
FILE |
|
AUTOLOGIN |
OPEN_NO_MASTER_KEY |
HSM |
|
HSM |
OPEN |
- 執行下列指令來配置活動訊號功能,以定期監視與 IBM Security Guardium Key Lifecycle Manager 伺服器的連線:
ALTER SYSTEM SET "_heartbeat_config"=AUTOCONNECT SCOPE=SPFILE;
ALTER SYSTEM SET EVENT='28420 trace name context forever, level 10:28421 trace name context forever, level 3' COMMENT='HSM heartbeat timeout and reconnect attempt' SCOPE=SPFILE;
已設定下列事件:
Event 28420: 在錢包關閉之前可能失敗的 HSM 活動訊號數。 HSM 活動訊號每 3 秒發動一次,這表示非常短的網路中斷可能會導致錢包關閉。
Event 28421: 一旦錢包關閉,它會導致 HSM 活動訊號嘗試重新連接 HSM ,如果成功,則會重新開啟錢包。
- 從直欄加密表格或表格空間加密表格存取資料。
connect ORACLE_DATABASE_USER/ORACLE_DATABASE_USER_PASSWORD;
SELECT * FROM EMPLOYEES;
SELECT * FROM CUSTOMERS;