この記事では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
自動ログインに変更されました。