TDEの自動ログインキーストアの作成

この記事ではTDEの自動ログインキーストアの作成について解説します。

 TDEとは

TDE(Transparent Data Encryption)はOracle Databaseで利用できるデータの暗号化機能です。

透過的暗号化とも呼ばれ、アプリケーションや、ユーザが意識することなくDB内のデータを暗号化することができます。

暗号化によってディスクのデータが不正に取得された場合でもデータの読み取りが行えないようになります。

暗号化は表領域全体や、特定のテーブルのカラムのみにも行うことができます。

TDEではデータを暗号化する「データ暗号化キー」、データ暗号化キーを暗号化する「マスター暗号化キー」によってデータを暗号化しています。

そしてこれらの鍵を格納しておくのがキーストアとなります。


 キーストアの作成

キーストアを格納するためのディレクトリを作成します。

$ mkdir /opt/oracle/product/23ai/dbhomeFree/wallet

初期化パラメータ「wallet_root」に作成したキーストアの配置場所を設定します。

SQL> alter system set wallet_root="/opt/oracle/product/23ai/dbhomeFree/wallet" scope=spfile;
System altered.

変更を反映するためにDBを再起動します。

キーストアの形式を初期化パラメータ「tde_configuration」に設定します。

今回はファイル形式で設定します。

SQL> alter system set tde_configuration="KEYSTORE_CONFIGURATION=FILE" scope=both;
System altered.

キーストアを作成し、オープンします。

SQL> administer key management create keystore identified BY password;
keystore altered.
SQL> administer key management set keystore open identified by password container = all;
keystore altered.

キーストアの情報を確認します。

SQL> select * from v$encryption_wallet;
WRL_TYPE  WRL_PARAMETER 				  STATUS	     WALLET_TYPE WALLET_ORDER KEYSTORE_MODE FULLY_BACKED_UP  CON_ID
-------- ----------------------------------------------- ------------------ ----------- ------------ ------------- --------------- -------
FILE	  /opt/oracle/product/23ai/dbhomeFree/wallet/tde/ OPEN_NO_MASTER_KEY PASSWORD	 SINGLE       NONE	    UNDEFINED		  1
FILE							  OPEN_NO_MASTER_KEY PASSWORD	 SINGLE       UNITED	    UNDEFINED		  2
FILE							  OPEN_NO_MASTER_KEY PASSWORD	 SINGLE       UNITED	    UNDEFINED		  3

キーストアにマスターキーを設定します。

SQL> administer key management set key identified by password with backup container = all;
keystore altered.

キーストアの情報を確認します。

SQL> select * from gv$encryption_wallet;
WRL_TYPE  WRL_PARAMETER 				  STATUS	     WALLET_TYPE WALLET_ORDER KEYSTORE_MODE FULLY_BACKED_UP  CON_ID
-------- ----------------------------------------------- ------------------ ----------- ------------ ------------- --------------- -------
FILE	  /opt/oracle/product/23ai/dbhomeFree/wallet/tde/ OPEN		     PASSWORD	 SINGLE       NONE	    NO			  1
FILE							  OPEN		     PASSWORD	 SINGLE       UNITED	    NO			  2
FILE							  OPEN		     PASSWORD	 SINGLE       UNITED	    NO			  3

キーストアを自動ログインに設定し、DB起動時に自動的にキーストアがオープンするように設定します。

SQL> administer key management create auto_login keystore from keystore identified by password;
keystore altered.

DB再起動を行い、キーストアの設定を確認します。

SQL> select * from gv$encryption_wallet;
WRL_TYPE  WRL_PARAMETER 				  STATUS	     WALLET_TYPE WALLET_ORDER KEYSTORE_MODE FULLY_BACKED_UP  CON_ID
-------- ----------------------------------------------- ------------------ ----------- ------------ ------------- --------------- -------
FILE	  /opt/oracle/product/23ai/dbhomeFree/wallet/tde/ OPEN		     AUTOLOGIN	 SINGLE       NONE	    NO			  1
FILE							  OPEN		     AUTOLOGIN	 SINGLE       UNITED	    NO			  2
FILE							  OPEN		     AUTOLOGIN	 SINGLE       UNITED	    NO			  3

自動ログインに変更されました。