18c以降透過的データ暗号化の構成は下記パラメータの使用が推奨されています。
これらのパラメータを使った透過的データ暗号化構成の実装例を記載します。 (細かな説明は記載してません)
※SQLNET.ENCRYPTION_WALLET_LOCATIONパラメータは、Oracle Database 19cでは非推奨となっています。
---検証環境---
Oracle Grid Infrastructure 19.23
Oracle Database 19.23
--- 使用するパラメータ(18cより追加) ---
WALLET_ROOT
TDE_CONFIGURATION
(1) DB接続
$ sqlplus / as sysdba
(2) パラメータ値確認(初期はなにも設定されていない)
SQL> show parameter wallet_root
NAME TYPE VALUE
---------------------------------------------------------------------
wallet_root stringSQL> show parameter tde_configuration
NAME TYPE VALUE
---------------------------------------------------------------------
tde_configuration string
(3) wallet_root設定
SQL> alter system set wallet_root="+DATA/REQDB" scope=spfile;
システムが変更されました。
(4) DB再起動
$ srvctl stop database -db reqdb
$ srvctl start database -db reqdb
(5) tde_configuration設定
SQL> alter system set tde_configuration="KEYSTORE_CONFIGURATION=FILE" scope=both;
システムが変更されました。
(6) パラメータ値確認
SQL> show parameter wallet_root
NAME TYPE VALUE
---------------------------------------------------------------------
wallet_root string +DATA/REQDBSQL> show parameter tde_configuration
NAME TYPE VALUE
---------------------------------------------------------------------
tde_configuration string KEYSTORE_CONFIGURATION=FILE
(7) keystore作成
SQL> administer key management create keystore identified by "[password]";
キーストアが変更されました。
※「+DATA/REQDB/tde」ディレクトリに「ewallet.p12」が作成されます。
(8) keystoreオープン
SQL> administer key management set keystore open identified by "[password]";
キーストアが変更されました。
(9) マスター暗号化キー作成とキーストアのバックアップ
SQL> administer key management set key using TAG "[TAG]" identified by "[password]" with backup;
キーストアが変更されました。
※「+DATA/REQDB/tde」ディレクトリに「ewallet_<日時>.p12」が作成されます。
(10) 自動ログイン・ソフトウェア・キーストアの作成
SQL> administer key management create auto_login keystore from keystore identified by "[password]";
キーストアが変更されました。
※「+DATA/REQDB/tde」ディレクトリに「cwallet.sso」が作成されます。
(11) 確認
※この時点ではWALLET_TYPEは「PASSWORD」となっています。
(12) DB再起動
$ srvctl stop database -db reqdb
$ srvctl start database -db reqdb
(13) 確認
SQL> set line 200
SQL> col WRL_PARAMETER for a20
SQL> select * from GV$ENCRYPTION_WALLET;
※DBを再起動すると自動ログイン・ソフトウェア・キーストアの機能によりWALLET_TYPEは「AUTOLOGIN」となっています。