1 ウォレットベースの透過的データ暗号化のクイックスタート設定ガイド

  1. 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
  2. 静的システム・パラメータWALLET_ROOTを、先ほど作成したディレクトリに設定します:
    SYS> alter system set WALLET_ROOT = '/etc/ORACLE/KEYSTORES/$ORACLE_SID' scope = spfile;
  3. encryptionキーワードがcreate tablespaceコマンドの一部でない場合でも、新しい表領域すべてが暗号化されるように、静的TABLESPACE_ENCRYPTIONパラメータをAUTO_ENABLEに設定します:
    SYS> alter system set TABLESPACE_ENCRYPTION = AUTO_ENABLE scope = spfile;
  4. データベースを再起動してこれら2つのパラメータをアクティブ化します。
  5. 次のパラメータにより、ファイルベースのTDE設定にTDEウォレットを使用するようにデータベースを構成します:
    SYS> alter system set TDE_CONFIGURATION = "KEYSTORE_CONFIGURATION=FILE" scope = both;
  6. 新しい、パスワードで保護されたローカル自動オープンTDEウォレットを作成します。このローカル自動オープン・ウォレットにより、DBAの介入なしで自動でデータベースを再起動して、パスワードで保護されたTDEウォレットをオープンできるようになります:

    ノート:

    ウォレット・パスワードをなくさないでください。パスワードを記録し、それを、お客様の組織でのIT機密情報に関する標準に従って保護する必要があります。

    (このコマンドでは<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>;
  7. 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';
  8. ルート・コンテナ・データベースで、最初のTDEマスター・キーを設定します:
    SYSKM> administer key management SET KEY force keystore identified by EXTERNAL STORE with backup container = current;
  9. ルートCDB内の表を暗号化します:
    SYS:CDB$ROOT>
    alter tablespace USERS encryption ONLINE encrypt;
    alter tablespace SYSTEM encryption ONLINE encrypt;
    alter tablespace SYSAUX encryption ONLINE encrypt;
  10. PDB用に統合キーストアまたは分離キーストアのどちらかを定義します。
    • 統合キーストア: PDBで、最初のTDEマスター・キーを設定します:
      SYSKM:FINPDB23AI> administer key management SET KEY force keystore identified by EXTERNAL STORE with backup;
    • 分離キーストア
      1. PDBから、固有のキーストア・パスワードがある分離キーストアを作成します:
        SYSKM:FINPDB23AI> administer key management CREATE KEYSTORE identified by <PDB-wallet-pwd>;
        前のコマンドでは、次の3つのことが実行されています:
        1. 分離PDBについて、TDE_CONFIGURATIONFILEに設定します。
        2. <WALLET_ROOT>の下に<PDB_GUID>/tdeディレクトリを作成します。
        3. PDB用の個別のウォレットを作成し、それ固有のTDEウォレット・パスワード(これはルート・コンテナのDBAが把握していない可能性がある)を使用します。
      2. 分離PDB用に(ローカル)自動オープン・ウォレットを作成します:
        SYSKM:FINPDB23AI> administer key management CREATE LOCAL AUTO_LOGIN KEYSTORE from keystore identified by <PDB-wallet-pwd>;
      3. 次のコマンドの出力を実行することで、ディレクトリ<WALLET_ROOT>/<PDB_GUID>/tde_sepsを作成します:
        SYS:FINPDB23AI> select ' host mkdir -pvm700 '''||v.value||'/'||guid||'/tde_seps'';' from v$pdbs, v$parameter v where v.name like '%root%';
      4. 次のコマンドの出力を実行することで、TDEウォレット・パスワードをシークレットとして<WALLET_ROOT>/<PDB_GUID>/tde_seps内のウォレットに追加します。これにより、SQL*Plusコマンドラインから分離PDBのTDEウォレット・パスワードを非表示にし、それをEXTERNAL STOREに置き換えることができるようになります:
        SYS:FINPDB23AI> 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%';
  11. そのPDBの表領域を暗号化します:
    SYS:FINPDB23AI> alter tablespace USERS encryption ONLINE encrypt;
    SYS:FINPDB23AI> alter tablespace SYSTEM encryption ONLINE encrypt;
    SYS:FINPDB23AI> alter tablespace SYSAUX encryption ONLINE encrypt;
  12. 確認します:
    SYS> select distinct c.name as PDB_NAME, t.name as TBS_NAME, nvl(e.encryptionalg, '----') as 
    ENC_ALG, nvl(e.ciphermode, '---') as "MODE", nvl(e.status, '----') as ENC_STATUS from
    v$containers c, v$tablespace t, v$encrypted_tablespaces e where (c.con_id != 2) and e.ts#(+) =
    t.ts# and c.con_id(+)=t.con_id order by 1, 3 desc, 2;
    PDB_NAME        TBS_NAME             ENC_ALG   MODE  ENC_STATUS
    --------------- -------------------- --------- ----- -------
    CDB$ROOT        SYSAUX               AES256    XTS   NORMAL
    CDB$ROOT        SYSTEM               AES256    XTS   NORMAL
    CDB$ROOT        USERS                AES256    XTS   NORMAL
    CDB$ROOT        TEMP                 ----      ---   ----
    CDB$ROOT        UNDOTBS1             ----      ---   ----
    FINPDB23AI      SYSAUX               AES256    XTS   NORMAL
    FINPDB23AI      SYSTEM               AES256    XTS   NORMAL
    FINPDB23AI      USERS                AES256    XTS   NORMAL
    FINPDB23AI      TEMP                 ----      ---   ----
    FINPDB23AI      UNDOTBS1             ----      ---   ----