2 ウォレットベースの透過的データ暗号化のクイックスタート設定ガイド
- TDEウォレットを保持するディレクトリ(TDEウォレット・パスワードから導出されたキーで暗号化されているPKCS#12コンテナ)を作成します。
最後2つのコマンドにより、ディレクトリの所有権を
oracle:oinstall
に変更し、ファイル権限を最小に減らします:この例でのORACLE_SID
は、finance
です:mkdir -pv /etc/ORACLE/KEYSTORES/finance/tde_seps chown -Rv oracle:oinstall /etc/ORACLE chmod -Rv 700 /etc/ORACLE
- 静的システム・パラメータ
WALLET_ROOT
を、先ほど作成したディレクトリに設定します:SYS> alter system set WALLET_ROOT = '/etc/ORACLE/KEYSTORES/$ORACLE_SID' scope = spfile;
encryption
キーワードがcreate tablespace
コマンドの一部でない場合でも、新しい表領域すべてが暗号化されるように、静的TABLESPACE_ENCRYPTION
パラメータをAUTO_ENABLE
に設定します:SYS> alter system set TABLESPACE_ENCRYPTION = AUTO_ENABLE scope = spfile;
- データベースを再起動してこれら2つのパラメータをアクティブ化します。
- 次のパラメータは、デフォルトの暗号化アルゴリズムとしてAES256を定義します(
create keystore
コマンドの前に実行する必要があります。そうでない場合は、デフォルトの暗号化アルゴリズムはAES128のままです)。SYS> alter system set "_TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM" = 'AES256' scope = both;
- 最後のパラメータにより、ファイルベースのTDE設定にTDEウォレットを使用するようにデータベースを構成します:
SYS> alter system set TDE_CONFIGURATION = "KEYSTORE_CONFIGURATION=FILE" scope = both;
- 新しい、パスワードで保護されたローカル自動オープンTDEウォレットを作成します。このローカル自動オープン・ウォレットにより、DBAの介入なしで自動でデータベースを再起動して、パスワードで保護されたTDEウォレットをオープンできるようになります:
(注: このコマンドでは
<WALLET_ROOT>/tde directory
も作成されます)SYSKM> administer key management CREATE KEYSTORE identified by <wallet-pwd>;
SYSKM> administer key management CREATE LOCAL AUTO_LOGIN KEYSTORE from keystore identified by <wallet-pwd>;
- TDEウォレット・パスワードを、シークレットとして、
<WALLET_ROOT>/tde_seps
内の別の(ローカル)自動オープン・ウォレットに追加します。これにより、SQL*PlusコマンドラインからTDEウォレット・パスワードを非表示にし、それをEXTERNAL STORE
に置き換えることができるようになります:SYSKM> administer key management ADD SECRET '<wallet-pwd>' for client 'TDE_WALLET' to LOCAL auto_login keystore '/etc/ORACLE/KEYSTORES/finance/tde_seps';
- ルート・コンテナ・データベースで、最初のTDEマスター・キーを設定します:
SYSKM> administer key management SET KEY force keystore identified by EXTERNAL STORE with backup container = current;
- 統合PDBまたは分離PDBを作成します。
- 統合PDB: PDBで、最初のTDEマスター・キーを設定します:
SYSKM:FINPDB19C> administer key management SET KEY force keystore identified by EXTERNAL STORE with backup;
- 分離PDB
- : 独自の個別キーストアおよびキーストア・パスワードを持つ、分離されたPDBを作成します:
SYSKM:FINPDB19C> administer key management CREATE KEYSTORE identified by <PDB-wallet-pwd>;
次のコマンドは、次の3つのことを行います:- 分離PDBについて、
TDE_CONFIGURATION
をFILE
に設定します。 -
<WALLET_ROOT>
の下に<PDB_GUID>/tde
ディレクトリを作成します。 - PDB用の個別のウォレットを作成し、それ固有のTDEウォレット・パスワード(これはルート・コンテナのDBAが把握していない可能性がある)を使用します。
- 分離PDBについて、
- 分離PDB用に(ローカル)自動オープン・ウォレットを作成します:
SYSKM:FINPDB19C> administer key management CREATE LOCAL AUTO_LOGIN KEYSTORE from keystore identified by <PDB-wallet-pwd>;
- 次のコマンドの出力を実行することで、ディレクトリ
<WALLET_ROOT>/<PDB_GUID>/tde_seps
を作成します:SYS:FINPDB19C> select ' host mkdir -pvm700 '''||v.value||'/'||guid||'/tde_seps'';' from v$pdbs, v$parameter v where v.name like '%root%';
- 次のコマンドの出力を実行することで、TDEウォレット・パスワードをシークレットとして
<WALLET_ROOT>/<PDB_GUID>/tde_seps
内のウォレットに追加します。これにより、SQL*Plusコマンドラインから分離PDBのTDEウォレット・パスワードを非表示にし、それをEXTERNAL STORE
に置き換えることができるようになります:SYS:FINPDB19C> select ' administer key management ADD SECRET ''<PDB-wallet-pwd>'' for client ''TDE_WALLET'' to LOCAL auto_login keystore '''||v.value||'/'||guid||'/tde_seps/'';' from v$pdbs, v$parameter v where v.name like '%root%';
- : 独自の個別キーストアおよびキーストア・パスワードを持つ、分離されたPDBを作成します:
- 統合PDB: PDBで、最初のTDEマスター・キーを設定します:
- そのPDBの表領域を暗号化します:
SYS:FINPDB19C> alter tablespace USERS encryption ONLINE encrypt; SYS:FINPDB19C> alter tablespace SYSTEM encryption ONLINE encrypt; SYS:FINPDB19C> alter tablespace SYSAUX encryption ONLINE encrypt;
- 確認します:
SYS> select c.name as PDB_NAME, t.name as TBS_NAME, e.ENCRYPTIONALG as ALG, e.STATUS from v$tablespace t, v$encrypted_tablespaces e, v$containers c where e.ts# = t.ts# and e.con_id = t.con_id and e.con_id = c.con_id order by e.con_id, t.name;
PDB_NAME TBS_NAME ALG STATUS --------------- -------------------- ------- ------- FINPDB19C SYSAUX AES256 NORMAL FINPDB19C SYSTEM AES256 NORMAL FINPDB19C USERS AES256 NORMAL
親トピック: 透過的データ暗号化の使用