Oracle Recovery Kitは次の要件を満たす範囲でOracle databaseが提供するTDE(透過的データ暗号化機能)をサポートします。
- Oracle本体はローカルドライブ(本稿ではC:ドライブ)にインストールすること
- 暗号化データ領域はVolumeリソースで保護されるドライブ (共有ディスクまたはミラーディスク、本稿ではD:ドライブ) に配置すること
- 両サーバーで複製した同一のソフトウェアキーストアを使用し、それぞれのローカルドライブ(本稿ではC:ドライブ) に配置すること
- 両サーバーのソフトウェアキーストアはそれぞれでローカル自動ログインキーストアを設定すること
以下の手順と実行例を参照してください。なお、本稿で使用するOracle DBのSIDは「orcl」とします。
- Oracleリソース階層が正常に動作する設定を行ってください。
- Oracleリソース階層を プライマリーサーバー でISPにしてください。
- プライマリーサーバー で以下の設定を行ってください。
- ソフトウェアキーストア格納フォルダーをローカルドライブに作成します。
> mkdir C:\wallet\tde
- ソフトウェアキーストアの保管場所を指定し、Oracleを再起動します。
> sqlplus / as sysdba SQL> define WALLET_DIR=C:\wallet SQL> ALTER SYSTEM SET WALLET_ROOT = '&WALLET_DIR' SCOPE=SPFILE SID='*'; SQL> startup force SQL> quit
- TDEの設定を行い、ソフトウェアキーストアを作成します。<keystore_password>には任意のパスワードを指定してください。後の工程でも同じパスワードを使用します。
> sqlplus / as sysdba SQL> ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE"; SQL> define KS_PWD=<keystore_password> SQL> ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY "&KS_PWD";
- ソフトウェアキーストアをオープンします。
SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "&KS_PWD";
- ソフトウェアキーストア内にTDEマスター暗号化鍵を作成します。
SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "&KS_PWD" WITH BACKUP USING 'key_backup';
- ソフトウェアキーストアを元にローカル自動ログインキーストアを作成します。
SQL> ADMINISTER KEY MANAGEMENT CREATE LOCAL AUTO_LOGIN KEYSTORE FROM KEYSTORE IDENTIFIED BY "&KS_PWD";
- 暗号化表領域、ユーザー、表を作成します。
SQL> define path=D:\oradata\ORCL SQL> CREATE TABLESPACE encrypt_ts DATAFILE '&path/encrypt_df.dbf' SIZE 1M ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT); SQL> CREATE USER test_tde IDENTIFIED BY test_tde DEFAULT TABLESPACE; SQL> GRANT UNLIMITED TABLESPACE TO test_tde; SQL> GRANT CREATE SESSION TO test_tde; SQL> CREATE TABLE test_tde.test_tbl TABLESPACE encrypt_ts AS SELECT * FROM DUAL;
- Oracleを再起動します。
SQL> shutdown immediate SQL> startup SQL> quit
- ソフトウェアキーストア格納フォルダーをローカルドライブに作成します。
- Oracleリソース階層を バックアップサーバー でISPにしてください。
- プライマリーサーバー のC:\wallet\tde\ewallet.p12を バックアップサーバー にコピーしてください。ファイルにアクセスするにはOracle Home Userの権限が必要です。
- バックアップサーバー で以下の設定を行ってください。
- ソフトウェアキーストアの保管場所を指定し、Oracleを再起動します。
> sqlplus / as sysdba SQL> define WALLET_DIR=C:\wallet SQL> ALTER SYSTEM SET WALLET_ROOT = '&WALLET_DIR' SCOPE=SPFILE SID='*'; SQL> startup force SQL> quit
- TDEの設定を行い、ソフトウェアキーストアをオープンします。<keystore_password>には プライマリーサーバー で入力したパスワードと同じパスワードを指定してください。
> sqlplus / as sysdba SQL> ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE"; SQL> define KS_PWD=<keystore_password> SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "&KS_PWD";
- ソフトウェアキーストアを元にローカル自動ログインキーストアを作成します。
SQL> ADMINISTER KEY MANAGEMENT CREATE LOCAL AUTO_LOGIN KEYSTORE FROM KEYSTORE IDENTIFIED BY "&KS_PWD";
- Oracleを再起動します。
SQL> shutdown immediate SQL> startup SQL> quit
- ソフトウェアキーストアの保管場所を指定し、Oracleを再起動します。
上記の設定を行うことで、オペレーティング・システムが、ファイルに格納されたデータベース・データに権限なくアクセスしようとすることを阻止しつつ、Oracleリソース階層がISPになったサーバーにおいては、ソフトウェアキーストアが自動的にオープンされるため、アプリケーションがSQLを使用する場合にはパスワード入力することなくデータにアクセス可能となります。
このトピックへフィードバック