Oracle Recovery Kitは次の要件を満たす範囲でOracle databaseが提供するTDE(透過的データ暗号化機能)をサポートします。

  • Oracle本体はローカルドライブ(本稿ではC:ドライブ)にインストールすること
  • 暗号化データ領域はVolumeリソースで保護されるドライブ (共有ディスクまたはミラーディスク、本稿ではD:ドライブ) に配置すること
  • 両サーバーで複製した同一のソフトウェアキーストアを使用し、それぞれのローカルドライブ(本稿ではC:ドライブ) に配置すること
  • 両サーバーのソフトウェアキーストアはそれぞれでローカル自動ログインキーストアを設定すること

以下の手順と実行例を参照してください。なお、本稿で使用するOracle DBのSIDは「orcl」とします。

  1. Oracleリソース階層が正常に動作する設定を行ってください。
  2. Oracleリソース階層を プライマリーサーバー でISPにしてください。
  3. プライマリーサーバー で以下の設定を行ってください。
    • ソフトウェアキーストア格納フォルダーをローカルドライブに作成します。
      > 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
      
  1. Oracleリソース階層を バックアップサーバー でISPにしてください。
  2. プライマリーサーバー のC:\wallet\tde\ewallet.p12を バックアップサーバー にコピーしてください。ファイルにアクセスするにはOracle Home Userの権限が必要です。
  3. バックアップサーバー で以下の設定を行ってください。
    • ソフトウェアキーストアの保管場所を指定し、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リソース階層がISPになったサーバーにおいては、ソフトウェアキーストアが自動的にオープンされるため、アプリケーションがSQLを使用する場合にはパスワード入力することなくデータにアクセス可能となります。

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信