5 キーストアおよびマスター暗号化キーの管理

キーストアおよびTDEマスター暗号化キーの設定を変更して、Oracle Databaseを格納し、Oracle GoldenGateのシークレットをキーストアに格納できます。

5.1 キーストアの管理

キーストアでは、パスワードの変更、キーストアのバックアップ、キーストアのマージ、キーストアの移動などのメンテナンス作業を実行できます。

5.1.1 キーストア・パスワードを必要とする操作の実行

ADMINISTER KEY MANAGEMENT操作の多くは、TDEウォレットと外部キーストアのどちらについても、キーストア・パスワードへのアクセスが必要になります。

一部のケースでは、操作が成功するまで、キーストアは自動ログインTDEウォレットに依存しています。自動ログインTDEウォレットは、それが構成されているときにキーが要求されると自動的に開きます。一般に、これはTDEウォレットが閉じていたとしても、データベース操作にキーが必要な場合(たとえば、データベースの起動後など)に使用されます。自動ログインTDEウォレットは自動的に開くため、手動操作なしでキーを取得してデータベース操作を実行できます。ただし、キーストア・パスワードを必要とする一部のキーストア操作は、自動ログイン・キーストアが開いているときに実行できません。パスワードを必要とするキーストア操作では、自動ログインTDEウォレットが閉じられて、パスワードで保護されたキーストアが開かれる必要があります。

マルチテナント環境では、キーストアを再度開くと他のPDBに影響が及びます。たとえば、ルートにある自動ログインTDEウォレットは、このルートのCDBのPDBによってアクセスできることが必要です。

TDEウォレットは、ADMINISTER KEY MANAGEMENT文にFORCE KEYSTORE句を含めることで一時的に開くことができます。これは、TDEウォレット・パスワードのローテーション、暗号化キーの作成、使用、キー更新、タグ付け、インポート、エクスポート、移行または逆移行、TDEウォレットのオープンやバックアップ、シークレットTDEウォレットの追加、更新または削除を実行するときに行います。マルチテナント環境では、ルートのTDEウォレットが開いていない場合、FORCE KEYSTOREによってルートのパスワードで保護されたTDEウォレットが開かれます。

5.1.2 ソフトウェア・キーストアのパスワードの変更

Oracle Databaseでは、パスワード保護されたソフトウェア・キーストアのパスワードを簡単に変更できます。

5.1.2.1 パスワード保護されたソフトウェア・キーストアのパスワードの変更について

パスワード保護されたソフトウェア・キーストアのパスワードのみを変更できます。

このパスワードは、サイトのセキュリティ・ポリシーやコンプライアンス・ガイドライン、およびその他のセキュリティ要件に従って、いつでも変更できます。パスワードを変更するコマンドの一部として、WITH BACKUP句を指定する必要があるため、常に現在のキーストアのバックアップが作成されます。パスワードの変更操作中、暗号化や復号化などの透過的データ暗号化操作は正常に動作し続けます。

このパスワードはいつでも変更できます。このパスワードは、安全性が損なわれた可能性があると思われる場合には変更することをお薦めします。

5.1.2.2 パスワード保護されたソフトウェア・キーストアのパスワードの変更

パスワード保護されたソフトウェア・キーストアのパスワードを変更するには、ADMINISTER KEY MANAGEMENT文を使用する必要があります。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。

  2. 次の構文を使用して、パスワード保護されたソフトウェア・キーストアのパスワードを変更します。

    ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD 
    [FORCE KEYSTORE] 
    IDENTIFIED BY
    old_password SET new_password 
    WITH BACKUP [USING 'backup_identifier'];
    

    ここでは次のように指定します。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • old_passwordは、変更する現在のキーストア・パスワードです。

    • new_passwordは、キーストア用に設定する新しいパスワードです。

    • WITH BACKUPは、パスワードを変更する前に、現在のキーストアのバックアップを作成します。この句を含める必要があります。

    • backup_identifierは、作成されるバックアップのオプション識別子文字列を指定します。backup_identifierは、バックアップ・ファイルの名前に追加されます。backup_identifierは、一重引用符(' ')で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(ewallet_time_stamp_emp_key_pwd_change.p12など)。

    次の例は、現在のキーストアをバックアップしてから、キーストアのパスワードを変更します。

    ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD 
    FORCE KEYSTORE
    IDENTIFIED BY
    old_password SET new_password 
    WITH BACKUP USING 'pwd_change';
    
    keystore altered.

5.1.3 Oracle Key Vaultパスワードの変更

Oracle Key Vaultのパスワードを変更するには、データベース・ホスト上のOracle Key Vaultエンドポイント・ソフトウェアの一部であるokvutilを使用します。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。
  2. 外部キーストアを閉じます。
    • 外部キー・マネージャへの接続を閉じます。
      ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE
      IDENTIFIED BY Oracle_Key_Vault_password | EXTERNAL STORE CONTAINER = ALL;

      キーストアがデータベースによって自動オープンされた場合は、次のようにOracle Key Vaultへの接続を閉じます:

      ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE 
      CONTAINER = ALL;
      
  3. Oracle Key Vaultパスワードを変更します。
    WALLET_ROOT/okv/bin/okvutil changepwd -t wallet -l WALLET_ROOT/okv/ssl
  4. 外部キーストアを開きます。
    • たとえば、Oracle Key Vaultの場合:
      ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN FORCE KEYSTORE 
      IDENTIFIED BY new_Oracle_Key_Vault_pwd CONTAINER =ALL;
    • 古いOracle Key VaultパスワードがWALLET_ROOT/tde_sepsディレクトリの[ローカルの]自動オープン・ウォレットに格納されていた場合は、次の構文を使用してパスワードを更新します:
      ADMINISTER KEY MANAGEMENT UPDATE SECRET 'new-Oracle_Key_Vault_password' 
      FOR CLIENT 'Oracle_Key_Vault_password" TO [LOCAL] AUTO_LOGIN KEYSTORE 'WALLET_ROOT/tde_seps;

      その後、次のようにOracle Key Vaultへの接続を開くことができます:

      ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
      [FORCE KEYSTORE] IDENTIFIED BY EXTERNAL STORE CONTAINER = ALL;

5.1.4 キーストア・パスワードのための外部ストアの構成

キーストア・パスワードの外部ストアでは、集中的にアクセスおよび管理できる場所にキーストア・パスワードが格納されます。

5.1.4.1 キーストア・パスワードのための外部ストアの構成について

キーストア・パスワードの外部ストアを使用すると、ADMINISTER KEY MANAGEMENTコマンドラインからキーストア・パスワードを簡単に削除できます。

この機能により、データベース管理者とキー管理者の間の職務の分離が実現されます。これはまた、パスワードを必要とする透過的データ暗号化操作を実行するために自動化ツールを使用する状況において、自動化ツールを実行するスクリプトにハードコード化されたパスワードが含まれているときにも役立ちます。スクリプト内でのパスワードのハードコード化を回避するために、データベース・サーバーの外部ストアにこのパスワードを格納できます。マルチテナント環境では、様々なPDBで外部ストアを使用できます。

マルチテナント環境では、統一モードのすべてのPDBで、ルート・コンテナの非表示パスワードが使用されます。分離モードでは、各PDBが独自の外部ストアで独自のキーストア・パスワードを持つことができます。

5.1.4.2 WALLET_ROOTを使用した外部キーストア・パスワード・ストアの構成

WALLET_ROOTパラメータを使用してTDEを構成すると、外部キーストア・パスワード・ストアはWALLET_ROOT/tde_sepsディレクトリで自動検出されます。

  • 次の構文を使用して、ADMINISTER KEY MANAGEMENT文を実行します。
    ADMINISTER KEY MANAGEMENT ADD SECRET 'keystore_password' 
    FOR CLIENT 'TDE_WALLET|OKV_PASSWORD' 
    TO [LOCAL] AUTO_LOGIN KEYSTORE 'WALLET_ROOT/tde_seps';
5.1.4.3 構成後のEXTERNAL STORE句を使用する状況

キーストア・のパスワードに外部ストアを構成した後、ADMINISTER KEY MANAGEMENT文でEXTERNAL_STORE句を使用できます。

キーストアのオープン、クローズ、バックアップ、シークレット・キーストアの追加、更新または削除、暗号化キーの作成、使用、キー更新、タグ付け、インポート、エクスポートに対してADMINISTER KEY MANAGEMENT文でEXTERNAL STORE句を使用する必要があります。

たとえば:

ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
IDENTIFIED BY EXTERNAL STORE;

ADMINISTER KEY MANAGEMENT UPDATE CLIENT SECRET文またはADMINISTER KEY MANAGEMENT DELETE CLIENT SECRET文を使用して、外部キーストア・パスワードを変更または削除できます。

5.1.5 パスワード保護されたソフトウェア・キーストアのバックアップ

パスワード保護されたソフトウェア・キーストアをバックアップする際、バックアップのタイプを説明するバックアップの識別子文字列を作成できます。

5.1.5.1 パスワードで保護されたTDEウォレットのバックアップについて

パスワードで保護されたTDEウォレットは、サイトのセキュリティ・ポリシーや要件に従ってバックアップする必要があります。

TDEウォレットのバックアップには、元のTDEウォレットに含まれていたすべてのキーが含まれています。Oracle Databaseでは、バックアップTDEウォレットに作成時のタイムスタンプ(UTC)による接頭辞が付けられます。識別子文字列を指定すると、その文字列がタイムスタンプとTDEウォレット名の間に挿入されます。

バックアップ操作が完了すると、元のTDEウォレットのキーには「backed up」のマークが付きます。キーのステータスは、V$ENCRYPTION_WALLETデータ・ディクショナリ・ビューを問い合せて確認できます。

自動ログインTDEウォレットやローカル自動ログインTDEウォレットはバックアップできません。ADMINISTER KEY MANAGEMENT文での操作を使用して、新しいキーを直接それらに追加することはできません。これらのTDEウォレット内の情報は読取り専用であり、バックアップは必要ありません。

ウォレットを変更する(ウォレット・パスワードの変更やマスター暗号化キーの設定など)ADMINISTER KEY MANAGEMENT文には、WITH BACKUP句を含める必要があります。

5.1.5.2 バックアップTDEウォレットのバックアップ識別子文字列の作成

ソフトウェア・パスワード・ウォレットのバックアップ・ファイル名は、パスワードで保護されたTDEウォレットの名前から導出されます。

  • バックアップTDEウォレットのバックアップ識別子文字列を作成するには、次の構文でADMINISTER KEY MANAGEMENT SQL文とともにBACKUP KEYSTORE句を使用します:
    ewallet_creation-time-stamp-in-UTC_user-defined-string.p12
    

    バックアップ識別子(user_defined_string)を作成する場合は、オペレーティング・システムのファイル命名規則に従います。たとえば、UNIXシステムでは、この設定にスペースが入らないようにします。

    次の例は、ユーザー識別文字列を使用するバックアップTDEウォレットの作成と、その結果として生成されるTDEウォレットのファイル・システムでの表示形式を示しています。この例には、自動ログインTDEウォレットが使用中の場合やTDEウォレットが閉じられている場合に備えて、FORCE KEYSTORE句が含まれています。

    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE USING 'Monthly-backup-2013-04' 
    FORCE KEYSTORE 
    IDENTIFIED BY TDE_wallet_password;
    

    このバージョンは、パスワードが外部ストアに格納されているシナリオ用です。

    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE USING 'Monthly-backup-2013-04' 
    FORCE KEYSTORE 
    IDENTIFIED BY EXTERNAL STORE;

    結果として生成されるTDEウォレット・ファイル:

    ewallet_2013041513244657_Monthly-backup-2013-04.p12
5.1.5.3 パスワードで保護されたTDEウォレットのバックアップ

ADMINISTER KEY MANAGEMENT文のBACKUP KEYSTORE句は、パスワードで保護されたTDEウォレットをバックアップします。

  • 次の構文を使用して、キーストアをバックアップします。:
    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE 
    [USING 'backup_identifier'] 
    FORCE KEYSTORE] 
    IDENTIFIED BY [EXTERNAL STORE | TDE_wallet_password] 
    [TO 'keystore_location'];
    

    ここでは次のように指定します。

    • USING backup_identifierは、バックアップを識別するために指定できるオプション文字列です。この識別子は、一重引用符(' ')で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(ewallet_time-stamp_emp_key_backup.p12など)。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • TDE_wallet_passwordは、キーストアのパスワードです。

    • keystore_locationは、バックアップ・キーストアが格納されるパスです。keystore_locationを指定しない場合、バックアップは元のキーストアと同じディレクトリに作成されます。この場所は、一重引用符(' ')で囲みます。

    次の例では、TDEウォレットを別の場所にバックアップします。

    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE 
    USING 'hr.emp_wallet' 
    FORCE KEYSTORE 
    IDENTIFIED BY TDE_wallet_password
    TO '/etc/ORACLE/KEYSTORE/DB1/';
    
    keystore altered.
    

    次のバージョンでは、TDEウォレットのパスワードが外部にあるため、EXTERNAL STORE句を使用しています。このTDEウォレットは、現在のTDEウォレットと同じディレクトリにバックアップされます。

    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE 
    USING 'hr.emp_wallet' 
    FORCE KEYSTORE 
    IDENTIFIED BY EXTERNAL STORE;

    この文を実行すると、ewallet_identifier.p12ファイル(たとえば、ewallet_time-stamp_hr.emp_wallet.p12)がキーストアの場所に作成されます。

5.1.6 V$ENCRYPTION_WALLETビューによるバックアップ操作の解釈方法

V$ENCRYPTION_WALLETビューのBACKUP列では、キーストアのコピーがどのように作成されたかが示されます。

この列では、ADMINISTER KEY MANAGEMENT文またはADMINISTER KEY MANAGEMENT BACKUP KEYSTORE文のWITH BACKUP句でキーストアのコピーが作成されているかどうかが示されます。

キーまたはシークレットを変更した場合、コピーが作成されてからキー自体が変更されるため、行う変更は前にバックアップされたコピーには反映されません。前のキーストアには変更のコピーが存在しないため、以前にBACKUPYESに設定されていた場合でも、BACKUP列はNOに設定されます。したがって、BACKUP列がYESの場合、カスタム属性タグの追加といったバックアップを必要とする操作を実行すると、BACKUP列の値はNOに変更されます。

5.1.7 外部キーストアのバックアップ

Oracle Databaseを使用して外部キーストアをバックアップすることはできません。

Oracle Key VaultへのTDEウォレットのアップロードは、ウォレットをバックアップし、必要が生じた場合にすぐに利用できるようにする方法の1つです(たとえば、ウォレットを誤って削除した場合やファイルが破損した場合)。データベースがOracle Key Vaultによるオンライン・キー管理に移行されていない場合、ウォレットがOracle Key Vaultにアップロードされている場合でも、TDEウォレットに依存し続けます。

Oracle Key Vaultのokvutil uploadおよびokvutil downloadコマンドを使用して、Oracle Key Vaultとの間でTDEウォレットをアップロードおよびダウンロードできます。

たとえば、TDEウォレットをOracle Key Vaultにアップロードする方法は次のとおりです。

$ okvutil upload -l "/etc/oracle/wallets" -t wallet -g "HRWallet"
Enter wallet password (<enter> for auto-login): password
Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password

次の例は、Oracle Key VaultからTDEウォレットをダウンロードする方法を示しています。

$ okvutil download -l "/etc/oracle/wallets/orcl/" -t WALLET -g HRWallet
Enter new wallet password(<enter> for auto-login): Oracle_wallet_password
Confirm new wallet password: Oracle_wallet_password
Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password

5.1.8 TDEウォレットのマージ

TDEウォレットは、様々な方法でマージできます。

5.1.8.1 TDEウォレットのマージについて

TDEウォレットは任意の組合せでマージできますが、マージ後のキーストアはパスワードで保護される必要があります。構成要素のウォレットとは異なるパスワードを指定できます。

マージしたTDEウォレットを使用するには、マージ前にいずれかの構成要素のTDEウォレットがすでに開いていた場合でも、マージしたTDEウォレットの作成後に明示的に開く必要があります。

2つのソースTDEウォレットにある共通のキーが、マージしたTDEウォレットに追加されるか上書きされるかは、ADMINISTER KEY MANAGEMENTマージ文の記述方法によって異なります。たとえば、TDEウォレット1とTDEウォレット2をマージしてTDEウォレット3を作成する場合は、TDEウォレット1のキーがTDEウォレット3に追加されます。TDEウォレット1をTDEウォレット2にマージする場合は、TDEウォレット2の共通キーが上書きされることはありません。

ADMINISTER KEY MANAGEMENTマージ文は、使用中の構成済TDEウォレットには影響しません。ただし、マージしたTDEウォレットは、新しい構成済データベースTDEウォレットとして必要に応じて使用できます。WALLET_ROOTパラメータで構成された場所にあるデータベース用TDEウォレットとして新しく作成したTDEウォレットを使用する場合は、TDEウォレットを再度開く必要があることに注意してください。

5.1.8.2 1つのTDEウォレットの既存のTDEウォレットへのマージ

ADMINISTER KEY MANAGEMENT文をMERGE KEYSTORE句とともに使用すると、1つのTDEウォレットを既存の別のTDEウォレットにマージできます。

  • このタイプのマージを実行するには、次のSQL文を使用します。
    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'TDE_wallet1_location' 
    [IDENTIFIED BY TDE_wallet1_password] 
    INTO EXISTING KEYSTORE 'TDE_wallet2_location' 
    IDENTIFIED BY TDE_wallet2_password 
    [WITH BACKUP [USING 'backup_identifier]];
    

    ここでは次のように指定します。

    • TDE_wallet1_locationは、1つ目のTDEウォレットのディレクトリの場所です。マージ後も変更されないまま残されます。このパスは、一重引用符(' ')で囲みます。

    • IDENTIFIED BY句は、最初のTDEウォレットがパスワードで保護されたTDEウォレットの場合に必要です。TDE_wallet1_passwordは、最初のTDEウォレットのパスワードです。

    • TDE_wallet2_locationは、2番目のTDEウォレットのディレクトリの場所です。このウォレットに最初のTDEウォレットがマージされます。このパスは、一重引用符(' ')で囲みます。

    • TDE_wallet2_passwordは、2つ目のキーストアのパスワードです。

    • WITH BACKUPでは、TDEウォレットのバックアップを作成します。オプションでUSING句を使用し、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は、名前付きTDEウォレットに付加されます(たとえば、emp_key_backupがバックアップ識別子になっているewallet_time_stamp_emp_key_backup.p12)。オペレーティング・システムで使用されているファイル命名規則に従ってください。

マージ操作後の結果として生成されるTDEウォレットは、常にパスワードで保護されたTDEウォレットになります。
5.1.8.3 2つのTDEウォレットの3番目の新しいTDEウォレットへのマージ

2つのTDEウォレットを3番目の新しいTDEウォレットにマージできます。既存の2つのTDEウォレットは変更されません。

  • 次の構文を使用して、TDEウォレットをマージします:
    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'TDE_wallet1_location' 
    [IDENTIFIED BY TDE_wallet1_password] 
    AND KEYSTORE 'TDE_wallet2_location' 
    [IDENTIFIED BY TDE_wallet2_password] 
    INTO NEW KEYSTORE 'TDE_wallet3_location' 
    IDENTIFIED BY TDE_wallet3_password;
    

    ここでは次のように指定します。

    • TDE_wallet1_locationは、1つ目のTDEウォレットのディレクトリの場所です。マージ後も変更されないまま残されます。このパスは、一重引用符(' ')で囲みます。

    • IDENTIFIED BY句は、最初のTDEウォレットがパスワードで保護されたTDEウォレットの場合に必要です。TDE_wallet1_passwordは、最初のTDEウォレットの現行パスワードです。

    • TDE_wallet2_locationは、2番目のTDEウォレットのディレクトリの場所です。このパスは、一重引用符(' ')で囲みます。

    • IDENTIFIED BY句は、2番目のTDEウォレットがパスワードで保護されたTDEウォレットの場合に必要です。TDE_wallet2_passwordは、2番目のTDEウォレットの現行パスワードです。

    • TDE_wallet3_locationは、新しいマージ済TDEウォレットのディレクトリの場所を指定します。このパスは、一重引用符(' ')で囲みます。その場所に既存のTDEウォレットがすでに存在する場合は、エラーとともにコマンドが終了します。

    • TDE_wallet3_passwordは、マージ済TDEウォレットの新しいパスワードです。

    次の例は、自動ログインTDEウォレットとパスワードで保護されたTDEウォレットをマージして、新しい場所にマージ済のパスワードで保護されたTDEウォレットを作成します:

    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1' 
    AND KEYSTORE '/etc/ORACLE/KEYSTORE/DB2' 
    IDENTIFIED BY existing_password_for_keystore_2 
    INTO NEW KEYSTORE '/etc/ORACLE/KEYSTORE/DB3' 
    IDENTIFIED BY new_password_for_keystore_3;
    
    keystore altered.
5.1.8.4 自動ログインTDEウォレットの既存のパスワードで保護されたTDEウォレットへのマージ

自動ログインTDEウォレットを既存のパスワードで保護されたTDEウォレットにマージできます。

  • ADMINISTER KEY MANAGEMENT MERGE KEYSTORE SQL文を使用して、自動ログインTDEウォレットを既存のパスワードで保護されたTDEウォレットにマージします。
    次の例は、自動ログインTDEウォレットをパスワードで保護されたTDEウォレットにマージする方法を示しています。マージ済TDEウォレットの作成前に、2番目のTDEウォレットのバックアップも作成します。
    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1' 
    INTO EXISTING KEYSTORE '/etc/ORACLE/KEYSTORE/DB2' 
    IDENTIFIED BY keystore_password WITH BACKUP;
    

    ここでは次のように指定します。

    • MERGE KEYSTOREでは、自動ログインTDEウォレットを指定する必要があります。

    • EXISTING KEYSTOREは、パスワードTDEウォレットを表します。

5.1.8.5 TDEウォレット・マージ操作の取消し

TDEウォレット・マージ操作は直接取り消すことができません。

TDEウォレットを既存のTDEウォレットにマージする(新しいウォレットを作成しない)場合は、この既存のTDEウォレットのバックアップを作成するために、ADMINISTER KEY MANAGEMENT文にWITH BACKUP句を含める必要があります。後でマージの取消しが必要になった場合は、マージ済のTDEウォレットをバックアップしたものと置き換えることができます。たとえば、TDEウォレットAをTDEウォレットBにマージするとします。WITH BACKUP句を使用することで、マージ操作の開始前にTDEウォレットBのバックアップを作成します。(元のTDEウォレットAは変更されません)。マージ操作を取り消すには、TDEウォレットBから作成したバックアップに戻します。
  • ADMINISTER KEY MANAGEMENT MERGE KEYSTORE SQL文を使用して、マージ操作を実行します。
    • たとえば、既存のTDEウォレットへのマージ操作を実行する場合、次のようにします:
      ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1' 
      INTO EXISTING KEYSTORE '/etc/ORACLE/KEYSTORE/DB2' 
      IDENTIFIED BY password WITH BACKUP USING "merge1";
      

      新しいTDEウォレットをバックアップTDEウォレットに置き換えます。この例では、そのバックアップにewallet_time-stamp_merge1.p12という名前が付けられています。

    • 自動ログインTDEウォレットをパスワードベースのTDEウォレットにマージするには、ADMINISTER KEY MANAGEMENT MERGE KEYSTORE SQL文を使用します。

5.1.9 新しい場所へのTDEウォレットの移動

TDEウォレットは、WALLET_ROOTパラメータを更新した後で新しい場所に移動します。

Oracle Key Vaultを使用している場合は、Key Vaultがマスター暗号化キーを直接管理するTDE直接接続を構成できます。この場合、TDEウォレットを新しいロケーションに手動で移動する必要はありません。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。

  2. TDEウォレットをバックアップします。

    たとえば:

    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE 
    USING 'hr.emp_keystore' 
    FORCE KEYSTORE 
    IDENTIFIED BY 
    TDE_wallet_password TO '/etc/ORACLE/KEYSTORE/DB1/';
  3. TDEウォレットを閉じます。

    次に、TDEウォレットを閉じる方法の例を示します。

    自動ログインTDEウォレットの場合:

    ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE; 
    

    パスワードで保護されたTDEウォレットの場合:

    ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE 
    IDENTIFIED BY TDE_wallet_password;
    

    パスワードが外部に格納されているTDEウォレットの場合:

    ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE 
    IDENTIFIED BY EXTERNAL STORE; 
  4. データベース・セッションを終了します。

    たとえば、SQL*Plusにログインしている場合は、次のようにします。

    EXIT
    
  5. データベース・インスタンスのinit.oraファイルで、TDEウォレットの新しい移動先の場所を指すようにWALLET_ROOTパラメータを更新します。

  6. オペレーティング・システムの移動コマンド(mvなど)を使用して、TDEウォレットとそのすべてのキーを新しいディレクトリの場所に移動します。

5.1.10 自動ストレージ管理からのTDEウォレットの移動

ADMINISTER KEY MANAGEMENT文を使用すると、自動ストレージ管理からTDEウォレットを移動できます。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
  2. 次の構文を使用して、ファイル・システム上のターゲットTDEウォレットを初期化します:
    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE target_TDE_wallet_path 
    IDENTIFIED BY target_TDE_wallet_password;

    ここでは次のように指定します。

    • target_TDE_wallet_pathは、ファイル・システム上のターゲットTDEウォレットへのディレクトリ・パスです。

    • target_TDE_wallet_passwordは、TDEウォレット用に作成するパスワードです。

    たとえば:

    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1/' IDENTIFIED BY "target_TDE_wallet_password"; 
  3. TDEウォレットをASMから今作成したターゲットTDEウォレットにコピーします。

    このステップでは、TDEウォレットをASMからファイル・システムに次のようにマージする必要があります:

    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE source_TDE_wallet_path 
    IDENTIFIED BY source_TDE_wallet_password 
    INTO EXISTING KEYSTORE target_TDE_wallet_path 
    IDENTIFIED BY target_TDE_wallet_password 
    WITH BACKUP USING backupIdentifier;

    ここでは次のように指定します。

    • source_TDE_wallet_pathは、ソースTDEウォレットへのディレクトリ・パスです。

    • source_TDE_wallet_passwordは、ソースTDEウォレットのパスワードです。

    • target_TDE_wallet_pathは、ターゲットTDEウォレットへのパスです。

    • target_TDE_wallet_passwordは、ターゲットTDEウォレットのパスワードです。

    • backupIdentifierは、バックアップ・ファイル名に追加されるバックアップ識別子です。

    たとえば:

    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '+DATAFILE' 
    IDENTIFIED BY "source_TDE_wallet_password" 
    INTO EXISTING KEYSTORE '/etc/ORACLE/KEYSTORE/DB1/' 
    IDENTIFIED BY "target_TDE_wallet_password" 
    WITH BACKUP USING "bkup";

5.1.11 TDEウォレットからOracle Key Vaultへの移行

パスワードで保護されたTDEウォレットとOracle Key Vaultの外部キーストアとの間で移行が可能です。

5.1.11.1 パスワードで保護されたTDEウォレットから外部キーストアへの移行

パスワードで保護されたTDEウォレットから外部キーストアへ移行できます。

5.1.11.1.1 ステップ1: 外部キーストアで開くようにするTDEウォレットの変換

一部のOracleツールは、TDEウォレットを使用してエクスポートまたはバックアップしたデータの暗号化または復号化のために、古いTDEウォレットへのアクセスを必要とします。

これらのツールの例として、Oracle Data PumpやOracle Recovery Managerなどがあります。
  • ADMINISTER KEY MANAGEMENT SQL文を使用して、外部キーストアで開くようにTDEウォレットを変換します。
    • TDEウォレットのパスワードを外部キーストアのパスワードとして設定するには、次の構文を使用します:
      ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD 
      FORCE KEYSTORE
      IDENTIFIED BY TDE_wallet_password 
      SET "external_key_manager_password" WITH BACKUP 
      [USING 'backup_identifier'];
      

      ここでは次のように指定します。

      • TDE_wallet_passwordは、TDEウォレットの作成時に使用したものと同じパスワードです。

      • external_key_manager_passwordは、外部キーストアのパスワードと同一の新しいTDEウォレットのパスワードです。

      • WITH BACKUPでは、TDEウォレットのバックアップを作成します。オプションでUSING句を使用し、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は、名前付きTDEウォレットに付加されます(たとえば、emp_key_backupがバックアップ識別子になっているewallet_time-stamp_emp_key_backup.p12)。オペレーティング・システムで使用されているファイル命名規則に従ってください。

    • TDEウォレットの自動ログインTDEウォレットを作成するには、次の構文を使用します:
      ADMINISTER KEY MANAGEMENT CREATE [LOCAL] AUTO_LOGIN KEYSTORE 
      FROM KEYSTORE 'keystore_location' 
      IDENTIFIED BY TDE_wallet_password;
      

      ここでは次のように指定します。

      • LOCALを使用すると、ローカル自動ログインTDEウォレットを作成できます。そうでない場合、TDEウォレットに別のコンピュータからアクセスできるようにするときには、この句を省略します。

      • TDE_wallet_locationは、ウォレットのTDEウォレット・ディレクトリの場所へのパスです。このパスは、sqlnet.oraファイルで構成されています。

      • TDE_wallet_passwordは、構成済TDEウォレットの新しいパスワードです。

5.1.11.1.2 ステップ2: 外部キーストア・タイプを構成する

ALTER SYSTEM文を使用して、外部キーストア・タイプを構成できます。

外部キーストアで開くTDEウォレットの場合は、TDEウォレットのパスワードを外部キーストアと同じものにする必要がありますが、そのTDEウォレット用に自動ログインTDEウォレットを作成することもできます。
  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
  2. TDE_CONFIGURATION動的初期化パラメータを設定します。

    この例では、データベースをTDEウォレットからOracle Key Vaultに移行します。

    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=OKV|FILE" SCOPE = "BOTH" SID = "*";
5.1.11.1.3 ステップ3: 外部キーストアの移行を実行する

ADMINISTER KEY MANAGEMENT SQL文を使用して、外部キーストアの移行を実行できます。

TDEウォレットから外部キーストアに移行するには、ADMINISTER KEY MANAGEMENT SET KEY SQL文でMIGRATE USING external_key_manager_password句を使用して、TDEウォレット内のTDEマスター暗号化キーで既存のTDE表キーおよび表領域暗号化キーを復号化してから、外部キーストア内の新しく作成したTDEマスター暗号化キーでそれらを再暗号化する必要があります。移行の完了後に、データベースを再起動する必要や外部キーストアを手動で再度開く必要はありません。移行プロセスにより、キーストアのキーがメモリーに自動的にリロードされます。
  • 次の構文を使用して外部キーストアを移行します。
    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    IDENTIFIED BY "external_key_manager_password" 
    MIGRATE USING TDE_wallet_password 
    [WITH BACKUP [USING 'backup_identifier']];
    

    ここでは次のように指定します。

    • external_key_manager_passwordは、外部キーストアの作成時に作成されたパスワードです。この設定は二重引用符(" ")で囲みます。

    • TDE_wallet_passwordは、TDEウォレットの作成時に使用したものか、(外部キーストアで開くようにTDEウォレットを変換したときに)変更したものと同じパスワードです。

    • USINGでは、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は、名前付きキーストア・ファイルに付加されます(たとえば、emp_key_backupがバックアップ識別子になっているewallet_time-stamp_emp_key_backup.p12)。オペレーティング・システムで使用されているファイル命名規則に従ってください。

5.1.11.2 外部キーストアからパスワードベースのTDEウォレットへの移行

外部キーストアをTDEウォレットに移行できます。

5.1.11.2.1 外部キーストアからの再移行について

外部キーストア・ソリューションの使用からTDEウォレットに切り換えるには、TDEウォレットの逆移行を使用できます。

切換えの完了後、以前のバックアップ・ファイルが外部キー・マネージャのTDEマスター暗号化キーに依存する場合に備えて、外部キーストアを保持します。

最初にTDEウォレットから外部キーストアに移行してTDEウォレットを再構成していた場合は、外部キーストア・パスワードと同じパスワードの既存のTDEウォレットがすでに存在しています。逆移行では、このキーストアを、新しいパスワードで新しいTDEウォレットとして動作するように構成します。既存のTDEウォレットが自動ログインTDEウォレットで、この自動ログインTDEウォレット用にパスワードベースのTDEウォレットがある場合は、パスワードベースのTDEウォレットを使用します。パスワードベースのTDEウォレットが使用できない場合は、自動ログインTDEウォレットを新しく作成した空のパスワードベースのTDEウォレットにマージし、その新しく作成したパスワードベースのTDEウォレットを使用します。

既存のTDEウォレットがない場合は、init.oraファイルのWALLET_ROOTパラメータを使用して、TDEウォレットの場所を指定する必要があります。逆移行を実行する場合、キーが失われないように以前のTDEウォレットに移行する必要があります。

5.1.11.2.2 ステップ1: 外部キーストア・タイプを構成する

ALTER SYSTEM文を使用して、外部キーストア・タイプを構成できます。

  1. ALTER SYSTEM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
  2. TDE_CONFIGURATION動的初期化パラメータを設定して、TDEキーストア・タイプを指定します。
    たとえば:
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=OKV" SCOPE = BOTH SID = '*';
    KEYSTORE_CONFIGURATION"OKV"に設定することは、Oracle Key Vaultパスワードを指定してOracle Key Vaultへの接続を開く必要がある構成を示します。自動オープンのOracle Key Vault構成を使用するには、KEYSTORE_CONFIGURATION"OKV|FILE"に設定します。ここで、Oracle Key VaultパスワードはWALLET_ROOT/tdeの自動オープン・キーストアに格納されます。
  3. データベースを再起動するか(CDBルートの場合)、PDBをクローズして再オープンします。

    CDBルートから再起動するには:

    SHUTDOWN IMMEDIATE
    STARTUP

    PDBを閉じてから再度オープンするには:

    ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
    ALTER PLUGGABLE DATABASE pdb_name OPEN;
5.1.11.2.3 ステップ2: 逆移行用にキーストアを構成する

SET ENCRYPTION KEY句とREVERSE MIGRATE句を含むADMINISTER KEY MANAGEMENT文を使用して、キーストアの移行を取り消すことができます。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
  2. 次の構文を使用して、キーストアを逆移行します。
    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    IDENTIFIED BY TDE_wallet_password 
    REVERSE MIGRATE USING "external_key_manager_password" 
    [WITH BACKUP [USING 'backup_identifier']]; 
    

    ここでは次のように指定します。

    • TDE_wallet_passwordは、既存のキーストアまたは新しいキーストアのパスワードです。

    • external_key_manager_passwordは、最初に外部キーストアを作成したときに作成されたパスワードです。前の外部TDEウォレットが新しいキーストアの場合は、逆移行コマンドを発行する前に、そのパスワードがexternal_key_manager_passwordと同じパスワードであることを確認する必要があります。この設定は二重引用符(" ")で囲みます。

    • WITH BACKUPでは、TDEウォレットのバックアップを作成します。オプションでUSING句を含めることで、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は、名前付きキーストア・ファイルに付加されます(たとえば、emp_key_backupがバックアップ識別子になっているewallet_time-stamp_emp_key_backup.p12)。オペレーティング・システムで使用されているファイル命名規則に従ってください。

    たとえば:

    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    IDENTIFIED BY TDE_wallet_password 
    REVERSE MIGRATE USING "external_key_manager_password" WITH BACKUP;
    
    keystore altered.
    
  3. オプションで、キーストア・パスワードを変更します。
    たとえば:
    ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD 
    IDENTIFIED BY old_TDE_wallet_password 
    SET new_TDE_wallet_password 
    WITH BACKUP USING 'before_password_was_changed';
5.1.11.2.4 ステップ3: TDEウォレットで開くようにする外部キーストアの構成

移行が完了すると、移行プロセスによってキーストアのキーがメモリーに自動的にリロードされます。

データベースを再起動したり、TDEウォレットを手動で再度開く必要はありません。

Oracle Data Pump ExportおよびOracle Recovery Manager (Oracle RMAN)で暗号化されたバックアップに以前のキーが使用されている可能性が高いため、逆移行の後でも外部キーストアが必要な場合があります。TDEウォレットでHSMを開くことができるように、外部キーストア資格証明をキーストアに追加する必要があります。

5.1.11.3 移行後のキーストアの順序

移行の実行後、キーストアの順序はプライマリまたはセカンダリのいずれかになります。

V$ENCRYPTION_WALLET動的ビューのWALLET_ORDER列は、TDEウォレットがプライマリ(現在のTDEマスター暗号化キーを保持)またはセカンダリ(前のTDEマスター暗号化キーを保持)のいずれであるかを示します。WRL_TYPE列は、TDEウォレットのロケータのタイプを示します(sqlnet.oraファイルの場合のFILEなど)。2つのTDEウォレットがまとめて構成されておらず、以前に移行を一度も実行したことがない場合、WALLET_ORDER列にはSINGLEが表示されます。

表5-1では、移行後のキーストアの順序の仕組みについて説明します。

表5-1 移行後のキーストアの順序

実行された移行のタイプ WRL_TYPE WALLET_ORDER 説明

TDEウォレットの外部キーストアへの移行

OKV

FILE

PRIMARY

SECONDARY

外部とTDEウォレットの両方が構成されています。TDEマスター暗号化キーは、Oracle Key VaultまたはTDEウォレットのいずれかに格納できます。

TDEマスター暗号化キーは、まずOracle Key Vaultで検索されます。

TDEマスター暗号化キーがプライマリ・キーストア(Oracle Key Vault)にない場合は、TDEウォレット内で検索されます。

すべての新しいTDEマスター暗号化キーは、プライマリ・キーストア(この場合はOracle Key Vault)に作成されます。

Oracle Key Vault (HSM)からTDEウォレットへの逆移行

FILE

HSM

PRIMARY

SECONDARY

外部とTDEウォレットの両方が構成されています。TDEマスター暗号化キーは、外部キーストアまたはTDEウォレットのどちらかに格納できます。

TDEマスター暗号化キーは、まずTDEウォレット内で検索されます。

TDEマスター暗号化キーがプライマリ(つまり、ソフトウェア) TDEウォレットに存在しない場合は、HSMの外部キーストア内で検索されます。

すべての新しいTDEマスター暗号化キーは、プライマリ・キーストア(この場合はTDEウォレット)に作成されます。

5.1.12 キーストアとOracle Key Vault間の移行

Oracle Key Vaultは、Oracle Key Vaultとの間でTDEウォレットと外部キーストアを移行するために使用できます。

これにより、キーストアを集中管理し、必要に応じて、企業内の他のTDE対応データベースとキーストアを共有できます。

Oracle Key Vaultでは、仮想ウォレットと呼ばれるコンテナにキーストアをアップロードし、以前にアップロードしたキーストアの内容から新しい仮想ウォレットを作成できます。たとえば、5つのキーを格納するキーストアを前にアップロードしたとします。これらのキーの3つのみで構成される新しい仮想ウォレットを作成できます。次に、このキーストアを別のTDE対応データベースにダウンロードできます。このプロセスでは、元のキーストアは変更されません。

Oracle Key Vaultでは、Oracleキーストアに加えて、資格証明ファイルやJavaキーストアなどの他のセキュリティ・オブジェクトを企業全体で安全に共有できます。これにより、パスワードを忘れたり、キーストアを間違って削除したことによるキーおよびキーストアの紛失を防ぐことができます。Oracle Key Vaultは、TDE以外の製品、Oracle Real Application Security、Oracle Active Data GuardおよびOracle GoldenGateとともに使用できます。Oracle Key Vaultでは、暗号化されたデータをOracle Data PumpおよびOracle Transportable Tablespacesを使用して簡単に移動できます。

5.1.13 自動ストレージ管理のためのキーストアの構成

TDEウォレットは自動ストレージ管理(ASM)ディスク・グループに格納できます。

5.1.13.1 自動ストレージ管理のためのキーストアの構成について

スタンドアロン・データベースまたはマルチテナント環境の自動ストレージ管理(ASM)用のTDEウォレットを構成できます。WALLET_ROOTの場所は、Oracle Managed File (OMF)システムに準拠させることも、準拠させないこともできます。

WALLET_ROOTおよびTDE_CONFIGURATION初期化パラメータを使用して、ASMシステムにTDEウォレットの場所を構成する必要があります。WALLET_ROOTパラメータを有効にするには、TDE_CONFIGURATIONパラメータに属性KEYSTORE_CONFIGURATION=FILEを設定する必要があります。Oracle Databaseリリース19c以上では、WALLET_ROOTおよびTDE_CONFIGURATIONが優先されるため、sqlnet.oraファイルに設定されているENCRYPTION_WALLET_LOCATIONは非推奨になりました。

この構成を実行するには、+記号と、その後ろにASMディスク・グループ、TDEウォレットを配置するパスを続けた文字列を指定する必要があります。たとえば:

WALLET_ROOT=+disk_group/path

次の点に注意してください。

  • ローカルTDEウォレットはそれが作成されたASMノードでのみ開きます。
  • スタンドアロン環境、マルチテナント環境、あるいはWALLET_ROOTの場所がOracle Managed File (OMF)のディレクトリ命名規則に準拠する環境または準拠しない環境のデータベースのWALLET_ROOTのパスを指定する場合、TDEウォレットの場所のディレクトリ・コンポーネントの作成をデータベースが自動化できるように、このパスが特定の規則に従っている必要があります。それ以外の場合は、WALLET_ROOTの場所にディレクトリを手動で作成する必要があります。
  • 通常のファイル・システムとASMファイル・システムの間でTDEウォレットを移動またはマージする必要がある場合は、TDEウォレットのマージに使用するものと同じTDEウォレットのマージ文を使用できます。
  • ASM環境でTDEウォレットを管理するコマンドを実行するために、ASMCMDユーティリティを使用できます。
5.1.13.2 スタンドアロン・データベースのキーストアがASMの場所を指すように構成する

スタンドアロン・データベース・システムでは、WALLET_ROOTパラメータがASMの場所を指すように設定できます。

  1. TDE_CONFIGURATION動的初期化パラメータのKEYSTORE_CONFIGURATION属性がFILEに設定されていることを確認します。
    たとえば、SQL*Plusでは次のようにします。
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
  2. init.oraファイルで、WALLET_ROOT静的初期化パラメータにASMディスク・グループの場所を設定します。
    オプションで、OMF (大文字)を含めてOracle Managed File (OMF)準拠とし、ディレクトリ作成を自動化できるようにします。
    たとえば:
    WALLET_ROOT=+disk_group_name/OMF
    この設定は、スタンドアロン・データベース・システムのTDEキーストアをWALLET_ROOT/tdeディレクトリ(つまり、+disk_group_name/OMF/tde。このパスのtdeコンポーネントはデータベース・サーバーによって自動的に作成されます)に配置します。
5.1.13.3 キーストアがASMの場所を指すように構成する

WALLET_ROOTを設定して、CDBルートのTDEウォレット(統一モードのすべてのPDBが共有)および分離モードのすべてのPDBのTDEウォレットが配置されているASMディレクトリを指すようにできます。

  1. TDE_CONFIGURATION動的初期化パラメータのKEYSTORE_CONFIGURATION属性がFILEに設定されていることを確認します。
    CDBの場合はCDBルートでTDE_CONFIGURATIONを設定し、分離PDBの場合はPDBで設定します。
    たとえば、SQL*Plusでは次のようにします。
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
  2. WALLET_ROOT静的初期化パラメータにASMディスク・グループの場所、およびその後ろにDB_UNIQUE_NAME初期化パラメータの値を続けた文字列を指定します。
    データベース・サーバーがこの場所に必要なディレクトリの作成を自動化できるようにするために、DB_UNIQUE_NAMEの値を含める必要があります。
    OMFWALLET_ROOTの場所のディレクトリ・コンポーネントとして使用しないでください(スタンドアロン・データベースの構成セクションとは異なります)。
    たとえば:
    WALLET_ROOT=+disk_group_name/db_unique_name

    この設定は、ルートおよび統一モードのすべてのPDBで使用されるTDEウォレットをWALLET_ROOT/db_unique_name/tdeディレクトリ(つまり、+disk_group_name/db_unique_name/tde)に配置します。

    この設定は、分離モードの各PDBで使用されるTDEウォレットをWALLET_ROOT/db_unique_name/pdb_guid/tdeディレクトリ(つまり、+disk_group_name/db_unique_name/pdb_guid/tde)に配置します。

5.1.13.4 WALLET_ROOTの場所がOMFガイドラインに準拠していない場合に、キーストアがASMの場所を指すように構成する

選択したWALLET_ROOTの場所がOracle Managed File (OMF)のガイドラインに準拠していない場合、Oracleデータベースはディレクトリ作成の自動化を実行できません。

この場合、ALTER DISKGROUPコマンドを使用して、WALLET_ROOTの場所に必要なディレクトリを手動で作成する必要があります。WALLET_ROOTパラメータがOMF準拠の値を使用していない場合、ディレクトリ作成を自動化できないため、ALTER DISKGROUP ... ADD DIRECTORY文文を使用して必要なディレクトリを手動で作成する必要があります。
  1. TDE_CONFIGURATION動的初期化パラメータのKEYSTORE_CONFIGURATION属性がFILEに設定されていることを確認します。
    たとえば、SQL*Plusでは次のようにします。
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
  2. init.oraファイルで、WALLET_ROOT静的初期化パラメータにASMディスク・グループの場所を設定します。
    たとえば、disk_group_nameの後の次のパスには、大文字のOMFディレクトリ要素が含まれていません。
    WALLET_ROOT="+disk_group_name/mydir/wallets"
  3. SYSASM管理権限を使用して、データベース・インスタンスに接続します。
    connect / as sysasm
  4. ALTER DISKGROUP文を実行して必要なディレクトリを作成します。
    WALLET_ROOTに選択した場所がOracle Managed Filesのガイドラインに準拠していないため(つまり、OMFコンポーネントが大文字で含まれていないため)、データベース・サーバーがこれらのディレクトリの作成を自動化できないので、このステップを実行する必要があります。

    たとえば:

    ALTER DISKGROUP "disk_group_name" ADD DIRECTORY 
        '+disk_group_name/mydir/wallets/tde';

    マルチテナント環境の場合は、キーストアを格納するPDBのPDB GUIDを次のように検索します。

    SELECT GUID FROM DBA_PDBS WHERE PDB_NAME = 'pdb name';

    次に、次のALTER DISKGROUP文にPDB GUIDを含めて、分離モードのPDBに必要なディレクトリをWALLET_ROOTの場所に作成します。たとえば、GUIDが4756C705E52A8768E053F82DC40A5329であるとします。

    ALTER DISKGROUP "disk_group_name" ADD DIRECTORY
        '+disk_group_name/mydir/wallets/4756C705E52A8768E053F82DC40A5329'
    
    ALTER DISKGROUP "disk_group_name" ADD DIRECTORY
        '+disk_group_name/mydir/wallets/4756C705E52A8768E053F82DC40A5329/tde';
    

5.1.14 キーストアを閉じる

ソフトウェア・キーストアおよび外部キーストアは手動で閉じることができます。

5.1.14.1 キーストアを閉じることについて

キーストアを開いた後は、データベース・インスタンスを終了するまで開いたままになります。

データベース・インスタンスを再起動すると、必要に応じて(TDEマスター暗号化キーにアクセスする必要がある場合)自動ログインTDEウォレットおよびローカル自動ログインTDEウォレットが自動的に開きます。ただし、パスワードベースのTDEウォレットと外部キーストアは、自動的には開きません。使用する前には手動で再度開く必要があります。

TDEウォレットまたは外部キーストアを閉じると、データベースでのすべての暗号化操作と復号化操作が無効になります。そのため、データベース・ユーザーやアプリケーションは、TDEウォレットやキーストアが再度開かれるまで、暗号化データに関係する操作を実行できなくなります。

TDEウォレットやキーストアを閉じた後に再度開くと、その内容がデータベースにリロードされます。したがって、内容が変更されていた場合(移行中など)、データベースには最新の内容が格納されます。

TDEウォレットまたはキーストアが閉じられているかどうかは、V$ENCRYPTION_WALLETビューのSTATUS列を問い合せることによって確認できます。

TDEウォレットまたはキーストアにアクセスできない場合、次のデータ操作は失敗します:

  • 暗号化列からのデータの選択(SELECT)

  • 暗号化列に対するデータの挿入(INSERT)

  • 暗号化列による表の作成(CREATE)

  • 暗号化された表領域の作成(CREATE)

5.1.14.2 TDEウォレットのクローズ

パスワードベースのTDEウォレット、自動ログインTDEウォレットおよびローカル自動ログインTDEウォレットは手動で閉じることができます。

アクセス時に自動的に開かれる自動ログインTDEウォレットの場合、それを新しいロケーションに移動したときには手動で閉じる必要があります。これは、自動ログインTDEウォレットからパスワードベースのTDEウォレットに構成を変更する場合に行います。自動ログインTDEウォレットを移動してから、自動ログインTDEウォレットを閉じます。
  • ADMINISTER KEY MANAGEMENT SQL文を実行します。
    • パスワードベースのTDEウォレットの場合は、次の構文を使用します:

      ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE 
      [IDENTIFIED BY [EXTERNAL STORE | TDE_wallet_password]];
      

      ここでは次のように指定します。

      • IDENTIFIED BYは次のいずれかにできます。

        • EXTERNAL STOREは、TDEウォレット操作の実行に、外部ストアに格納されたTDEウォレット・パスワードを使用します。

        • TDE_wallet_passwordは、TDEウォレットを作成したユーザーのパスワードです。

    • 自動ログインTDEウォレットまたはローカル自動ログインTDEウォレットの場合は、次のSQL文を使用します:

      ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE;
      

      この文ではパスワードを指定する必要はありません。

    TDEウォレットを閉じると、暗号化および復号化のすべての操作が無効化されます。データを暗号化または復号化しようとしたり、暗号化データにアクセスしようとすると、エラーが発生します。
5.1.14.3 外部キーストアを閉じる

外部キーストアを閉じるには、SET KEYSTORE CLOSE句を含むADMINISTER KEY MANAGEMENT文を使用する必要があります。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。
  2. 次の構文を使用して外部キーストアを閉じます。
    ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE 
    IDENTIFIED BY [EXTERNAL STORE | "external_key_manager_password"];
    

    ここでは次のように指定します。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • external_key_manager_passwordは、Oracle Key VaultまたはOCI Vault - Key Managementの外部キーストア・マネージャ用です。このパスワードは二重引用符で囲みます。Oracle Key Vaultの場合は、Oracle Key Vaultクライアントのインストール時に指定したパスワードを入力します。その時点でパスワードが指定されていない場合、ADMINISTER KEY MANAGEMENT文のパスワードはNULLになります。

    たとえば:

    ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE 
    IDENTIFIED BY "external_key_manager_password";

5.1.15 暗号化されたデータのバックアップおよびリカバリ

TDEウォレットの場合、TDEマスター暗号化キーがないと暗号化されたデータにアクセスできません。

TDEマスター暗号化キーはTDEウォレットに格納されるため、TDEウォレットを安全な場所に定期的にバックアップすることをお薦めします。新しいTDEマスター暗号化キーを設定するときや、TDEウォレットへの書込み操作を実行するときには、TDEウォレットのバックアップ・コピーを毎回作成する必要があります。

TDEウォレットは暗号化データと同じ場所にバックアップしないでください。TDEウォレットを個別にバックアップします。これは、開くときにパスワードが要求されない自動ログインTDEウォレットを使用しているときには、特に大切なことです。バックアップ・テープの紛失の際に、悪意のあるユーザーが暗号化データとTDEウォレットの両方を入手できないようにします。

Oracle Recovery Manager (Oracle RMAN)は、データベース・バックアップの一部としてはTDEウォレットをバックアップしません。Oracle Secure Backupなどのメディア・マネージャをOracle RMANと併用している場合は、Oracle Secure Backupによって、自動オープンTDEウォレット(cwallet.ssoファイル)がバックアップ対象から自動的に除外されます。ただし、暗号化TDEウォレット(ewallet.p12ファイル)は自動的に除外されません。次のexcludeデータ・セット文をOracle Secure Backup構成に追加することをお薦めします。

exclude name *.p12

この設定により、暗号化TDEウォレットをバックアップ・セットから除外するようにOracle Secure Backupに指示します。

TDEマスター暗号化キーを格納しているTDEウォレットを失った場合は、TDEウォレットのバックアップを適切な場所にコピーすることで、暗号化データへのアクセスをリストアできます。TDEマスター暗号化キーを最後に再設定した後に、リストアしたTDEウォレットをアーカイブした場合、追加アクションは必要ありません。

リストアしたTDEウォレットに最新のTDEマスター暗号化キーが含まれていない場合、データベースの状態をTDEマスター暗号化キーが再設定された時点までロールバックすることで、その時点までの古いデータをリカバリできます。TDEマスター暗号化キーの再設定後に暗号化列に対して行われた変更はすべて失われます。

5.1.16 キーストアを削除することの危険性

キーストアを削除しないようにすることをお薦めします。

キーストアが一杯になりすぎた場合は、現在アクティブなTDEマスター暗号化キー以外のTDEマスター暗号化キーを新しいキーストアに移動してそのキーストア全体のサイズを小さくできますが、古いキーストアと新しいキーストアをバックアップしておくことが重要です。これは、現在アクティブなキーストアからキーが移動されても他のOracle機能(Oracle Recovery Managerバックアップの操作など)で引き続きそれらが必要となる可能性があるためです。(キーストアの削除によって影響を受ける機能のリストについては、このトピックの最後にある「関連項目」を参照)。

透過的データ暗号化を構成してある場合に、使用中の、まだキーが含まれているキーストアを削除することは特に危険です。キーストアが使用中かどうかは、キーストアを開いた後にV$ENCRYPTION_WALLETビューのSTATUS列を問い合せることで確認できます。以降に行う必要がある手順は、統一モードと分離モードのどちらを使用しているかで異なります。

  • 分離モードでは、V$ENCRYPTION_WALLETSTATUS列がOPEN_NO_MASTER_KEYの場合は、このキーストアは、キーを含んでいないため、アーカイブしておき後で削除したほうが安全です。
  • 統一モードでは、PDBではなくCDB$ROOTからV$ENCRYPTION_WALLETの問合せを実行する必要があります。まだキーが設定されていないPDBでその問合せを実行すると、STATUSOPEN_NO_MASTER_KEYになります。ただし、キーがCDB$ROOTで設定されている場合があり、その場合は誤解を招く可能性があります。ルートでその問合せを実行した後にSTATUSOPEN_NO_MASTER_KEYである場合は、キーストアをアーカイブし後で安全に削除できます。

現在アクティブなTDEキーストアからキーを移動する場合に注意する必要があるというのは、このキーストアに、データベースによって引き続き必要となるキーが含まれている可能性があるためです(そのTDEマスター暗号化キーが更新されたにもかかわらず)。キーストアを削除するとそれらのキーが削除され、暗号化データが失われてしまう可能性があります。データベース内のすべてのデータを復号化した後でも、キーストアを削除しないでください。削除すると、Oracleデータベースが正常に機能しなくなる可能性があります。これは、キーストア内のTDEマスター暗号化キーが他のOracle Database機能にも必要になる可能性があるためです。(キーストアの削除によって影響を受ける機能のリストについては、このトピックの最後にある「関連項目」を参照)。

TDEキーストアの移行(これにより、現在アクティブなTDEマスター暗号化キーの場所がソフトウェア・キーストアと外部キーストアの間で変更されるような方法でキー更新される)を実行した後でも、元のキーストアは削除しないでください。元のキーストアにあるキーは、後で必要になることがあります(たとえば、オフラインの暗号化された表領域をリカバリする必要がある場合)。すべてのオンライン表領域が暗号化されていない場合でも、キーが使用されている可能性があります。

ソフトウェア自動ログイン(またはローカル自動ログイン)・キーストアの場合は例外です。このタイプのキーストアを使用しない場合は、安全なディレクトリに移動するのが理想です。自動ログイン・キーストアは、必ず通常のソフトウェア・キーストアに基づいているため、それがパスワードベースの特定のキーストアから作成されたことが確かな場合にのみ削除するようにしてください。キーストアは、利用可能で既知である必要があります。

キーストアを削除する必要がある場合は、十分に注意してください。最初に、ADMINISTER KEY MANAGEMENT MOVE KEYS TO NEW KEYSTORE文を使用して、新しいキーストアにキーストア内のキーを移動する必要があります。

5.1.17 キーストアの削除によって影響を受ける機能

一部の機能は、キーストアの削除後にそのキーストアに存在するTDEマスター暗号化キーが必要になった場合には、問題が発生する可能性があります。

キーストアを削除する前に、それによって、後でそのTDEキーストア内のTDEマスター暗号化キーが必要になった場合にどのような影響があるかを考えてください。次の機能およびアクティビティが影響を受けます。

  • オフラインになっている表領域の操作
  • Oracle Secure Backupの操作
  • メディア・リカバリおよびブロック・メディア・リカバリの操作
  • Point-in-Timeリカバリの操作
  • Oracle Data Guardのフィジカルおよびロジカル・スタンバイの操作
  • Golden Gateの操作
  • Oracle Streamsの操作
  • Oracle Recovery Managerの操作(Oracle Recovery Managerバックアップのリストアなど)
  • データベース・クラッシュ・リカバリ操作中のデータベースへのアーカイブREDOログの適用
  • データベースのオンライン・ブロック・リカバリ。(オンライン・ブロック・リカバリを実行するということは、データベースがまだオープン状態であるということです。暗号化された表領域があるオープン状態のデータベース内のウォレットを削除すると、オンライン・ブロック・リカバリに関連する問題の他にさらに問題が発生します)。このような問題としては、次のことが考えられます。
    • 暗号化された表領域内の暗号化されたオンライン・データが復号化されなくなります。SYSTEMUNDOおよびTEMP表領域内の暗号化されたメタデータが復号化されなくなります。暗号化するメタデータ、またはそのメタデータを格納できる場所を制御できなくなります。
    • バッファ済のデータまたはメタデータは、ディスクに書き込む前に暗号化する必要がありますが、ウォレットが削除されると暗号化されなくなります。これによって、REDO生成が失敗する可能性があり、DBWRバックグラウンド・プロセスでデータの書込みができなくなることで、データベース・インスタンスがハングまたはクラッシュする可能性があります。
    • データベース・インスタンスがクラッシュすると、データベース・インスタンス・リカバリおよびデータベース・クラッシュ・リカバリが失敗し、データベースを再起動できなくなります。

5.2 TDEマスター暗号化キーの管理

TDEマスター暗号化キーは、いくつかの方法で管理できます。

5.2.1 ユーザー定義のTDEマスター暗号化キーの作成

TDEマスター暗号化キーIDを生成して、データベースの外部でユーザー定義のTDEマスター暗号化キーを作成できます。

5.2.1.1 ユーザー定義のTDEマスター暗号化キーについて

データベースの外部にあるTDEマスター暗号化キーには、TDEマスター暗号化キーの使用を追跡するための固有のユーザー生成IDがあります。

ADMINISTER KEY MANAGEMENTを使用して、ユーザー定義のTDEマスター暗号化キーIDを作成および設定できます。TDEマスター暗号化キーを生成した後で、このキーをデータベースに格納できます。オプションで、様々なADMINISTER KEY MANAGEMENT文でTDEマスター暗号化キーIDを指定できます。

このタイプの構成を使用すると、サイトの要件に準拠するTDEマスター暗号化キーを生成できるため、Oracle Fusion SaaS Cloud環境で役立ちます。生成されるこのキーは、最新の暗号化アルゴリズムをサポートしており、TDEウォレットのために使用できます。

TDEマスター暗号化キーIDを生成した後で、通常の方法でデータを暗号化できます。

TDEマスター暗号化キーとそれに対応するIDは、監査ログによって取得されません。

5.2.1.2 ユーザー定義のTDEマスター暗号化キーの作成

ユーザー定義のTDEマスター暗号化キーを作成するには、SET | CREATE [ENCRYPTION] KEY句を含むADMINISTER KEY MANAGEMENT文を使用します。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。
  2. 次の構文を使用して、ユーザー定義のTDEマスター暗号化キーを作成します。
    ADMINISTER KEY MANAGEMENT SET | CREATE [ENCRYPTION] KEY
    '[mkid:mk | mk]' 
    [USING ALGORITHM 'algorithm'] 
    [FORCE KEYSTORE]
    IDENTIFIED BY [EXTERNAL STORE | keystore_password] 
    [WITH BACKUP [USING 'backup_identifier']];

    ここでは次のように指定します。

    • SET | CREATE: マスターを作成し、TDEマスター暗号化キーを今すぐアクティブ化する場合は、SETを入力します。後で使用するためにキーを作成し、まだアクティブ化しない場合は、CREATEを選択します。

    • mkidおよびmk:

      • mkidは、TDEマスター暗号化キーIDであり、16バイトの16進数エンコード値です。ユーザーが指定するか、Oracle Databaseに生成させることができます。

      • mkは、TDEマスター暗号化キーであり、32バイト(AES256ARIA256およびGOST256アルゴリズムの場合)または16バイト(SEED128アルゴリズムの場合)のいずれかの16進数エンコード値です。ユーザーが指定するか、Oracle Databaseに生成させることができます。

      mkid:mk|mkid句を省略したが、mk値を含めた場合、Oracle Databaseはmkmkidを生成します。

      mkid:mk|mkid句全体を省略した場合、Oracle Databaseはこれらの値を生成します。

    • USING ALGORITHM: サポートされている次のアルゴリズムのいずれかを指定します。

      • AES256

      • ARIA256

      • SEED128

      • GOST256

      アルゴリズムを省略した場合は、デフォルトのAES256が使用されます。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    次の例では、データベース管理者がその操作を実行したときに、キーIDなしでTDEマスター暗号化キーが作成されます。

    まず、TDEマスター暗号化キーを生成します。たとえば、OpenSSLを使用する場合は次のようになります。

    $ openssl rand -hex 32
    f24ce8cdae39742b5da7293da206fbd05a28b1e44c4781f801768cfdc3dbb6e2

    次のADMINISTER KEY MANAGEMENT文を使用して、このARIAマスター・キーを設定(作成および使用)します。

    たとえば:

    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    'f24ce8cdae39742b5da7293da206fbd05a28b1e44c4781f801768cfdc3dbb6e2' 
    USING ALGORITHM 'ARIA256'
    FORCE KEYSTORE
    IIDENTIFIED BY EXTERNAL STORE | keystore_password
    WITH BACKUP [USING 'backup_identifier'];

    次の例では、TDEマスター暗号化キーとキーIDがデータベースの外部で生成され、職責の分離をサポートする方法を示します。キー管理者は、ADMINISTER KEY MANAGEMENT CREATE [ENCRYPTION] KEY文を使用して、key_IDのキーをウォレットに挿入します。次に、キー管理者がデータベース管理者にkey_IDを送信します。データベース管理者は、ADMINISTER KEY MANAGEMENT USE KEY句を使用して、キーをアクティブ化します。

    1. key-IDを作成し、文字を大文字に変換します。たとえば、OpenSSLを使用する場合は次のようになります。
      $ openssl rand 16 | xxd -u -p
      D20765EB721AF44D054B30FE87F8E49A
    2. TDEマスター暗号化キーを作成します。たとえば、OpenSSLを使用する場合は次のようになります。
      $ openssl rand -hex 32
      5a089c8ea6ee21cba774f61e58d102665df4a979a34757836b3d066a3eb3db11
    3. ランダムなkey-IDとキー自体の両方を:で区切ってウォレットに挿入することで、デフォルトのAES256マスター暗号化キーを作成します(ただし、アクティブ化しません)。
      ADMINISTER KEY MANAGEMENT CREATE ENCRYPTION KEY
      'D20765EB721AF44D054B30FE87F8E49A:5a089c8ea6ee21cba774f61e58d102665df4a979a34757836b3d066a3eb3db11'
      IDENTIFIED BY EXTERNAL STORE | software_keystore_password WITH BACKUP;
    4. データベース管理者は適切なSQLコマンドを作成する次のSELECT文を使用して、データベースからBASE64キーIDを取得し、キーをアクティブ化してタグを付加できます:
      SELECT ' ADMINISTER KEY MANAGEMENT USE KEY '''||KEY_ID||''' 
      USING TAG '''||SYS_CONTEXT('USERENV', 'CON_NAME')||' '||TO_CHAR (SYS_EXTRACT_UTC (SYSTIMESTAMP), 
      'YYYY-MM-DD HH24:MI:SS"Z"')||''' 
      FORCE KEYSTORE 
      DENTIFIED BY EXTERNAL STORE|software_keystore_password WITH BACKUP;

5.2.2 後で使用するためのTDEマスター暗号化キーの作成

後でアクティブ化するTDEマスター暗号化キーを作成することができます。

5.2.2.1 後で使用するためのTDEマスター暗号化キーの作成について

ADMINISTER KEY MANAGEMENT文のCREATE KEY句によって、後でアクティブ化できるTDEマスター暗号化キーを作成できます。

その後、そのキーを同じデータベースでアクティブ化したり、別のデータベースにエクスポートしてそこでアクティブ化できます。

このTDEマスター暗号化キーの作成方法は、マルチテナント環境でTDEマスター暗号化キーを再作成する必要がある場合に便利です。CREATE KEY句では、単一のSQL文を使用して、マルチテナント環境内のすべてのPDBに新しいTDEマスター暗号化キーを作成できます。新しいTDEマスター暗号化キーの作成時間は、現在使用中のTDEマスター暗号化キーをアクティブ化するよりも遅くなります。そのため、最新の作成済TDEマスター暗号化キーをできるだけ早くアクティブ化するようにすべてのPDBに注意を喚起するために、この作成時間を使用できます。

5.2.2.2 後で使用するためのTDEマスター暗号化キーの作成

後で使用するTDEマスター暗号化キーを作成する前に、キーストアが開かれている必要があります。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。

  2. この構文を使用して、TDEマスター暗号化キーを作成します。

    ADMINISTER KEY MANAGEMENT CREATE KEY [USING TAG 'tag']
    [FORCE KEYSTORE]
    IDENTIFIED BY EXTERNAL STORE | keystore_password
    WITH BACKUP [USING 'backup_identifier'];

    ここでは次のように指定します。

    • tagは、定義する関連の属性および情報です。この設定は一重引用符(' ')で囲みます。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • keystore_passwordは、元のキーストア作成時に使用した必須のキーストア・パスワードです。大文字と小文字が区別されます。

    • WITH BACKUPは、キーと同じ場所(V$ENCRYPTION_WALLETビューのWRL_PARAMETER列で識別されます)にTDEマスター暗号化キーをバックアップします。すべてのデータベース・インスタンスのキーの場所を確認するには、GV$ENCRYPTION_WALLETビューを問い合せます。

      パスワードベースのソフトウェア・キーストアをバックアップする必要があります。自動ログイン・ソフトウェア・キーストアやローカル自動ログイン・ソフトウェア・キーストアをバックアップする必要はありません。オプションで、USING backup_identifier句を含めることで、バックアップの説明を追加できます。backup_identifierは、一重引用符(' ')で囲みます。

  3. 必要に応じて、TDEマスター暗号化キーをアクティブ化します。

    1. キーIDを確認します。

      SELECT KEY_ID FROM V$ENCRYPTION_KEYS; 
      
      KEY_ID
      ----------------------------------------------------
      AWsHwVYC2U+Nv3RVphn/yAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    2. このキーIDを使用して、キーをアクティブ化します。

      ADMINISTER KEY MANAGEMENT USE KEY 
      'AWsHwVYC2U+Nv3RVphn/yAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' 
      USING TAG 'quarter:second;description:Activate Key on standby' 
      IDENTIFIED BY password 
      WITH BACKUP;
5.2.2.3 例: 1つのデータベースでのTDEマスター暗号化キーの作成

ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG文を使用して、1つのデータベースにTDEマスター暗号化キーを作成できます。

例5-1に、1つのデータベースにTDEマスター暗号化キーを作成する方法を示します。この文を実行すると、タグ定義で指定したTDEマスター暗号化キーが、そのデータベースのキーストアに作成されます。新しく作成したキーの識別子については、V$ENCRYPTION_KEYSビューのTAG列を問い合せることができます。最も最近作成されたキー(この文で作成したキー)を確認するには、CREATION_TIME列を問い合せます。このキーは、必要に応じて別のデータベースにエクスポートすることや、「TDEマスター暗号化キーのアクティブ化」の説明に従って後からローカルでアクティブ化することができます。

例5-1 1つのデータベースでのTDEマスター暗号化キーの作成

ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG
'source:admin@source;target:db1@target' 
IDENTIFIED BY password WITH BACKUP;

keystore altered.

5.2.3 TDEマスター暗号化キーのアクティブ化

TDEマスター暗号化キーはアクティブ化すると、使用できます。

5.2.3.1 TDEマスター暗号化キーのアクティブ化について

ADMINISTER KEY MANAGEMENTUSE KEY句を使用することで、以前に作成済またはインポート済のTDEマスター暗号化キーをアクティブ化できます。

マスター暗号化キーをアクティブ化すると、データベース内のすべてのデータ暗号化キーを暗号化するために使用されます。キーを使用して、すべての列のキーとすべての表領域暗号化キーを保護できます。ロジカル・スタンバイ・データベースをデプロイしている場合、TDEマスター暗号化キーを再作成後にエクスポートしてから、スタンバイ・データベースにインポートする必要があります。プライマリ・データベースとスタンバイ・データベースの両方でTDEマスター暗号化キーを使用するように選択できます。これを行うには、TDEマスター暗号化キーを、ロジカル・スタンバイ・データベースへのインポート後にアクティブ化する必要があります。

5.2.3.2 TDEマスター暗号化キーのアクティブ化

TDEマスター暗号化キーをアクティブ化するには、キーストアを開き、USE KEY句を含むADMINISTER KEY MANAGEMENTを使用する必要があります。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。

  2. V$ENCRYPTION_KEYSビューのKEY_ID列を問い合せて、キーの識別子を確認します。

    たとえば:

    SELECT KEY_ID FROM V$ENCRYPTION_KEYS; 
    
    KEY_ID
    ----------------------------------------------------
    ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    
  3. このキー識別子を使用して、次の構文を使用してTDEマスター暗号化キーをアクティブ化します。

    ADMINISTER KEY MANAGEMENT USE KEY 'key_identifier_from_V$ENCRYPTION_KEYS' 
    [USING TAG 'tag'] 
    [FORCE KEYSTORE] 
    IDENTIFIED BY [EXTERNAL STORE | keystore_password] 
    [WITH BACKUP [USING 'backup_identifier']];
    

    ここでは次のように指定します。

    • key_identifier_from_V$ENCRYPTION_KEYSはキー識別子です。この設定は、一重引用符(' ')で囲みます。

    • tagは、定義する関連の属性および情報です。この設定は、一重引用符(' ')で囲みます。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • keystore_passwordは、元のキーストア作成時に使用した必須のキーストア・パスワードです。

    • WITH BACKUPは、キーと同じ場所(V$ENCRYPTION_WALLETビューのWRL_PARAMETER列で識別されます)にTDEマスター暗号化キーをバックアップします。すべてのデータベース・インスタンスのキーの場所を確認するには、GV$ENCRYPTION_WALLETビューを問い合せます。

      パスワードベースのソフトウェア・キーストアをバックアップする必要があります。自動ログイン・ソフトウェア・キーストアやローカル自動ログイン・ソフトウェア・キーストアをバックアップする必要はありません。オプションで、USING backup_identifier句を含めることで、バックアップの説明を追加できます。backup_identifierは、一重引用符(' ')で囲みます。

5.2.3.3 例: TDEマスター暗号化キーのアクティブ化

ADMINISTER KEY MANAGEMENT SQL文を使用して、TDEマスター暗号化キーをアクティブ化できます。

例5-2に、以前にインポートしたTDEマスター暗号化キーをアクティブ化してそのタグを更新する方法を示します。このキーは、現在のデータベースのタイムスタンプとタイムゾーンでアクティブ化されます。

例5-2 TDEマスター暗号化キーのアクティブ化

ADMINISTER KEY MANAGEMENT USE KEY 
'ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' 
USING TAG 'quarter:second;description:Activate Key on standby' 
IDENTIFIED BY password WITH BACKUP;

keystore altered.

次の同じ操作のバージョンでは、自動ログイン・キーストアが使用されているか、キーストアが閉じている場合に、FORCE KEYSTORE句が追加されます。キーストアのパスワードが外部に格納されるため、IDENTIFIED BY句にEXTERNAL STORE設定が使用されます。

ADMINISTER KEY MANAGEMENT USE KEY 
'ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' 
USING TAG 'quarter:second;description:Activate Key on standby' 
FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE WITH BACKUP;

keystore altered.

5.2.4 TDEマスター暗号化キーの属性管理

TDEマスター暗号化キーの属性には、TDEマスター暗号化キーについての情報が保存されます。

5.2.4.1 TDEマスター暗号化キーの属性

TDEマスター暗号化キーの属性には、TDEマスター暗号化キーについての詳細情報が含まれます。

次のタイプの情報が含まれます。

  • キーのタイムスタンプ情報:通常、内部セキュリティ・ポリシーおよびコンプライアンス・ポリシーによって、キーのキー更新頻度が決まります。ライフタイムの終わりに達したらキーを期限切れにして、新しいキーを生成する必要があります。キーの作成時間やアクティブ化時間などのタイムスタンプ属性は、キーの古さを正確に判断してキーを自動生成するために役立ちます。

    V$ENCRYPTION_KEYSビューには、CREATION_TIMEACTIVATION_TIME.などの列が含まれますV$ENCRYPTION_KEYSビューの詳細は、『Oracle Databaseリファレンス』を参照してください。

  • キーの所有者情報: キーの所有者属性は、キーを作成またはアクティブ化したユーザーを判断するために役立ちます。これらの属性は、セキュリティ、監査、および追跡において重要な場合があります。また、キーの所有者属性には、キーがスタンドアロンTDE操作に使用されるか、マルチテナント環境で使用されるかといった、キーの使用情報が含まれます。

    V$ENCRYPTION_KEYSビューには、CREATOR、CREATOR_ID、USER、USER_ID、KEY_USEなどの列が含まれます。

  • キー・ソース情報: 多くの場合、キーは、インポート/エクスポート操作やData Guard関連の操作のためにデータベース間で移動する必要があります。キー・ソース属性によって、それぞれのキーの起点を追跡できます。キーがローカルで作成されたかインポートされたか、およびキーを作成したデータベースのデータベース名とインスタンス番号を追跡できます。マルチテナント環境では、キーが作成されたPDBを追跡できます。

    V$ENCRYPTION_KEYSビューには、CREATOR_DBNAME、CREATOR_DBID、CREATOR_INSTANCE_NAME、CREATOR_INSTANCE_NUMBER、CREATOR_PDBNAMEなどの列が含まれます。

  • キーの使用情報: キーの使用情報によって、キーが使用されているデータベースまたはPDBが決まります。また、キーがアクティブに使用されているかどうかを判断するために役立ちます。

    V$ENCRYPTION_KEYSビューには、ACTIVATING_DBNAME、ACTIVATING_DBID、ACTIVATING_INSTANCE_NAME、ACTIVATING_PDBNAMEなどの列が含まれます。

  • ユーザー定義情報およびその他の情報: キーを作成するとき、TAGオプションを使用して情報を関連付けることができます。各キーには、バックアップされたかどうかなどの重要な情報が含まれます。

    V$ENCRYPTION_KEYSビューには、KEY_ID、TAGなどの列と、BACKED_UPなどのその他の列が含まれます。

ノート:

TDEマスター・キー属性およびタグは、Oracle Key VaultおよびOracle Cloud Infrastructure (OCI)キー管理サービス(KMS)でのみサポートされます。
5.2.4.2 使用中のTDEマスター暗号化キーの検出

使用中のTDEマスター暗号化キーは、データベースで最も最近アクティブ化された暗号化キーです。

  • TDEマスター暗号化キーを検出するには、V$ENCRYPTION_KEYS動的ビューを問い合せます。
    たとえば:
    SELECT KEY_ID 
    FROM V$ENCRYPTION_KEYS 
    WHERE ACTIVATION_TIME = (SELECT MAX(ACTIVATION_TIME) 
                             FROM V$ENCRYPTION_KEYS
                             WHERE ACTIVATING_DBID = (SELECT DBID FROM V$DATABASE));
    

5.2.5 レポート用のTDEマスター暗号化キーのカスタム属性の作成

TDEマスター暗号化キーのカスタム属性では、ニーズに適した属性を定義できます。

5.2.5.1 カスタム属性タグの作成について

属性タグにより、特定の端末IDへのアクセスなど、ユーザーが実行する特定のアクティビティを監視できます。

デフォルトでは、Oracle Databaseには、作成時間やTDEマスター暗号化キーが使用されるデータベースなど、作成されるTDEマスター暗号化キーの様々な特性を説明する属性セットが定義されます。これらの属性は、V$ENCRYPTION_KEY動的ビューによって取得されます。

V$ENCRYPTION_KEYS動的ビューのTAG列で取得可能なカスタム属性を作成できます。これにより、暗号化キーを操作するユーザーなど、監視したい動作を定義できます。タグには、特定の端末のセッションIDなど、複数の属性を含めることができます。

TDEマスター暗号化キーのタグを作成すると、その名前がそのTDEマスター暗号化キーのV$ENCRYPTION_KEYSビューのTAG列に表示されます。シークレットのタグを作成すると、そのタグは、V$CLIENT_SECRETSビューのSECRET_TAG列に表示されます。タグでシークレットを作成した場合、そのタグはV$CLIENT_SECRETSビューのSECRET_TAG列に表示されます。

5.2.5.2 カスタム属性タグの作成

カスタム属性タグを作成するには、ADMINISTER KEY MANAGEMENT文のSET TAG句を使用する必要があります。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。

  2. 必要に応じて、V$ENCRYPTION_KEY動的ビューのTAG列を問い合せて、TDEマスター暗号化キーの既存のタグのリストを確認します。

    TDEマスター暗号化キーの新しいタグを作成すると、そのTDEマスター暗号化キーの既存のタグは上書きされます。

  3. 次の構文を使用して、カスタム属性タグを作成します。

    ADMINISTER KEY MANAGEMENT SET TAG 'tag' 
    FOR 'master_key_identifier' 
    [FORCE KEYSTORE] 
    IDENTIFIED BY [EXTERNAL STORE | keystore_password] 
    [WITH BACKUP [USING 'backup_identifier']];
    

    ここでは次のように指定します。

    • tagは、定義する関連の属性または情報です。この情報は、一重引用符(' ')で囲みます。

    • master_key_identifierは、tagが設定されるTDEマスター暗号化キーを識別します。TDEマスター暗号化キー識別子のリストを確認するには、V$ENCRYPTION_KEYS動的ビューのKEY_ID列を問い合せます。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • keystore_passwordは、キーストアの作成に使用されたパスワードです。

    • backup_identifierは、タグの値を定義します。この設定は一重引用符(' ')で囲み、それぞれの値をコロンで区切ります。

    たとえば、2つの値(1番目は特定のセッションID、2番目は特定の端末IDを取得)を使用するタグを作成するには、次のようにします。

    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    USING TAG 'sessionid=3205062574:terminal=xcvt' 
    IDENTIFIED BY keystore_password 
    WITH BACKUP;
    
    keystore altered.
    

    セッションID (3205062574)と端末ID (xcvt)はどちらも、SYS_CONTEXT関数でUSERENVネームスペースを使用するか、USERENV関数を使用することで、値を導出できます。

5.2.6 キーストアのTDEマスター暗号化キーの設定またはキー更新

TDEウォレットと外部キーストアの両方で、TDEマスター暗号化キーを設定またはキー更新できます。

5.2.6.1 キーストアのTDEマスター暗号化キーの設定またはキー更新について

パスワードベースのソフトウェア・キーストアと外部キーストアの両方で、TDEマスター暗号化キーを設定またはキー更新できます。

TDEマスター暗号化キーは、外部セキュリティ・モジュール(キーストア)に格納され、TDE表キーおよび表領域暗号化キーの保護に使用されます。デフォルトでは、TDEマスター暗号化キーは、透過的データ暗号化(TDE)によって作成されるシステム生成のランダム値です。

TDEマスター暗号化キーを設定または再設定(REKEY)するには、ADMINISTER KEY MANAGEMENT文を使用します。マスター暗号化キーが設定されると、TDEは有効と見なされ、無効化できません。

データベースの列または表領域を暗号化または復号化するには、TDEマスター暗号化キーを事前に生成しておく必要があります。Oracle Databaseでは、TDE列暗号化とTDE表領域暗号化の両方で同じTDEマスター暗号化キーが使用されます。ソフトウェアまたはハードウェアTDEマスター暗号化キーの設定手順では、TDEマスター暗号化キーの生成方法について説明します。

5.2.6.2 TDEマスター暗号化キーの作成、タグ付けおよびバックアップ

ADMINISTER KEY MANAGEMENT文を使用して、TDEマスター暗号化キーを作成、タグ付けおよびバックアップできます。

Oracle Databaseでは、初期化パラメータ・ファイルのWALLET_ROOTパラメータによって指定されているキーストア・ロケーションにあるキーストアを使用して、TDEマスター暗号化キーを格納します。
  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。
  2. 次の構文を使用して、TDEマスター暗号化キーを作成およびバックアップし、タグを適用します。
    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    [USING TAG 'tag'] 
    [FORCE KEYSTORE] 
    IDENTIFIED BY [EXTERNAL STORE | keystore_password] 
    WITH BACKUP [USING 'backup_identifier'];
    

    ここでは次のように指定します。

    • tagは、作成するタグです。このタグは、一重引用符(' ')で囲みます。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • keystore_passwordは、software_keystore_passwordまたはexternal_key_manager_passwordのいずれかです。ソフトウェア・パスワードと同様に、大/小文字が区別されます。パスワード文字列は、二重引用符(" ")で囲む必要があります。user_namepasswordをコロン(:)で区切ります。

    • WITH BACKUPは、キーと同じ場所(V$ENCRYPTION_WALLETビューのWRL_PARAMETER列で識別されます)にTDEマスター暗号化キーをバックアップします。すべてのデータベース・インスタンスのWRL_PARAMETER値を見つけるには、GV$ENCRYPTION_WALLETビューを問い合せます。

      パスワードベースのTDEウォレットをバックアップする必要があります。自動ログインTDEウォレットやローカル自動ログインTDEウォレットの場合は、それを使用する必要はありません。オプションで、USING backup_identifier句を含めることで、バックアップの説明を追加できます。この識別子は、一重引用符(' ')で囲みます。

    たとえば:

    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    USING TAG 'backups" 
    IDENTIFIED BY password 
    WITH BACKUP USING 'hr.emp_key_backup';
    
    keystore altered.
    
5.2.6.3 TDEマスター暗号化キーのキー更新について

Oracle Databaseでは、TDE列暗号化とTDE表領域暗号化の両方で統合されたTDEマスター暗号化キーが使用されます。

TDE列暗号化用にTDEマスター暗号化キーをキー更新すると、TDE表領域暗号化用のTDEマスター暗号化キーもキー更新されます。TDEマスター暗号化キーのキー更新は、TDEマスター暗号化キーの安全性が損なわれた場合、または組織のセキュリティ・ポリシーに従う場合にのみ実行します。このプロセスによって、前のTDEマスター暗号化キーは非アクティブ化されます。

セキュリティを強化し、コンプライアンス規制を満たすために、定期的にTDEマスター暗号化キーをキー更新することをお薦めします。このプロセスでは、前のTDEマスター暗号化キーを非アクティブ化し、新しいTDEマスター暗号化キーを作成してアクティブ化します。最近作成されたキーを確認するには、V$ENCRYPTION_KEYSビューのCREATION_TIME列を問い合せます。最近アクティブ化されたキーを確認するには、V$ENCRYPTION_KEYSビューのACTIVATION_TIME列を問い合せます。

TDEマスター暗号化キーを変更したり、自動ログイン・キーストアのTDEマスター暗号化キーをキー更新することはできません。自動ログイン・キーストアにはパスワードがないため、管理者または権限のあるユーザーは、セキュリティ担当者に知らせずにキーを変更できます。ただし、自動ログイン・キーストアとパスワードベースのキーストアの両方が(sqlnet.oraファイルで設定する)構成されたロケーションに存在する場合、TDEマスター暗号化キーをキー更新すると、自動ログイン・キーストアとパスワードベースのキーストアの両方にTDEマスター暗号化キーが追加されます。自動ログイン・キーストアが、パスワードベースのキーストアとは異なるロケーションで使用中の場合、自動ログイン・キーストアを再作成する必要があります。

マスター・キーのキー更新操作をオンライン表領域のキー更新操作と同時に実行しないでください。次の問合せを発行して、オンライン表領域でのTDEマスター暗号化キーの処理が進行中であるかどうかを確認できます。

SELECT TS#,ENCRYPTIONALG,STATUS FROM V$ENCRYPTED_TABLESPACES;

REKEYINGというステータスは、対応する表領域がまだキー更新中であることを意味します。

ノート:

自動ログイン・キーストアに新しい情報を個別に追加することはできません。

5.2.6.4 TDEマスター暗号化キーのキー更新

ADMINISTER KEY MANAGEMENT文を使用して、TDEマスター暗号化キーをキー更新できます。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。
  2. 自動ログインを有効化したキーストアのTDEマスター暗号化キーをキー更新する場合、.ssoファイルによって識別される自動ログイン・キーストアと.p12ファイルによって識別される暗号化キーストアの両方が存在することを確認する必要があります。
    これらのファイルのロケーションは、V$ENCRYPTION_WALLETビューのWRL_PARAMETER列を問い合せることで確認できます。すべてのデータベース・インスタンスのWRL_PARAMETER値を見つけるには、GV$ENCRYPTION_WALLETビューを問い合せます。
  3. 次の構文を使用して、TDEマスター暗号化キーをキー更新します。
    ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY 
    [FORCE KEYSTORE]
    [USING TAG 'tag_name'] 
    IDENTIFIED BY [EXTERNAL STORE | keystore_password] 
    [WITH BACKUP [USING 'backup_identifier']];
    

    ここでは次のように指定します。

    • tagは、定義する関連の属性および情報です。この設定は、一重引用符(' ')で囲みます。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • keystore_passwordは、「ステップ2: TDEウォレットの作成」でキーストア作成時に作成した必須のキーストア・パスワードです。

    • WITH BACKUPを使用すると、キーストアのバックアップが作成されます。パスワードベースのキーストアおよび外部キーストアの場合は、このオプションを使用する必要があります。オプションでUSING句を使用し、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(ewallet_time-stamp_emp_key_backup.p12など)。オペレーティング・システムで使用されているファイル命名規則に従ってください。

    たとえば:

    ADMINISTER KEY MANAGEMENT SET KEY 
    FORCE KEYSTORE
    IDENTIFIED BY keystore_password 
    WITH BACKUP USING 'emp_key_backup';
    
    keystore altered.
    
5.2.6.5 表領域のTDEマスター暗号化キーの変更

表領域を暗号化するには、ALTER TABLESPACE文のENCRYPT句およびREKEY句を使用できます。

  1. 表領域が読取り-書込みモードで開いていることを確認します。

    V$INSTANCE動的ビューのSTATUS列を問い合せてデータベースが開いているかどうか、V$DATABASEビューのOPEN_MODE列を問い合せて読取り-書込みモードであるかどうかを確認できます。

  2. 必要に応じて、読取り-書込みモードでデータベースを開きます。
    ALTER DATABASE OPEN READ WRITE;
  3. ALTER TABLESPACE SQL文を実行して表領域を暗号化します。

    表領域がまだ暗号化されていない場合は、ENCRYPT句を使用します。

    ALTER TABLESPACE encrypt_ts ENCRYPTION USING 'AES256' ENCRYPT;

    SYSTEM表領域、SYSAUX表領域またはUNDO表領域の暗号化を変更するには、表領域をオンラインでキー更新する必要があります。ONLINE句およびREKEY句を使用します。たとえば、SYSTEM表領域の暗号化アルゴリズムを変更するには、次のようにします。

    ALTER TABLESPACE SYSTEM ENCRYPTION ONLINE USING 'AES256' REKEY;

5.2.7 TDEマスター暗号化キーのエクスポートおよびインポート

TDEマスター暗号化キーを様々な方法でエクスポートおよびインポートできます。

5.2.7.1 TDEマスター暗号化キーのエクスポートおよびインポートについて

Oracle Databaseには、トランスポータブル表領域などの機能があり、Oracle Data Pumpでは、データベース間で暗号化される可能性のあるデータが移動されます。

これらは、TDEマスター暗号化キーのエクスポートとインポートによってソース・キーストアとターゲット・キーストア間でそれらを移動することを選択できる一般的なシナリオです。Data Guard (ロジカル・スタンバイ)では、プライマリ・データベースのキーストアをスタンバイ・データベースにコピーする必要があります。プライマリ・データベースのキーストアをスタンバイ・データベースとマージするかわりに、使用中のTDEマスター暗号化キーをエクスポートした後でスタンバイ・データベースにインポートできます。暗号化されているトランスポータブル表領域をデータベース間で移動するには、ソース・データベースのTDEマスター暗号化キーをエクスポートしてから、ターゲット・データベースにインポートする必要があります。

5.2.7.2 TDEマスター暗号化キーのエクスポートについて

ADMINISTER KEY MANAGEMENT EXPORTを使用して、キーストアからTDEマスター暗号化キーをエクスポートし、その後、別のキーストアにインポートできます。

TDEマスター暗号化キーは、キー識別子およびキー属性とともにエクスポートされます。エクスポートされるキーは、エクスポート・ファイルのパスワード(シークレット)で保護されます。

エクスポートするTDEマスター暗号化キーを指定するには、ADMINSITER KEY MANAGENT EXPORT文のWITH IDENTIFIER句を使用します。TDEマスター暗号化キーをエクスポートするには、それらのキー識別子をカンマ区切りリストとして指定するか、キー識別子を列挙する問合せを指定します。Oracle Databaseでは、定義者の権限ではなく現在のユーザーの権限内でキー識別子を特定する問合せが実行されることに注意してください。

WITH IDENTIFER句を省略すると、データベースのすべてのTDEマスター暗号化キーがエクスポートされます。

5.2.7.3 TDEマスター暗号化キーのエクスポート

EXPORT [ENCRYPTION] KEYS WITH SECRET句を含むADMINISTER KEY MANAGEMENT文によって、TDEマスター暗号化キーをエクスポートします。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。

  2. 次の構文を使用して、TDEマスター暗号化キーをエクスポートします。

    ADMINISTER KEY MANAGEMENT EXPORT [ENCRYPTION] KEYS 
    WITH SECRET "export_secret" 
    TO 'file_path' 
    [FORCE KEYSTORE]
    IDENTIFIED BY [EXTERNAL STORE | keystore_password]
    [WITH IDENTIFIER IN 'key_id1', 'key_id2', 'key_idn' | (SQL_query)];
    

    ここでは次のように指定します。

    • export_secretは、エクスポートするキーが含まれるエクスポート・ファイルを暗号化するために指定できるパスワードです。このシークレットは、二重引用符(" ")で囲むか、シークレットにスペースが使われていない場合は引用符を省略できます。

    • file_pathは、キーのエクスポート先ファイルの完全パスと名前です。このパスは、一重引用符(' ')で囲みます。標準ファイル・システムにのみエクスポートできます。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • TDE_wallet_passwordは、キーが含まれるキーストアのパスワードです。

    • key_id1key_id2key_idnは、エクスポートするTDEマスター暗号化キーの1つ以上のTDEマスター暗号化キー識別子の文字列です。各キー識別子はカンマで区切り、それぞれのキー識別子を一重引用符(' ')で囲みます。TDEマスター暗号化キー識別子のリストを確認するには、V$ENCRYPTION_KEYS動的ビューのKEY_ID列を問い合せます。

    • SQL_queryは、TDEマスター暗号化キー識別子のリストをフェッチする問合せです。これによって、通常はTDEマスター暗号化キー識別子が含まれる1つの列のみが返されます。この問合せは、現在のユーザー権限で実行されます。

5.2.7.4 例: 副問合せを使用したTDEマスター暗号化キー識別子のエクスポート

ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS文によって、副問合せを使用してTDEマスター暗号化キーをエクスポートできます。

例5-4に、識別子が問合せによってフェッチされるTDEマスター暗号化キーをexport.expというファイルにエクスポートする方法を示します。ファイル内のTDEマスター暗号化キーは、シークレットmy_secretを使用して暗号化されます。SELECT文で、エクスポートするTDEマスター暗号化キーの識別子を検出します。

例5-3 ファイルへのTDEマスター暗号化キー識別子のリストのエクスポート

ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS 
WITH SECRET "my_secret" 
TO '/TDE/export.exp' 
FORCE KEYSTORE
IDENTIFIED BY password 
WITH IDENTIFIER IN 'AdoxnJ0uH08cv7xkz83ovwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
'AW5z3CoyKE/yv3cNT5CWCXUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';

keystore altered.
5.2.7.5 例: ファイルへのTDEマスター暗号化キー識別子のリストのエクスポート

ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET文によって、TDEマスター暗号化キー識別子のリストをファイルにエクスポートできます。

例5-3に、リストとして識別子を指定することでTDEマスター暗号化キーをexport.expというファイルにエクスポートする方法を示します。ファイル内のTDEマスター暗号化キーは、シークレットmy_secretを使用して暗号化されます。エクスポートされるTDEマスター暗号化キーの識別子は、カンマ区切りのリストとして提供されます。

例5-4 副問合せを使用したTDEマスター暗号化キー識別子のエクスポート

ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS 
WITH SECRET "my_secret" TO '/etc/TDE/export.exp' 
FORCE KEYSTORE
IDENTIFIED BY password 
WITH IDENTIFIER IN (SELECT KEY_ID FROM V$ENCRYPTION_KEYS WHERE ROWNUM <3);

keystore altered.
5.2.7.6 例: データベースのすべてのTDEマスター暗号化キーのエクスポート

ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS SQL文によって、データベースのすべてのTDEマスター暗号化キーをエクスポートできます。

例5-5に、データベースのすべてのTDEマスター暗号化キーをexport.expというファイルにエクスポートする方法を示します。ファイル内のTDEマスター暗号化キーは、シークレットmy_secretを使用して暗号化されます。

例5-5 データベースのすべてのTDEマスター暗号化キーのエクスポート

ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS 
WITH SECRET "my_secret" TO '/etc/TDE/export.exp' 
FORCE KEYSTORE
IDENTIFIED BY password;

keystore altered.
5.2.7.7 TDEマスター暗号化キーのインポートについて

ADMINISTER KEY MANAGEMENT IMPORT文によって、エクスポートしたTDEマスター暗号化キーをキー・エクスポート・ファイルからターゲット・キーストアにインポートできます。

すでにインポートされているTDEマスター暗号化キーを再インポートすることはできません。

5.2.7.8 TDEマスター暗号化キーのインポート

IMPORT [ENCRYPTION] KEYS WITH SECRET句を含むADMINISTER KEY MANAGEMENT文によって、TDEマスター暗号化キーをインポートできます。

  • 次の構文を使用して、TDEマスター暗号化キーをインポートします。
    ADMINISTER KEY MANAGEMENT IMPORT [ENCRYPTION] KEYS 
    WITH SECRET "import_secret"  
    FROM 'file_name' 
    [FORCE KEYSTORE] 
    IDENTIFIED BY [EXTERNAL STORE | keystore_password] 
    [WITH BACKUP [USING 'backup_identifier']];
    

    ここでは次のように指定します。

    • import_secretは、エクスポート操作時にキーの暗号化に使用されたものと同じパスワードです。このシークレットは、二重引用符(" ")で囲むか、シークレットにスペースが使われていない場合は引用符を省略できます。

    • file_nameは、キーのインポート元ファイルの完全パスと名前です。この設定は、一重引用符(' ')で囲みます。

    • FORCE KEYSTOREは、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。

    • IDENTIFIED BYは次のいずれかの設定にできます。

      • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

      • TDE_wallet_passwordは、キーがインポートされるTDEウォレットのパスワードです。

    • WITH BACKUPは、インポート操作の前にターゲット・キーストアがバックアップされていない場合は使用する必要があります。backup_identifierは、キーストアのバックアップを識別するために指定できるオプション文字列です。この設定は、一重引用符(' ')で囲みます。

5.2.7.9 例: TDEマスター暗号化キーのインポート

ADMINISTER KEY MANAGEMENT IMPORT KEYS SQL文を使用して、TDEマスター暗号化キーをインポートできます。

例5-6に、ファイルexport.expに格納され、シークレットmy_secretで暗号化されているTDEマスター暗号化キー識別子をインポートする方法を示します。

例5-6 エクスポート・ファイルからのTDEマスター暗号化キー識別子のインポート

ADMINISTER KEY MANAGEMENT IMPORT KEYS 
WITH SECRET "my_secret" 
FROM '/etc/TDE/export.exp' 
FORCE KEYSTORE
IDENTIFIED BY password WITH BACKUP;

keystore altered.
5.2.7.10 キーストアのマージとTDEマスター暗号化キーのエクスポートまたはインポートの相違点

キーストア・マージ操作は、TDEマスター暗号化キーのエクスポートおよびインポート操作とは異なります。

ADMINISTER KEY MANAGEMENT MERGE文と、ADMINISTER KEY MANAGEMENT EXPORT文およびIMPORT文は、両方とも最終的にTDEマスター暗号化キーがあるキーストアから次のキーストアに移動されますが、これら2つの文の動作には違いがあります。

  • MERGE文では2つのキーストアがマージされますが、EXPORTおよびIMPORT文ではファイルにキーがエクスポートされるか、ファイルからキーがインポートされます。キーストアはエクスポート・ファイルとは別のものであり、これら2つを交換して使用することはできません。エクスポート・ファイルはキーストアではなく、データベースでキーストアとして使用するように構成することはできません。同様に、IMPORT文でキーストアからTDEマスター暗号化キーを抽出することはできません。

  • MERGE文では指定したキーストアのすべてのTDEマスター暗号化キーがマージされますが、EXPORTおよびIMPORT文では選択可能です。

  • EXPORTおよびIMPORT文では、エクスポート・ファイルの場所(filepath)とファイル名の両方を指定する必要がありますが、MERGE文ではキーストアの場所のみを指定します。

  • キーストアのファイル名は固定で、MERGE操作によって決定され、ewallet.p12またはcwallet.ssoになります。EXPORTおよびIMPORT文で使用するエクスポート・ファイルのファイル名は、ユーザーが指定します。

  • 自動ストレージ管理(ASM)ディスク・グループまたは通常のファイル・システムのキーストアは、MERGE文でマージできます。EXPORTおよびIMPORT文で使用するエクスポート・ファイルは、通常のオペレーティング・システム・ファイルである必要があり、ASMディスク・グループには配置できません。

  • MERGE文を使用してマージするキーストアは、構成されたり、データベースで使用されている必要はありません。EXPORT文は、構成されてデータベースで使用され、エクスポートの終了時に開かれるキーストアからのみキーをエクスポートできます。IMPORT文は、開かれて構成され、データベースで使用されているキーストアにのみキーをインポートできます。

  • MERGE文では、TDEマスター暗号化キーに関連付けられたメタデータは絶対に変更されません。EXPORTおよびIMPORT操作では、PDBのプラグ操作時など、必要に応じてTDEマスター暗号化キーのメタデータが変更されることがあります。

5.2.8 新しいキーストアへのTDEマスター暗号化キーの移動

既存のTDEマスター暗号化キーを、パスワードで保護された既存のキーストアから新しいキーストアに移動できます。

5.2.8.1 新しいキーストアへのTDEマスター暗号化キーの移動について

使用されていない(正常にアーカイブ済の)TDEマスター暗号化キーを新しいキーストアに移動できます。

ADMINISTER KEY MANAGEMENT MOVE KEYSを実行する場合は十分に注意してください。この文ではアクティブなマスター暗号化キーは移動されませんが、それでも、一連のデータベース機能に必要となるキーに影響がある可能性があります。キーを削除した場合は、これらの機能を使用するための、そのキーによって暗号化されたデータへのアクセスは不可能になります(データの削除と同等)。キーストアの削除によって影響を受ける機能の詳細は、このトピックの最後にある「関連項目」を参照してください。

そのため、キーストアを移動する前に、それを正常にアーカイブすることが重要です。一定期間が経過し、キーストアが確実に不要になった場合にのみ、キーストアを削除するようにしてください。

TDEマスター暗号化キーを新しいキーストアに移動するには、ADMINISTER KEY MANAGEMENT MOVE KEYS文を使用します。この文では、アクティブなTDEマスター暗号化キー(つまり、ADMINISTER KEY MANAGEMENT MOVE KEYSが発行された時点で使用中だったキー)は移動されません。

新しいTDEキーストアを構成するときに、誤ってADMINISTER KEY MANAGEMENT MOVE KEYS文をADMINISTER KEY MANAGEMENT MERGE KEYSTOREのかわりに使用した場合(たとえば、TDEキーストア構成を、TDEウォレットがオペレーティング・システムのファイル・システムにある構成から、TDEウォレットがOracle Automatic Storage Management (Oracle ASM)にある構成に変更する場合)、次の現象が、誤ったキー管理コマンドの使用によって発生したTDEの誤った構成を識別するのに役立つ場合があります:

  • 前のADMINISTER KEY MANAGEMENT MOVE KEYS操作のターゲットであったTDEキーストアを開いたときに、ORA-28374: 「入力したマスター・キーがウォレットに見つかりません」というエラーが表示されます。これは、アクティブなTDEマスター暗号化キーがそのキーストアに移動されていないためです。
  • 新しいキーストアを開いた後、V$ENCRYPTION_WALLETビューのSTATUS列にOPEN_NO_MASTER_KEYという値が表示されています。誤ってADMINISTER KEY MANAGEMENT MOVE KEYS文によって移入された新しいTDEキーストアにはアクティブなTDEマスター暗号化キーが含まれていないため、想定ではOPEN_NO_MASTER_KEYステータスになります。
5.2.8.2 新しいキーストアへのTDEマスター暗号化キーの移動

ADMINISTER KEY MANAGEMENT MOVE KEYSを使用すると、既存のTDEマスター暗号化キーを既存のキーストアから新しいキーストアに移動できます。

この機能を使用すると、使用していないキーストアを削除できます。キーストアを移動する前に、それを正常にアーカイブしてあることを確認してください。暗号化キーを新しいキーストアに移動した後、古いキーストアを削除してよいのは、それが確実に不要になった場合です。
  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、データベース・インスタンスにログインします。
    たとえば:
    sqlplus sec_admin as syskm
    Enter password: password
    Connected.
    
  2. V$ENCRYPTION_KEYSビューのKEY_ID列を問い合せて、キー・アーカイブのキーストアに移動する必要があるキーについて、キー識別子を確認します。
    たとえば:
    SELECT KEY_ID FROM V$ENCRYPTION_KEYS; 
    
    KEY_ID
    ----------------------------------------------------
    ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  3. 次の構文を使用して、新しいキーストアにキーを移動します。
    ADMINISTER KEY MANAGEMENT 
    MOVE [ENCRYPTION] KEYS
    TO NEW KEYSTORE 'keystore_location1'
    IDENTIFIED BY keystore1_password
    FROM [FORCE] KEYSTORE
    IDENTIFIED BY keystore_password
    [WITH IDENTIFIER IN
    { 'key_identifier' [, 'key_identifier' ]... | ( subquery ) } ]
    [WITH BACKUP [USING 'backup_identifier'] ];

    ここでは次のように指定します。

    • keystore_location1は、新しいキーストア.p12ファイルを格納するwalletディレクトリへのパスです。デフォルトでは、このディレクトリは、$ORACLE_BASE/admin/db_unique_name/walletにあります。

    • keystore1_passwordは、新しいキーストアの移動元であるキーストアのパスワードです。

    • keystore_passwordは、キーの移動元であるキーストアのパスワードです。

    • key_identifierは、V$ENCRYPTION_KEYSビューのKEY_ID列を問い合せて確認するキーの識別子です。この設定は、一重引用符(' ')で囲みます。

    • subqueryは、必要なキー識別子を正確に確認するために使用できます。

    • backup_identifierは、バックアップの説明(オプション)です。backup_identifierは、一重引用符(' ')で囲みます。

    たとえば:

    ADMINISTER KEY MANAGEMENT MOVE KEYS 
    TO NEW KEYSTORE $ORACLE_BASE/admin/orcl/wallet 
    IDENTIFIED BY keystore_password 
    FROM FORCE KEYSTORE 
    IDENTIFIED BY keystore_password 
    WITH IDENTIFIER IN 
    (SELECT KEY_ID FROM V$ENCRYPTION_KEYS WHERE ROWNUM < 2);
  4. 古いキーストアを削除するには、walletディレクトリに移動してから、キーストアを含む.p12ファイルを手動で削除します。
    キーストアの場所を検索するには、キーストアを開いてから、V$ENCRYPTION_WALLETビューのWRL_PARAMETER列を問い合せます。

5.2.9 ENCRYPTION_WALLET_LOCATIONからWALLET_ROOTおよびTDE_CONFIGURATIONへの変換

ウォレットの場所は、sqlnet.ora ENCRYPTION_WALLET_LOCATIONパラメータの使用からWALLET_ROOTおよびTDE_CONFIGURATIONパラメータの使用に変換できます。

変換は、ファイル・システムまたはOracle Automatic Storage Management (Oracle ASM)構成のいずれかに適用されます。この手順では、WALLET_ROOT静的初期化パラメータをすでに設定していて、WALLET_ROOT/tdeディレクトリを作成していることを前提としています。
  1. すべてのウォレットをWALLET_ROOT/tdeディレクトリにコピーします。
  2. データベースを再起動します。
  3. データベースをバックアップします。
  4. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、CDBルートに接続します。
  5. TDE_CONFIGURATION動的初期化パラメータをFILEに設定します。
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE" SCOPE = "BOTH" SID = "*";
  6. コピー元のウォレットの名前を変更します。
  7. sqlnet.oraファイルから古いENCRYPTION_WALLET_LOCATION構成設定を削除します。

5.2.10 Oracle Key Vaultを使用したTDEマスター暗号化キーの管理

Oracle Key Vaultを使用して、企業全体でTDEマスター暗号化キーを管理および共有できます。

Oracle Key Vaultでは、資格証明ファイルやJavaキーストアなどのセキュリティ・オブジェクトとともに、キーを中央リポジトリに安全に格納し、これらのオブジェクトを他のTDE対応データベースと共有できます。

5.3 Oracle Databaseのシークレットの格納

シークレットとは、Oracle GoldenGateなどの外部クライアントをデータベースに統合するOracle Databaseの内部機能をサポートするデータです。

5.3.1 キーストアへのOracle Databaseのシークレットの格納について

キーストアでは、Oracle Databaseの内部機能をサポートするシークレットを格納したり、Oracle GoldenGateなどの外部クライアントを統合できます。

秘密キーはOracleの識別子規則に従った文字列である必要があります。既存のキーストアでクライアントのシークレットを追加、更新または削除できます。Oracle GoldenGateのExtractプロセスでは、データ・ファイル内およびREDOまたはUNDOログ内のデータを復号化するためにデータ暗号化キーが必要です。キーは、Oracle DatabaseとOracle GoldenGateクライアントの間でキーを共有するときに、共有シークレットによって暗号化されます。ソフトウェア・キーストアには、共有シークレットが格納されます。

サイトの要件によっては、外部キーストアが構成されている場合でも、自動的にキーストアを開く操作が必要となる場合があります。そのため、外部キー・マネージャのパスワードを自動ログイン・ソフトウェア・キーストアに格納し、外部キーストアで自動ログイン機能を有効にすることができます。また、Oracle Database側では、データベース用の資格証明を格納して、ソフトウェア・キーストアで外部ストレージ・サーバーにログインできます。

Oracle Databaseのシークレットをソフトウェア・キーストアと外部キーストアの両方に格納できます。

  • ソフトウェア・キーストア: シークレットをパスワードベースのソフトウェア・キーストア、自動ログイン・ソフトウェア・キーストア、およびローカル自動ログイン・ソフトウェア・キーストアに格納できます。シークレットを自動ログイン(または自動ログイン・ローカル)・キーストアに格納する場合は、次の点に注意してください。

    • 自動ログイン・ソフトウェア・キーストアがその対応するパスワードベースのソフトウェア・キーストアと同じロケーションにある場合、シークレットは自動的に追加されます。

    • 自動ログイン・ソフトウェア・キーストアがその対応するパスワードベースのソフトウェア・キーストアと異なるロケーションにある場合、パスワードベースのキーストアから自動ログイン・キーストアを再度作成して、2つのキーストアの同期を維持する必要があります。

  • 外部キーストア: シークレットを標準外部キー・マネージャに格納できます。

5.3.2 ソフトウェア・キーストアへのOracle Databaseのシークレットの格納

ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET文によって、シークレットの追加、シークレットの更新、およびキーストアからのシークレットの削除を行うことができます。

すべてのADMINISTER KEY MANAGEMENT文と同様に、ADMINISTER KEY MANAGEMENTまたはSYSKM管理権限が必要です。既存のシークレットについての情報を検索するために、V$CLIENT_SECRETS動的ビューを問い合せることができます。

  • シークレットの追加: 次の構文を使用します。

    ADMINISTER KEY MANAGEMENT
    ADD SECRET 'secret' FOR CLIENT 'client_identifier' 
    [USING TAG 'tag']
    [TO [[LOCAL] AUTO_LOGIN] KEYSTORE keystore_location  
    [FORCE KEYSTORE]  
    IDENTIFIED BY [EXTERNAL STORE | keystore_password]
    [WITH BACKUP [USING backup_id];
  • シークレットの更新: 次の構文を使用します。

    ADMINISTER KEY MANAGEMENT
    UPDATE SECRET 'secret' FOR CLIENT 'client_identifier' 
    [USING TAG 'tag']
     [TO [[LOCAL] AUTO_LOGIN] KEYSTORE keystore_location 
    [FORCE KEYSTORE]  
    IDENTIFIED BY [EXTERNAL STORE | keystore_password]
    [WITH BACKUP [USING backup_id];
    
  • シークレットの削除: 次の構文を使用します。

    ADMINISTER KEY MANAGEMENT
    DELETE SECRET FOR CLIENT 'client_identifier' 
    [FROM [[LOCAL] AUTO_LOGIN] KEYSTORE keystore_location 
    [FORCE KEYSTORE]  
    IDENTIFIED BY [EXTERNAL STORE | keystore_password]
    [WITH BACKUP [USING backup_id];
    

これらの文すべてで、次のように指定します。

  • secretは、格納、更新、または削除するクライアントの秘密キーです。この設定は、一重引用符(' ')で囲むか、シークレットにスペースが使用されていない場合は引用符を省略します。既存のシークレットとそれらのクライアント識別子についての情報を検索するには、V$CLIENT_SECRETS動的ビューを問い合せます。

  • client_identifierは、秘密キーの識別に使用される英数字文字列です。client_identifierにはデフォルト値はありません。この設定は、一重引用符(' ')で囲みます。

  • TO [[LOCAL] AUTO_LOGIN] KEYSTOREにより、sqlnet.oraファイル内で指定されている自動ログイン・キーストアの場所を示します。

  • tagは、格納する秘密キーについてのオプションのユーザー定義の説明です。tagは、ADDおよびUPDATE操作と一緒に使用できます。この設定は、一重引用符(' ')で囲みます。このタグは、V$CLIENT_SECRETSビューのSECRET_TAG列に表示されます。

    WITH BACKUPは、ADDUPDATEまたはDELETE操作の前にキーストアがバックアップされていない場合は必須です。backup_identifierは、バックアップについてのオプションのユーザー定義の説明です。backup_identifierは、一重引用符(' ')で囲みます。

  • [TO | FROM [[LOCAL] AUTOLLOGIN] KEYSTOREにより、qlnet.oraファイル内で設定されている、自動ログイン・キーストアまたはパスワード・キーストアの場所を指定します。

  • FORCE KEYSTOREは、自動ログインTDEウォレットが開いている(使用中)場合や、TDEウォレットが閉じられている場合に、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。

  • IDENTIFIED BYは次のいずれかの設定にできます。

    • EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。

    • keystore_passwordは、キーストアのパスワードです。

5.3.3 例: ソフトウェア・キーストアへのOracle Key Vaultパスワードの追加

ADMINISTER KEY MANAGEMENT ADD SECRET文によって、ソフトウェア・キーストアにOracle Key Vaultパスワードを追加できます。

例5-7に、既存のソフトウェア・キーストアにOracle Key Vaultパスワードをシークレットとして追加する方法を示します(たとえば、Oracle Key Vaultへの移行後、Oracle Key Vaultのパスワードを古いTDEソフトウェア・キーストアに追加して、Oracle Key Vaultへの自動オープン接続を設定できます)。

例5-7 ソフトウェア・キーストアへのOracle Databaseのシークレットの追加

ADMINISTER KEY MANAGEMENT 
ADD SECRET 'external_key_manager_password' FOR CLIENT 'OKV_PASSWORD' 
IDENTIFIED BY software_keystore_password WITH BACKUP;

ソフトウェア・キーストアからOracle Key Vaultに移行する前に、ソフトウェア・キーストアをOracle Key Vaultのそのエンドポイントの仮想ウォレットにアップロードできます。移行後、そのキーがOracle Key Vaultにあるため、古いTDEウォレットを削除できます。ウォレットがまだ存在しない場合に自動オープンのOracle Key Vaultを構成するには、次の文を実行します。

ADMINISTER KEY MANAGEMENT ADD SECRET 'external_keystore_password' 
FOR CLIENT 'OKV_PASSWORD' INTO [LOCAL] AUTO_LOGIN KEYSTORE 'WALLET_ROOT/tde';

TDE_CONFIGURATION='KEYSTORE_CONFIGUARTION=OKV'の設定は、Oracle Key Vaultへのパスワードで保護された接続用です。Oracle Key Vaultのパスワードが既存または新しく作成されたウォレットに挿入された後、TDE_CONFIGURATION設定を'KEYSTORE_CONFIGURATION=OKV|FILE'に変更します。

5.3.4 例: ソフトウェア・キーストアにシークレットとして格納されているOracle Key Vaultパスワードの変更

ADMINISTER KEY MANAGEMENT UPDATE SECRET文によって、ソフトウェア・キーストアにシークレットとして格納されているOracle Key Vaultパスワードを変更できます。

例5-8に、ソフトウェア・キーストアにシークレットとして格納されているOracle Key Vaultパスワードを変更する方法を示します。

例5-8 ソフトウェア・キーストアでのOracle Key Vaultパスワード・シークレットの変更

ADMINISTER KEY MANAGEMENT
UPDATE SECRET admin_password FOR CLIENT 'admin@myhost' 
USING TAG 'new_host_credentials' FORCE KEYSTORE
IDENTIFIED BY software_keytore_password;

次のバージョンでは、キーストアのパスワードは外部ストアにあります。

DMINISTER KEY MANAGEMENT
UPDATE SECRET admin_password FOR CLIENT 'admin@myhost' 
USING TAG 'new_host_credentials' FORCE KEYSTORE
IDENTIFIED BY EXTERNAL STORE;

5.3.5 例: ソフトウェア・キーストアにシークレットとして格納されているOracle Key Vaultパスワードの削除

ADMINISTER KEY MANAGEMENT DELETE SECRET文によって、ソフトウェア・キーストアにシークレットとして格納されているOracle Key Vaultパスワードを削除できます。

例5-9に、ソフトウェア・キーストアにシークレットとして格納されているOracle Key Vaultパスワードを削除する方法を示します。

例5-9 ソフトウェア・キーストアでのOracle Key Vaultパスワード・シークレットの削除

ADMINISTER KEY MANAGEMENT 
DELETE SECRET FOR CLIENT 'OKV_PASSWORD' 
FORCE KEYSTORE
IDENTIFIED BY password WITH BACKUP;

次のバージョンでは、キーストアのパスワードは外部ストアにあります。

ADMINISTER KEY MANAGEMENT 
DELETE SECRET FOR CLIENT 'OKV_PASSWORD'
FORCE KEYSTORE 
IDENTIFIED BY EXTERNAL STORE WITH BACKUP;

5.3.6 外部キーストアへのOracle Databaseのシークレットの格納

ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET文によって、シークレットの追加、更新および削除を行うことができます。

すべてのADMINISTER KEY MANAGEMENT文と同様に、ADMINISTER KEY MANAGEMENTまたはSYSKM管理権限が必要です。使用されている、または現在開いているキーストアに対してシークレットを追加、更新または削除するときには、ルートでADMINISTER KEY MANAGEMENTを実行する必要があります。

HSMとOracle Key Vaultの両方の外部キーストアにOracle Databaseのシークレットを格納できますが、Key VaultキーストアにHSM_PASSWORDを格納した場合は自動ログインが機能しないことに注意してください。

  • シークレットの追加: 次の構文を使用します。

    ADMINISTER KEY MANAGEMENT ADD SECRET 'secret' 
    FOR CLIENT 'client_identifier' [USING TAG 'tag']
    [TO [[LOCAL] AUTO_LOGIN] KEYSTORE keystore_location 
    [FORCE KEYSTORE]
    IDENTIFIED BY "external_key_manager_password" 
    [WITH BACKUP [USING backup_id]];
  • シークレットの更新: 次の構文を使用します。

    ADMINISTER KEY MANAGEMENT UPDATE SECRET 'secret' 
    FOR CLIENT 'client_identifier' [USING TAG 'tag'] 
    [TO [[LOCAL] AUTO_LOGIN] KEYSTORE keystore_location 
    [FORCE KEYSTORE]
    IDENTIFIED BY "external_key_manager_password" 
    [WITH BACKUP [USING backup_id]];
    
  • シークレットの削除: 次の構文を使用します。

    ADMINISTER KEY MANAGEMENT DELETE SECRET 
    FOR CLIENT 'client_identifier' 
    [FROM [[LOCAL] AUTO_LOGIN] KEYSTORE keystore_location 
    [FORCE KEYSTORE]
    IDENTIFIED BY "external_key_manager_password" 
    [WITH BACKUP [USING backup_id]];
    

これらの文すべてで、次のように指定します。

  • secretは、格納、更新、または削除するクライアントの秘密キーです。この設定は、二重引用符(' ')で囲むか、シークレットにスペースが使用されていない場合は引用符を省略します。既存のシークレットとそれらのクライアント識別子についての情報を検索するには、V$CLIENT_SECRETS動的ビューを問い合せます。

  • client_identifierは、秘密キーの識別に使用される英数字文字列です。client_identifierにはデフォルト値はありません。この設定は一重引用符(' ')で囲みます。

  • tagは、格納する秘密キーについてのオプションのユーザー定義の説明です。tagは、ADDおよびUPDATE操作と一緒に使用できます。この設定は、一重引用符(' ')で囲みます。このタグは、V$CLIENT_SECRETSビューのSECRET_TAG列に表示されます。

  • [TO | FROM [[LOCAL] AUTO_LOGIN] KEYSTOREにより、外部キーストア用に使用するキーストアの場所を指定します。

  • external_key_manager_passwordは、Oracle Key VaultまたはOCI Vault - Key Managementの外部キーストア・マネージャ用です。このパスワードは二重引用符で囲みます。Oracle Key Vaultの場合は、Oracle Key Vaultクライアントのインストール時に指定したパスワードを入力します。その時点でパスワードが指定されていない場合、ADMINISTER KEY MANAGEMENT文のパスワードはNULLになります。

5.3.7 例: 外部キーストアへのOracle Databaseのシークレットの追加

ADMINISTER KEY MANAGEMENT ADD SECRET文によって、外部キーストアにOracle Databaseのシークレットを追加できます。

例5-10に、ユーザーのパスワードを外部キーストアに追加する方法を示します。

例5-10 外部キーストアへのOracle Databaseのシークレットの追加

ADMINISTER KEY MANAGEMENT ADD SECRET 'password' 
FOR CLIENT 'admin@myhost' USING TAG 'myhost admin credentials' 
IDENTIFIED BY "external_key_manager_password";

次のバージョンでは、キーストア・パスワードが外部ストアにあるため、IDENTIFIED BYにはEXTERNAL STORE設定が使用されます。

ADMINISTER KEY MANAGEMENT ADD SECRET 'password' 
FOR CLIENT 'admin@myhost' USING TAG 'myhost admin credentials' 
IDENTIFIED BY EXTERNAL STORE;

5.3.8 例: 外部キーストアでのOracle Databaseのシークレットの変更

ADMINISTER KEY MANAGEMENT MANAGEMENT UPDATE SECRET文によって、外部キーストアにあるOracle Databaseシークレットを変更できます。

例5-11に、外部キーストアにシークレットとして格納されているパスワードを変更する方法を示します。

例5-11 外部キーストアでのOracle Databaseのシークレットの変更

ADMINISTER KEY MANAGEMENT MANAGEMENT UPDATE SECRET 'password2' 
FOR CLIENT 'admin@myhost' USING TAG 'New host credentials' 
IDENTIFIED BY "external_key_manager_password";

次のバージョンでは、キーストアのパスワードは外部ストアにあります。

ADMINISTER KEY MANAGEMENT MANAGEMENT UPDATE SECRET 'password2' 
FOR CLIENT 'admin@myhost' USING TAG 'New host credentials' 
IDENTIFIED BY EXTERNAL STORE;

5.3.9 例: 外部キーストアでのOracle Databaseのシークレットの削除

ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT文によって、外部キーストアにあるOracle Databaseシークレットを削除できます。

例5-12に、外部キーストアにシークレットとして格納されている外部キー・マネージャ・パスワードを削除する方法を示します。

例5-12 外部キーストアでのOracle Databaseのシークレットの削除

ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT 'admin@myhost' 
IDENTIFIED BY "external_key_manager_password";

次のバージョンでは、キーストアのパスワードは外部ストアにあります。

ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT 'admin@myhost' 
IDENTIFIED BY EXTERNAL STORE;

5.3.10 外部キー・マネージャへの自動オープン接続の構成

外部キー・マネージャは、自動ログイン機能を使用するように構成できます。

5.3.10.1 外部キー・マネージャへの自動オープン接続について

外部キー・マネージャへの自動オープン接続は、自動ログイン・キーストアに外部キーストア資格証明を格納します。

キーストア・パスワードの入力を求めずにキーストアをオープンできるように、外部キー・マネージャへの接続を構成できます。この構成は、Oracle Real Application Clusters (Oracle RAC)環境において不可欠であり、Oracle Data Guardスタンバイ・データベースに推奨されます。この構成により、システム全体のセキュリティが低下することに注意してください。ただし、この構成は、無人操作または自動操作をサポートし、キー管理のために外部キーストアに登録されているTDE対応データベースが自動起動できるデプロイメントに役立ちます。

問合せSELECT * FROM V$ENCRYPTION_WALLETを実行すると、自動ログイン外部キーストアが自動的に開くため、注意してください。たとえば、自動ログイン外部キーストアを構成しているとします。キーストアを閉じて、V$ENCRYPTION_WALLETビューを問い合せると、出力にキーストアが開かれていることが示されます。これは、V$ENCRYPTION_WALLETが自動ログイン外部キーストアを開き、自動ログイン・キーストアのステータスを表示したためです。

外部キーストアの自動ログイン機能を有効にするには、外部キーストアの資格証明を自動ログイン・ウォレットに格納する必要があります。

ADMINISTER KEY MANAGEMENT文の使用においては、概念上は、クライアント・シークレットに対して機能するコマンドのセットとして次の2つがあります。

  • 現在使用中のウォレット(つまり、アクティブなTDEマスター暗号化キーが含まれているウォレット)に対して機能するADMINISTER KEY MANAGEMENTコマンド。
  • アクティブなTDEマスター暗号化キーの格納に現在使用されていないウォレットに対して機能するADMINISTER KEY MANAGEMENTコマンド。自動ログイン外部キーストアを構成する場合は、この手法を使用することをお薦めします。
5.3.10.2 外部キー・マネージャへの自動オープン接続の構成

自動オープン接続を構成するには、ADMINISTER KEY MANAGEMENT文を使用して、認証するクライアント・シークレットを外部キー・マネージャに対して追加または更新する必要があります。

この手順を開始する前に、外部キーストアを構成済であることを確認します。
この手順では、作成したウォレットにキーは含まれていません。それにはクライアント・シークレットのみが含まれています。そのため、このウォレットに対してV$ENCRYPTION_WALLET動的ビューを問い合せると、STATUS列にはOPENではなくOPEN_NO_MASTER_KEYと表示されます(このウォレットにはクライアント・シークレットのみが含まれているため)。
  1. TDEウォレットの場所がまだない場合には、これを含めるようにinit.oraファイルのWALLET_ROOTパラメータを再構成します。

    以前に外部キー・マネージャを使用するように移行していた場合には、TDEウォレットの場所はすでに存在している可能性があります。

    たとえば:

    WALLET_ROOT=/etc/ORACLE/WALLETS/orcl
  2. TDEウォレットのシークレットを追加または更新します。

    シークレットは外部キーストア・パスワードであり、クライアントはOKV_PASSWORDです。OKV_PASSWORDは、外部キー・マネージャ・パスワードをTDEウォレットのシークレットとして表現するために使用されるOracle定義のクライアント名です。

    たとえば:

    ADMINISTER KEY MANAGEMENT ADD SECRET 'external_key_manager_password' 
    FOR CLIENT 'OKV_PASSWORD' 
    TO LOCAL AUTO_LOGIN KEYSTORE TDE_wallet_location 
    WITH BACKUP;

    この例では、次のようになります。

    • TDE_wallet_locationは、前のステップ1で定義したWALLET_ROOTの場所内にあるTDEウォレットの場所です。

      CDBルートおよび統一モードで構成されたPDBの場合、TDE_wallet_locationの場所に使用する値はWALLET_ROOT/tdeです。

      分離モードで構成されたPDBの場合、TDE_wallet_locationの場所に使用される値は、WALLET_ROOT/pdb_guid/tdeです。PDBに接続している場合は、SELECT GUID FROM V$PDBS;という問合せを実行して、このGUIDを見つけます。

    • LOCALを指定すると、外部キー・マネージャの資格証明を保持するために、ローカル自動ログイン・ウォレット・ファイルcwallet.ssoが作成されます。このウォレットは、それが作成されたホストに関連付けられています。

      Oracle Real Application Clusters環境の場合は、Oracle RACノードごとにホスト名が異なるため、LOCALキーワードを省略しますが、それらすべてのノードで同じ外部キー・マネージャが使用されます。Oracle RACインスタンスのローカル自動ログイン・ウォレットを構成した場合は、cwallet.ssoファイルが作成された最初のOracle RACノードのみ、外部キー・マネージャ資格証明にアクセス可能になります。最初のノードからではなく別のノードからTDEウォレットを開こうとすると、cwallet.ssoが自動的に開かれるという問題が発生するため、自動ログイン外部キーストアを自動で開くことができなくなります。この制限事項が当てはまるのは、Oracle RACクラスタのcwallet.ssoファイルの保持に共有の場所を使用している場合です。これは、LOCALの使用が有効なのは、Oracle RAC環境の各ノードに別個のcwallet.ssoファイル(同じ資格証明を含む)がある場合のみであるためです。

この段階で、TDE操作が次に実行されるときに、外部キー・マネージャの自動ログインTDEウォレットが自動的に開きます。TDE操作の例としては、次のようなV$ENCRYPTION_WALLETビューへの問合せがあります。

SELECT * FROM V$ENCRYPTION_WALLET;

5.4 キーストアへのOracle GoldenGateのシークレットの格納

Oracle GoldenGateシークレットを透過的データ暗号化キーストアに格納できます。

5.4.1 キーストアへのOracle GoldenGateのシークレットの格納について

キーストアを使用して、ツールおよびOracle GoldenGateなどの外部クライアントの秘密キーを格納できます。

秘密キーはOracleの識別子規則に従った文字列である必要があります。既存のキーストアでクライアントのシークレットを追加、更新または削除できます。この項では、Oracle GoldenGateのExtract(抽出)プロセスでクラシック・キャプチャ・モードを使用して、透過的データ暗号化によって暗号化されたデータを取得する方法について説明します。

Extractがクラシック・キャプチャ・モードの場合、TDEをサポートするには次のキーの交換が必要です。

  • Extractプロセスのクラシック・キャプチャ・モードでのTDEによるOracle GoldenGateのサポートでは、Oracle DatabaseとExtractプロセスでシークレットを共有して、交換される機密情報を暗号化する必要があります。共有シークレットは、Oracle DatabaseおよびOracle GoldenGateドメインに安全に格納されます。共有シークレットは、ソフトウェア・キーストアまたは外部キーストアにデータベース・シークレットとして格納されます。

  • 復号化キーは、Oracle DatabaseおよびOracle GoldenGateドメインに安全に格納されている、共有シークレットとして知られているパスワードです。共有シークレットを所有している当事者のみが、表キーおよびREDOログ・キーを復号化できます。

共有シークレットの構成後、共有シークレットを使用してOracle GoldenGate Extractによってデータが復号化されます。Oracle GoldenGate Extractでは、TDEマスター暗号化キー自体は扱われず、キーストア・パスワードも認識しません。TDEマスター暗号化キーおよびパスワードは、Oracle Database構成内に保持されます。

Oracle GoldenGate Extractでは、遷移時にOracle GoldenGateによって保持されるOracle GoldenGate証跡ファイルに、復号化されたデータが書き込まれるのみです。サイトのオペレーティング・システムの標準セキュリティ・プロトコルと、Oracle GoldenGate AES暗号化オプションを使用して、このファイルを保護できます。Oracle GoldenGateでは、暗号化データは破棄ファイル(DISCARDFILEパラメータで指定)には書き込まれません。ENCRYPTEDという語は、使用中のすべての破棄ファイルに書き込まれます。

Oracle GoldenGateでは、暗号化データの処理時にキーストアが開いている必要はありません。TDE操作に対するOracle GoldenGate機能のパフォーマンス上の影響はありません。

5.4.2 Oracle GoldenGate Extractのクラシック・キャプチャ・モードのTDE要件

Oracle GoldenGate Extractで透過的データ暗号化の取得をサポートするための要件を満たしていることを確認します。

要件は次のとおりです。

  • 高いセキュリティ基準を維持するには、Oracle GoldenGateのExtractプロセスがOracleユーザー(Oracle Databaseを実行するユーザー)の一部として実行されるようにします。これにより、キーはOracleユーザーと同じ権限によってメモリー内で保護されます。

  • Oracle GoldenGateのExtractプロセスを、Oracle Databaseインストールと同じコンピュータで実行します。

5.4.3 Oracle GoldenGate用のキーストア・サポートの構成

Oracle GoldenGateのために透過的データ暗号化キーストアのサポートを構成するには、キーストアの共有シークレットを使用します。

5.4.3.1 ステップ1: キーストアの共有シークレットを決定する

キーストアの共有シークレットはパスワードです。

  • Oracle Databaseのパスワード基準を満たす(または超える)共有シークレットを決定します。

このパスワードは、Oracle GoldenGate Extractと連携するように透過的データ暗号化を構成する作業を担当する、信頼できる管理者以外のユーザーと共有しないでください。

5.4.3.2 ステップ2: TDEによるOracle GoldenGateのサポートのためにOracle Databaseを構成する

DBMS_INTERNAL_CLKM PL/SQLパッケージを使用して、Oracle GoldenGateのためにTDEのサポートを構成できます。

  1. SYSDBA管理権限を持つユーザーSYSとしてデータベース・インスタンスにログインします。

    たとえば

    sqlplus sys as sysdba
    Enter password: password
    Connected.
    
  2. Oracle Databaseに付属のDBMS_INTERNAL_CLKM PL/SQLパッケージをロードします。

    たとえば:

    @?/app/oracle/product/12.2/rdbms/admin/prvtclkm.plb
    

    prvtclkm.plbファイルでも、Oracle GoldenGateによってOracle Databaseから暗号化データを抽出できます。

  3. DBMS_INTERNAL_CLKM PL/SQLパッケージに対するEXECUTE権限をOracle GoldenGate Extractデータベース・ユーザーに付与します。

    たとえば:

    GRANT EXECUTE ON DBMS_INTERNAL_CLKM TO psmith;
    

    この手順によって、Oracle DatabaseとOracle GoldenGate Extractで情報を交換できます。

  4. SQL*Plusを終了します。

5.4.3.3 ステップ3: TDE GoldenGate共有シークレットをキーストアに格納する

ADMINISTER KEY MANAGEMENT文によって、TDE GoldenGate共有シークレットをキーストアに格納できます。

この手順を開始する前に、「TDEウォレットの構成」」と「外部キーストアの構成」に基づいて、TDEソフトウェア・キーストアまたは外部キーストアを構成したことを確認してください。
  1. 次の構文を使用して、キーストアにOracle GoldenGateのTDEキーを設定します。

    ADMINISTER KEY MANAGEMENT ADD|UPDATE|DELETE SECRET 'secret' 
    FOR CLIENT 'secret_identifier' [USING TAG 'tag'] 
    IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']];
    

    ここでは次のように指定します。

    • secretは、格納、更新、または削除するクライアントの秘密キーです。この設定は、一重引用符(' ')で囲みます。

    • secret_identifierは、秘密キーの識別に使用される英数字の文字列です。secret_identifierにはデフォルト値はありません。この設定は、一重引用符(' ')で囲みます。

    • tagは、格納する秘密キーについてのオプションのユーザー定義の説明です。tagは、ADDおよびUPDATE操作と一緒に使用できます。この設定は、一重引用符(' ')で囲みます。このタグは、V$CLIENT_SECRETSビューのSECRET_TAG列に表示されます。レポート用のTDEマスター暗号化キーのカスタム属性の作成

    • keystore_passwordは、構成されているキーストアのパスワードです。

    • WITH BACKUPは、ADDUPDATEまたはDELETE操作の前にキーストアがバックアップされていない場合は必須です。backup_identifierは、バックアップについてのオプションのユーザー定義の説明です。backup_identifierは、一重引用符(' ')で囲みます。

    次の例は、秘密キーをキーストアに追加して、キーストアと同じディレクトリにバックアップを作成します。

    ADMINISTER KEY MANAGEMENT ADD SECRET 'some_secret' 
    FOR CLIENT 'ORACLE_GG' USING TAG 'GoldenGate Secret' 
    IDENTIFIED BY password WITH BACKUP USING 'GG backup';
    
  2. 作成したエントリを確認します。

    たとえば:

    SELECT CLIENT, SECRET_TAG FROM V$CLIENT_SECRETS WHERE CLIENT = 'ORACLEGG';
    
    CLIENT   SECRET_TAG
    -------- ------------------------------------------
    ORACLEGG some_secret
    
  3. ログ・ファイルを切り換えます。

    CONNECT / AS SYSDBA
    
    ALTER SYSTEM SWITCH LOGFILE;
    

関連項目:

5.4.3.4 ステップ4: TDE Oracle GoldenGate共有シークレットをExtractプロセスに設定する

GoldenGateソフトウェア・コマンド・インタフェース(GGSCI)ユーティリティによって、TDE Oracle GoldenGate共有シークレットをExtractプロセスに設定します。

  1. GGSCIユーティリティを起動します。

    たとえば:

    ggsci
    
  2. GGSCIユーティリティで、ENCRYPT PASSWORDコマンドを実行してOracle GoldenGate Extractパラメータ・ファイル内の共有シークレットを暗号化します。

    ENCRYPT PASSWORD shared_secret algorithm ENCRYPTKEY keyname
    

    ここでは次のように指定します。

    • shared_secretは、キーストアの共有シークレットを決定するときに作成したクリアテキストの共有シークレットです。この設定では大文字と小文字が区別されます。

    • algorithmは、AES暗号化を指定する次のいずれかの値です。

      • AES128

      • AES192

      • AES256

    • keynameは、ENCKEYS参照ファイルの暗号化キーの論理名です。Oracle GoldenGateでは、この名前を使用して、ENCKEYSファイル内で実際のキーが参照されます。

    たとえば:

    ENCRYPT PASSWORD password AES256 ENCRYPTKEY mykey1
    
  3. Oracle GoldenGate Extractパラメータ・ファイルで、DECRYPTPASSWORDオプションを指定してDBOPTIONSパラメータを設定します。

    入力として、暗号化共有シークレットと、Oracle GoldenGateによって生成されたか、またはユーザーが定義した復号化キーを指定します。

    DBOPTIONS DECRYPTPASSWORD shared_secret algorithm ENCRYPTKEY keyname
    

    ここでは次のように指定します。

    • shared_secretは、キーストアの共有シークレットを決定するときに作成したクリアテキストの共有シークレットです。この設定では大文字と小文字が区別されます。

    • algorithmは、AES暗号化を指定する次のいずれかの値です。

      • AES128

      • AES192

      • AES256

    • keynameは、ENCKEYS参照ファイルの暗号化キーの論理名です。

      たとえば:

      DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1