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

  • Oracle本体はローカルディスクにインストールすること
  • 暗号化データ領域はファイルシステムリソースで保護される共有ディスクに配置すること
  • 両ノードで複製した同一のソフトウェアキーストアを使用し、それぞれのローカルディスクに配置すること
  • 両ノードのソフトウェアキーストアはそれぞれでローカル自動ログインキーストアを設定すること

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

  1. Oracleリソース階層が正常に動作する設定を行ってください。
  2. Oracleリソース階層を プライマリーノード でISPにしてください。
  3. プライマリーノード で以下の設定を行ってください。
    • ソフトウェアキーストア格納ディレクトリーをローカルディスク(/opt/wallet)に作成し、オーナーとグループをoracle:oinstallに変更します。
      # mkdir /opt/wallet
      # chown oracle:oinstall /opt/wallet
      
    • ソフトウェアキーストアの保管場所を指定し、Oracleを再起動します。
      # su - oracle
      $ sqlplus / as sysdba
      SQL> alter system set WALLET_ROOT='/opt/wallet' scope=SPFILE sid='*';
      SQL> startup force
      SQL> quit
      
    • TDEの設定を行い、ソフトウェアキーストアを作成します。<keystore_password>には任意のパスワードを指定してください。後の工程でも同じパスワードを使用します。
      $ sqlplus / as sysdba
      SQL> alter system set TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
      SQL> administer key management create keystore identified by "<keystore_password>";
      
    • ソフトウェアキーストアをオープンします。
      SQL> administer key management set keystore open identified by "<keystore_password>";
      
    • ソフトウェアキーストア内にORCLCDB用のTDEマスター暗号化鍵を作成します。(ORCLCDB内に暗号化表領域を作成したい場合)
      SQL> administer key management set key force keystore identified by "<keystore_password>" with backup;
      
    • ソフトウェアキーストア内にORCLPDB1用のTDEマスター暗号化鍵を作成します。(ORCLPDB1内に暗号化表領域を作成したい場合)
      SQL> alter session set container = ORCLPDB1;
      SQL> administer key management set key force keystore identified by "<keystore_password>" with backup;
      
    • ソフトウェアキーストアを元にローカル自動ログインキーストアを作成します。
      SQL> alter session set container = CDB$ROOT;
      SQL> administer key management create local auto_login keystore from keystore identified by "<keystore_password>";
      
    • Oracleを再起動します。
      SQL> shutdown immediate
      SQL> startup
      SQL> quit
      
    • ORCLPDB1内に暗号化表領域、ユーザー、表を作成します。
      SQL> alter session set container=ORCLPDB1;
      SQL> define CONTAINER_PATH=/data/oracle/oradata/ORCLCDB/ORCLPDB1
      SQL> create tablespace TABLESPACE_ENC datafile '&CONTAINER_PATH/tablespace_enc_df.dbf' size 1M encryption using 'AES256' encrypt;
      SQL> create user user_enc identified by "pass_enc" default tablespace TABLESPACE_ENC;
      SQL> grant unlimited tablespace to user_enc;
      SQL> grant create session to user_enc;
      SQL> create table user_enc.TABLE_ENC (id INT PRIMARY KEY, name VARCHAR(32) ) tablespace TABLESPACE_ENC;
      
  4. Oracleリソース階層を セカンダリーノード でISPにしてください。
  5. プライマリーノード の/opt/wallet/tde/ewallet.p12を セカンダリーノード にコピーし、オーナーとグループをoracle:oinstallに変更してください。
  6. セカンダリーノード で以下の設定を行ってください。
    • ソフトウェアキーストアの保管場所を指定し、Oracleを再起動します。
      > sqlplus / as sysdba
      SQL> alter system set wallet_root='/opt/wallet' SCOPE=SPFILE SID='*';
      SQL> startup force
      SQL> quit
      
    • TDEの設定を行い、ソフトウェアキーストアをオープンします。<keystore_password>には プライマリーノード で入力したパスワードと同じパスワードを指定してください。
      > sqlplus / as sysdba
      SQL> alter system set TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
      SQL> administer key management set keystore open identified by "<keystore_password>";
      
    • ソフトウェアキーストアを元にローカル自動ログインキーストアを作成します。
      SQL> administer key management create keystore identified by "<keystore_password>";
      
    • Oracleを再起動します。
      SQL> shutdown immediate
      SQL> startup
      SQL> quit
      

上記の設定を行うことで、オペレーティング・システムが、ファイルに格納されたデータベース・データに権限なくアクセスしようとすることを阻止しつつ、Oracleリソース階層がISPになったサーバーにおいては、ソフトウェアキーストアが自動的にオープンされるため、アプリケーションがSQLを使用する場合にはパスワード入力することなくデータにアクセス可能となります。

フィードバック

お役に立ちましたか?

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

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

送信