Oracle Recovery Kitは次の要件を満たす範囲でOracle databaseが提供するTDE(透過的データ暗号化機能)をサポートします。
- Oracle本体はローカルディスクにインストールすること
- 暗号化データ領域はファイルシステムリソースで保護される共有ディスクに配置すること
- 両ノードで複製した同一のソフトウェアキーストアを使用し、それぞれのローカルディスクに配置すること
- 両ノードのソフトウェアキーストアはそれぞれでローカル自動ログインキーストアを設定すること
以下の手順と実行例を参照してください。なお、本稿で使用するOracle CDBのSIDは「ORCLCDB」、PDBのSIDは「ORCLPDB1」とします。
- Oracleリソース階層が正常に動作する設定を行ってください。
- Oracleリソース階層を プライマリーノード でISPにしてください。
- プライマリーノード で以下の設定を行ってください。
- ソフトウェアキーストア格納ディレクトリーをローカルディスク(/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;
- ソフトウェアキーストア格納ディレクトリーをローカルディスク(/opt/wallet)に作成し、オーナーとグループをoracle:oinstallに変更します。
- Oracleリソース階層を セカンダリーノード でISPにしてください。
- プライマリーノード の/opt/wallet/tde/ewallet.p12を セカンダリーノード にコピーし、オーナーとグループをoracle:oinstallに変更してください。
- セカンダリーノード で以下の設定を行ってください。
- ソフトウェアキーストアの保管場所を指定し、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を再起動します。
上記の設定を行うことで、オペレーティング・システムが、ファイルに格納されたデータベース・データに権限なくアクセスしようとすることを阻止しつつ、Oracleリソース階層がISPになったサーバーにおいては、ソフトウェアキーストアが自動的にオープンされるため、アプリケーションがSQLを使用する場合にはパスワード入力することなくデータにアクセス可能となります。



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