18 Oracle Key Vaultマスター暗号化キーの管理

セキュリティ・オブジェクトの管理には、セキュリティ・オブジェクトのアップロードとダウンロード、永続マスター暗号化キー・キャッシュの管理、ユーザー定義のTDEキーの使用などがあります。

18.1 Oracle Key Vaultから新しいTDE対応データベースへの接続の構成

Oracle Key Vaultと、まだTransparent Data Encryption用に構成されていないデータベースの間の接続を構成できます。

18.1.1 Oracle Key Vaultから新しいTDE対応データベースへの接続の構成について

Oracle Key Vaultと、まだTDE用に構成されていないデータベースの間の接続を構成できます。

接続の構成を始める前に、Oracle Key Vaultインストール環境がデータベース・ランタイム環境と同じであることを確認してください。環境変数ORACLE_HOMEORACLE_BASEおよびORACLE_SIDは、svrctlおよびオペレーティング・システム環境変数で同じ値に設定する必要があります。これは、エンドポイントのエンロールにOracle Key Vault RESTfulサービス・ユーティリティを使用している場合にも該当します。

TDEおよびOracle Key Vaultと連携できるようにOracle Data Guardを構成する方法の詳細は、次を参照してください。

TDEおよびOracle Key Vaultと連携するようにOracle Real Application Clusters (Oracle RAC)を構成する方法の詳細は、次を参照してください。

18.1.2 Transparent Data Encryptionエンドポイント統合の制限事項

このタイプのTransparent Data Encryption(TDE)エンドポイント統合では、バージョンが非互換の場合、問題が発生する可能性があります。

TDEエンドポイントの統合の制限事項は次のとおりです。

  • 同じコンピュータ上のすべてのエンドポイントは、同じバージョンのOracle Key Vaultライブラリを使用する必要があります。liborapkcs.soファイルのコンピュータごとに1つの場所(/opt/oracle/expapi/64/hsm/oracle/1.0.0/liborapkcs.so)があります。

  • 同じコンピュータ上では、Oracleデータベースに対して同じ外部キー・マネージャ(Oracle Key VaultまたはHSM)を使用する必要があります。1つのOracleデータベースにOracle Key Vaultを使用し、別のOracleデータベースにHSMを使用すると、サブツリー(/opt/oracle/expapi/64/hsm/)の走査時にOracle Databaseが最初のPKCS#11ライブラリを取得するため、誤ったPKCS#11ライブラリがロードされる可能性があります。

注意:

TDEを構成した後はウォレットからキーを削除することや、ウォレット自体を削除することがないようにしてください。キーを失うと暗号化データが失われ、データベースの通常の機能に支障が及びます。これは、次のシナリオでも同様です。
  • システムに暗号化データがない場合

  • 暗号化されたすべてのデータが復号化されている場合

  • キーとウォレットをハードウェア・セキュリティ・モジュールに移行した場合

18.1.3 ステップ1: Oracle Key Vaultサーバー環境の構成

接続を構成する前に、Oracleの設定が正しいことを確認する必要があります。

これらの設定には、Oracle環境変数およびOracle COMPATIBILITYパラメータが含まれます。
  1. データベースのエンドポイントがインストールされているサーバーにログインします。
  2. Oracleプロセスを手動で開始する前に、ORACLE_BASE環境変数が設定されていることを確認します。
    このステップは非常に重要です。ORACLE_BASE環境変数が存在しない場合は、$ORACLE_BASE/okv/$ORACLE_SID/okvclient.oraファイルからkey_vault_endpoint_installation_dir/conf/okvclient.oraファイルへのソフト・リンクを作成してください。Oracle Real Application Clusters環境のすべてのデータベース・インスタンスでこのステップを実行する必要があります。
  3. COMPATIBILITY初期化パラメータが11.2.0.0以降に設定されていることを確認します。
  4. Transparent Data Encryption (TDE)データを含むTDE対応データベース用にエンドポイントをエンロールおよびプロビジョニングします。
    エンドポイントを最初にエンロールするときに、TDEとの統合用のエンドポイント・タイプとしてORACLE_DBを選択する必要があります。
  5. ウォレットをそのエンドポイントのデフォルト・ウォレットとして定義することにより、エンドポイントが使用する仮想ウォレットにアクセスできることを確認します。
    Oracle Real Application Clusters (Oracle RAC)およびOracle Data Guard環境では、すべてのインスタンスのエンドポイントが同じデフォルト・ウォレットを共有します。エンドポイントは、読取り、変更、およびウォレット管理アクセス権を持っている必要があります。
  6. Oracle Databaseのリリースに応じて、暗号化ウォレットの場所を構成します。
    • リリース12.2.0.1以前の場合は、次のように、Oracle Key Vaultを指すようにこのデータベースのsqlnet.oraファイルを構成します。
      ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=OKV))
      

      デフォルトで、sqlnet.oraファイルは、ORACLE_HOME/network/adminディレクトリ、またはTNS_ADMIN環境変数で設定された場所にあります。

    • リリース18c以降では、次のパラメータを構成します。
      • WALLET_ROOTを設定して、Oracle Key Vaultクライアントのインストール・ディレクトリを定義します。
      • Oracle Key Vaultの場合は、TDE_CONFIGURATIONOKVに設定します。

      エンドポイントは、PKCS#11ライブラリ・サポートを使用してTDEマスター暗号化キーを管理します。root.shスクリプト(okvclient_installation_directory/binディレクトリ内)を実行して、エンドポイントとOracle Key Vault間の通信を容易にするPKCS#11ライブラリをデプロイします。

      この段階で、Oracleデータベースは、キーの集中管理にOracle Key Vaultを使用します。すべてのTDEコマンドおよび文に、エンドポイント・エンロール・プロセス中に指定されたOracle Key Vaultエンドポイント・パスワードを使用します。

  7. SQL*Plusの場合、データベースに再接続します。
    変更は、現在のSQL*Plusセッションをログアウトし、再度接続してから表示されます。
  8. V$ENCRYPTION_WALLET動的ビューを問い合せて、sqlnet.oraファイル内のMETHOD_DATAの設定が変更されたことを確認します。
    SELECT * FROM V$ENCRYPTION_WALLET;
    

    これで、問合せの出力にOKVが表示されるようになります。

TDE構成はここで完了です。これで、表の暗号化や、データベースへの暗号化された表領域の作成を行うことができます。外部キー・マネージャではTDE列暗号化を使用しないことをお薦めします。(これはOracle Key Vaultだけでなく、すべてのサード・パーティ製キー・マネージャおよびHSMにも当てはまります。)残りのTDE構成とともにsqlnet.oraファイルが正しく構成されている場合、次のいずれかのSQL文を使用して暗号化キーを設定すると、TDEマスター暗号化キーがOracle Key Vaultに作成されます。
  • ALTER SYSTEM SET [ENCRYPTION] KEY IDENTIFIED BY "password";
  • ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY IDENTIFIED BY "password" WITH BACKUP;

これら両方のSQL文のパスワードは、Oracle Key Vaultクライアント・ソフトウェアをインストールしたときに定義したパスワードです。その時点でパスワードを定義しなかった場合、これら2つの文のパスワードはNULLになります。

18.1.4 ステップ2: Transparent Data EncryptionとOracle Key Vaultの統合

この統合により、Oracle Key VaultでTDEマスター暗号化キーを直接管理できます。

  1. Oracle Key Vaultクライアントがインストールされているサーバーにログインしていることを確認します。
  2. okvclient_installation_directory/binからrootスクリプトを実行します。

    このスクリプトは永続マスター暗号化キー・キャッシュ機能をOracle Key Vault PKCS#11ライブラリに実装し、断続的なネットワークの中断またはOracle Key Vaultのアップグレード時のデータベースの可用性を向上させます。

    • UNIX: rootスクリプトはPKCS#11ライブラリを /opt/oracle/extapi/64/hsm/oracle/1.0.0にコピーし、ファイル・アクセス権限を最小限に抑えます。
    • Windows: root.batスクリプトを実行して、liborapkcs.dllファイル(libディレクトリ内)をC:\oracle\extapi\64\hsm\oracle\1.0.0ディレクトリにコピーします。要求に応じてデータベースのバージョンを指定します。
  3. データベース上のパスワード保護されたウォレットの場合は、ウォレットを開きます。(自動ログイン・ウォレットは自動的に開かれます。)
    • Oracle Database 11gリリース2の場合: ALTER SYSTEMシステム権限を付与されたユーザーとして、次を実行します。
      ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Oracle_Key_Vault_endpoint_password"; 
      
    • Oracle Database 12c以降の場合: SYSKM管理権限を付与されたユーザーとして、次を実行します。
      ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "Oracle_Key_Vault_endpoint_password" WITH BACKUP; 
      
  4. マスター暗号化キーを設定します。
    • Oracle Database 11gリリース2の場合:
      ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "Key_Vault_endpoint_password"; 
      
    • Oracle Database 12c以降の場合:
      ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY IDENTIFIED BY "Key_Vault_endpoint_password" WITH BACKUP;
      

18.2 既存のTDEウォレットのOracle Key Vaultへの移行

移行したTDEウォレットを使用して、TDEによって以前に暗号化されたデータベースの内容をリストアできます。

18.2.1 既存のTDEウォレットのOracle Key Vaultへの移行について

sqlnet.oraファイルを使用すると、既存のTDEウォレットをOracle Key Vaultに移行できます。

Transparent Data Encryption (TDE)ウォレットがすでに存在する場合は、Oracle Key Vaultを認識するようにsqlnet.oraファイルを変更してから、既存のTDEウォレットをKey Vaultに移行する必要があります。

Oracle Walletは、現在のTDEマスター暗号化鍵とともに、TDEマスター暗号化鍵をローテーションさせる毎回のキー更新操作によって上書きされた、過去のTDEマスター暗号化鍵を保持しています。この過去のTDEマスター暗号化キーは、過去のTDEマスター暗号化キーの1つを使用して作成されたOracle Databaseバックアップをリストアする際に助けになります。Oracle WalletファイルからOracle Key VaultへのTDE移行の際、Key Vaultは新しいマスター暗号化キーを生成します。このマスター暗号化キー生成の後は、Oracle Key Vaultがすべての新しいキーを保持します。

移行を実行する前に、Oracle WalletをOracle Key Vaultにアップロードすることをお薦めします。これにより、移行を開始する前に、過去のすべてのキー情報とともにウォレットのバックアップを保管できます。移行が完了したら、クライアント・システムで、手動で古いウォレットを削除してください。

共有サーバーまたはOracle Real Application Clusters (Oracle RAC)構成で運用している場合は、データベースを再起動して、新しいTDEマスター暗号化キーが、共有サーバー構成のすべてのエンドポイント・データベース・ノードに更新されるようにする必要があります。

18.2.2 既存のTDEウォレットのOracle Key Vaultへの移行

okvutil uploadコマンドを使用して、既存のTDEウォレットをOracle Key Vaultに移行できます。

  1. 移行するデータが含まれているデータベースをバックアップします。

  2. エンドポイントのエンロールを完了します。

  3. まだ実行していない場合は、okvutil uploadコマンドを使用して既存のOracleウォレットをOracle Key Vaultにアップロードします。

    このステップにより、Oracle Key Vaultに、履歴のTDEマスター暗号化キーがすべて含まれているウォレットのコピーが確実に保持されます。

  4. HSMのOracle Databasesqlnet.oraファイルを次のように構成します。

    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=HSM)(METHOD_DATA=(DIRECTORY=wallet_location)))
    

    デフォルトで、sqlnet.oraファイルは、ORACLE_HOME/network/adminディレクトリ、またはTNS_ADMIN環境変数で設定された場所にあります。

  5. SQL*Plusの場合、データベースに再接続します。

    変更は、データベース・セッションを再起動するまで表示されません。

  6. V$ENCRYPTION_WALLET動的ビューを問い合せて、sqlnet.oraファイル内のMETHOD_DATAの設定が変更されたことを確認します。

    SELECT * FROM V$ENCRYPTION_WALLET;
    

    これで、問合せの出力にMETHOD=HSMが表示されます。

  7. エンドポイントがOracle Database 11gリリース2の場合は、次のように、ローカルのOracle Walletを閉じてHSMウォレットを開きます。

    1. 次のステップを使用して、ローカルのOracle Walletを閉じます。

      1. 自動ログイン・ウォレットが開いている場合、次のコマンドを実行します。

        oracle$ cd wallet_location
        oracle$ mv cwallet.sso cwallet.sso.bak
        sqlplus sys as sysdba
        Enter password: password 
        SQL> ALTER SYSTEM SET WALLET CLOSE;
      2. パスワードで保護されたウォレットが開いている場合は、SQL*Plusで次の文を実行します。

        ALTER SYSTEM SET WALLET CLOSE IDENTIFIED BY "wallet_password";
    2. SQL*PlusでHSMウォレットを開きます。HSM_connect_stringは、okvclient.jarファイルがデプロイされたときに提供されるパスワードです。

      ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "HSM_connect_string";
  8. TDEウォレットからOracle Key Vaultに移行します。

    • Oracle Database 11gリリース2の場合:

      エンドポイント・クライアント・ソフトウェアのインストール時にウォレットのパスワードを入力した場合は、SQL*Plusで次の文を実行します。

      ALTER SYSTEM SET ENCRYPTION KEY 
      IDENTIFIED BY "endpoint_password" 
      MIGRATE USING "wallet_password"; 
      

      エンドポイント・クライアント・ソフトウェアのインストール時に自動ログイン・オプションを選択した場合は、次の文を実行します。

      ALTER SYSTEM SET ENCRYPTION KEY 
      IDENTIFIED BY "NULL" 
      MIGRATE USING "wallet_password";
    • Oracle Database 12c以上の場合は、SYSKM管理権限を付与されたユーザーとして、次を実行します。

      ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY IDENTIFIED BY "endpoint_password" MIGRATE USING "<wallet password>" with backup; 
      

      ADMINISTER KEY MANAGEMENT文でWITH BACKUP句は必要ですが、Oracle Key VaultではTDEによって無視されます。

  9. ウォレットを開きます。

    エンドポイントでOracle Key Vaultに接続するパスワードが必要な場合は、パスワードを入力します。

    • Oracle Database 11gリリース2の場合:

      ALTER SYSTEM SET ENCRYPTION WALLET OPEN 
      IDENTIFIED BY "Key_Vault_endpoint_password"; 
      
    • Oracle Database12c以上の場合

      ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
      IDENTIFIED BY "Key_Vault_endpoint_password";
      
  10. 移行の完了後、自動ログイン・ウォレットを使用している場合、cwallet.sso.bakファイルの名前をcwallet.ssoに変更してそれを再有効化します。

18.2.3 TDEによって以前に暗号化されたデータベース内容のOracle Walletを使用したリストア

Oracleウォレットをダウンロードしたエンドポイントでリストア・プロセスを実行します。

Oracleデータベース・エンドポイントが、ローカルのOracle WalletファイルからOracle Key Vaultの使用に変換された場合は、このローカル・ウォレット・ファイルにあるキーを使用して暗号化されたバックアップをリストアする必要がある場合があります。
この場合、Oracle Key Vaultから、リストア・プロセスでバックアップを復号化する際に使用するローカル・ウォレット・ファイルに、必要なキーをダウンロードする必要があります。たとえば、Finance_DBデータベースを最近移行し、移行前のウォレットをアップロードした後、Oracle Key Vaultへのオンライン・マスター・キーが使用されるようになったとします。システム障害のために、Oracle Key Vaultへの移行前に取ったデータベース・バックアップからリストアする必要が生じた場合も、以前にアップロードしたFinance_DBウォレット・データが含まれるOracle仮想ウォレットからダウンロードしたOracle Walletを使用して、データベースの内容をリストアできます。
  1. okvutil downloadコマンドを使用して、Oracle Key VaultからこのOracle Walletをダウンロードします。
  2. Oracle Walletをダウンロードしたエンドポイントで、sqlnet.oraファイルを編集して次のように設定します。
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=wallet_file_path)))
    

    ENCRYPTION_WALLET_LOCATION設定は1行で記述します。

  3. 指定したパスワードを使用して、ダウンロードしたウォレットを開きます。
    • Oracle Database 11gリリース2の場合は、ALTER SYSTEMシステム権限を付与されたユーザーとして、次を実行します。

      ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "wallet_password"; 
      
    • Oracle Database 12c以上の場合は、SYSKM管理権限を付与されたユーザーとして、次を実行します。

      ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "wallet_password";
      

    ウォレットを開くと、サーバーは更新されたsqlnet.oraファイルの内容を読み取ることができます。この時点で、エンドポイント・サーバーは元のバージョンのウォレットとともに実行できる状態にリストアされました。

18.3 永続マスター暗号化キー・キャッシュの使用

永続マスター暗号化キー・キャッシュ機能を使用すると、Oracle Key Vaultサーバーを使用できない場合にデータベースを稼働させることができます。

18.3.1 永続マスター暗号化キー・キャッシュについて

永続マスター暗号化キー・キャッシュによって、TDEマスター暗号化キーの可用性が確保されます。

Oracle Key Vaultサーバーの状態への依存を減らすことでこれを実現します。

TDEマスター暗号化キーは、インメモリー・キャッシュに加えて永続マスター暗号化キー・キャッシュにキャッシュされ、データベース・プロセス全体でマスター暗号化キーを使用できるようにします。これにより、データベースが新しいプロセスごとに、またはREDOログの切替えやデータベースの起動操作のたびに、Oracle Key Vaultサーバーと通信する必要がなくなります。

TDEマスター暗号化キーの可用性を保証する利点は、次のとおりです。

  • アップグレード、プライマリ/スタンバイ構成、スイッチオーバー、フェイルオーバー、およびOracle Key Vaultの再起動操作が必要なその他の手順におけるエンドポイントの継続的な運用

  • 1つのデータベースの複数のセッションが同一のマスター暗号化キーをリクエストしたときのOracle Key Vaultサーバーの負荷の削減

  • Oracle Key Vaultのスケーラビリティの改善

18.3.2 Oracle Key Vaultの永続マスター暗号化キー・キャッシュのアーキテクチャについて

Oracle Key Vaultの永続マスター暗号化キー・キャッシュは、Oracle Key VaultのPKCS#11ライブラリに実装されます。

永続マスター暗号化キー・キャッシュ機能が構成されている場合、Oracle Key Vaultから最初のマスター暗号化キーが取得されるときに、Oracle Key VaultのPKCS#11ライブラリによって永続マスター暗号化キー・キャッシュが作成されます。

永続マスター暗号化キー・キャッシュは、Oracle Key Vaultのインストール方法に応じて、自動ログイン・ウォレットまたはパスワード・ベースのウォレットになります。
  • Oracle Key Vaultがパスワードを指定してインストールされている場合、永続マスター暗号化キー・キャッシュはパスワードベースのウォレットになります。

  • Oracle Key Vaultがパスワードを指定せずにインストールされている場合、永続マスター暗号化キー・キャッシュは自動ログイン・ウォレットになります。

PKCS#11ライブラリは、インメモリー・マスター暗号化キー・キャッシュも実装しています。インメモリー・マスター暗号化キー・キャッシュ機能が構成されている場合、マスター暗号化キーは、ライブラリをメモリーにロードしたプロセスのプロセス・メモリーにキャッシュされます。インメモリー・マスター暗号化キー・キャッシュと永続マスター・キー・キャッシュは互いに独立しています。これらのキャッシュは、個別に有効化および無効化できます。

暗号化と復号化を伴う操作の場合、PKCS#11はインメモリー・マスター暗号化キー・キャッシュでマスター暗号化キーを検索しようとします。見つからない場合、PKCS#11は永続マスター暗号化キー・キャッシュでマスター暗号化キーを検索します。マスター暗号化キーがインメモリーまたは永続マスター暗号化キー・キャッシュで見つからない場合は、Oracle Key Vaultサーバーから取得します(サーバーがオンラインの場合)。

18.3.3 インメモリーおよび永続マスター暗号化キー・キャッシュでのマスター暗号化キーのキャッシュ

マスター暗号化キーは、作成または別の場所からフェッチされた後、Oracle Key Vaultキャッシュに格納されます。

マスター暗号化キーが最初にOracle Key Vaultサーバーからフェッチされるか、Oracle Key Vaultサーバーで作成されると、マスター暗号化キーはインメモリー・マスター暗号化キー・キャッシュおよび永続マスター暗号化キー・キャッシュに格納されます。

インメモリー・マスター暗号化キー・キャッシュに格納されたマスター暗号化キーは、キーが永続キャッシュに配置された時点から一定の時間使用できます。期間は、okvclient.oraファイルのPKCS11_CACHE_TIMEOUTパラメータによって定義されます。

永続キャッシュが存在する場合は、それが使用されます。永続キャッシュが存在しない場合は、Oracle Key Vaultによって作成されます。キーが作成されると、今後のすべてのセッションで、インメモリー・マスター暗号化キー・キャッシュまたは永続マスター暗号化キー・キャッシュからキーが取得されます。

永続マスター暗号化キー・キャッシュに格納された永続マスター暗号化キーは、キーが永続キャッシュに配置された時点から一定の時間使用できます。この時間は、okvclient.oraファイルでPKCS11_PERSISTENT_CACHE_TIMEOUTパラメータを設定することで定義できます。

エンドポイントがマスター暗号化キーを削除すると、そのキーはインメモリー・マスター暗号化キー・キャッシュおよび永続マスター暗号化キー・キャッシュから削除されます。

18.3.4 永続マスター暗号化キー・キャッシュの格納場所

永続マスター暗号化キー・キャッシュは、構成ファイルokvclient.oraと同じ場所に作成されます。

okvclient.oraファイルのデフォルトの場所は、$OKV_HOME/confディレクトリです。

ORACLE_HOMEORACLE_BASEおよびOKV_HOME環境変数を、デプロイメント時に一貫した設定にしておくことが重要です。一貫性がない場合、永続キャッシュを必要とする操作が失敗し、永続キャッシュが複数の場所に作成される可能性があります。

環境変数OKV_HOMEが設定されていると、永続キャッシュは$OKV_HOME/confに作成されます。

OKV_HOMEを設定せずに、ORACLE_BASEを設定すると、永続キャッシュは$ORACLE_BASE/okv/$ORACLE_SIDに作成されます。

OKV_HOMEORACLE_BASEも設定せずに、ORACLE_HOMEを設定すると、永続キャッシュは$ORACLE_HOME/okv/$ORACLE_SIDに作成されます。

ノート:

永続キャッシュが作成されるディレクトリが安全で、権限が制限されていることを確認します。

18.3.5 永続マスター暗号化キー・キャッシュの操作モード

永続マスター暗号化キー・キャッシュは、2つのモードで動作します。

2つのモードの違いは、マスター暗号化キーを取得するために永続マスター暗号化キー・キャッシュとOracle Key Vaultが検索される順序です。

18.3.5.1 Oracle Key Vault優先モード

Oracle Key Vault優先モードでは、エンドポイントはOracle Key Vaultサーバーからマスター暗号化キーを取得しようとします。

Oracle Key Vaultサーバーがオフラインの場合、エンドポイントは永続マスター暗号化キー・キャッシュからマスター暗号化キーを取得しようとします。

エンドポイントは、Oracle Key Vaultサーバーのステータスを確認する必要があり、オフラインの場合、エンドポイントは永続マスター暗号化キー・キャッシュからマスター暗号化キーを取得しようとします。そのため、マスター暗号化キーへのアクセスが必要なデータベース操作には遅延が発生します。

18.3.5.2永続マスター暗号化キー・キャッシュ優先モード

永続マスター暗号化キー・キャッシュ優先モードでは、エンドポイントは永続マスター暗号化キー・キャッシュからマスター暗号化キーを取得します。

マスター暗号化キーが永続マスター暗号化キー・キャッシュで使用できない場合、エンドポイントはOracle Key Vaultサーバーからマスター暗号化キーを取得しようとします。

Oracle Key Vaultサーバー上のマスター暗号化キーへの変更は、キーが永続マスター暗号化キー・キャッシュで期限切れになるまで適用されません。

18.3.6 永続マスター暗号化キー・キャッシュ・リフレッシュ期間

永続マスター暗号化キー・キャッシュ・リフレッシュ期間は、マスター暗号化キーの可用性を拡張する場合に役立ちます。

永続マスター暗号化キー・キャッシュのリフレッシュ期間機能を使用すると、データベース・エンドポイントはOracle Key Vaultサーバーから期限が切れたマスター暗号化キーのリフレッシュを複数回試行できます。この意味で、エンドポイントは、マスター暗号化キーのリフレッシュを完了するためにOracle Key Vaultサーバーがオンラインに戻るのを待機します。一方、マスター暗号化鍵リフレッシュの試行に失敗した場合、キーはリフレッシュ期間の継続中に、永続キャッシュから取得されます。

したがって、永続マスター暗号化キー・キャッシュのリフレッシュ期間機能は、永続マスター暗号化キー・キャッシュにキャッシュされた後のマスター暗号化キーの使用可能期間を延長します。同時に、エンドポイントはキャッシュ時間の最後に一度ではなく、リフレッシュ期間中にキーをリフレッシュできます。これは、プライマリ・スタンバイ・スイッチオーバーの進行中など、Oracle Key Vaultを使用できないときに永続キャッシュ期間の期限が切れる可能性に対応しています。リフレッシュ期間が終了し、キーがリフレッシュされるとすぐにキャッシュ期間が開始します。

okvclient.oraファイルでは、PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWパラメータを使用して、永続マスター暗号化キー・キャッシュにキャッシュされた後のマスター暗号化キーの使用可能期間を延長できます。この値は、Oracle Key Vaultサーバーがリカバリしてオンラインに戻るのにかかる時間を反映しています。この値は分単位で指定する必要があります。PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWのデフォルト値は30 (分)です。

18.3.7 永続マスター暗号化キー・キャッシュのパラメータ

Oracle Key Vaultには、永続マスター暗号化キー・キャッシュを構成するためのパラメータが用意されています。

18.3.7.1 PKCS11_CACHE_TIMEOUTパラメータ

PKCS11_CACHE_TIMEOUTパラメータは、インメモリー・キャッシュでマスター暗号化キーが使用可能な期間を設定します。

PKCS11_CACHE_TIMEOUTパラメータは、okvclient.oraファイルに設定します。この値は分単位で指定する必要があります。指定した期間が経過すると、マスター暗号化キーは期限切れになります。期限切れのマスター暗号化キーはインメモリー・キャッシュから削除されません。

PKCS11_CACHE_TIMEOUTのデフォルト値は、60 (分)です。Oracle Key Vaultの管理コンソールでPKCS11 In-Memory Cache Timeoutという名前のPKCS11_CACHE_TIMEOUTパラメータを設定することをお薦めします。

18.3.7.2 PKCS11_PERSISTENT_CACHE_TIMEOUTパラメータ

PKCS11_PERSISTENT_CACHE_TIMEOUTパラメータは、永続キャッシュでマスター暗号化が使用可能な期間を設定します。

PKCS11_PERSISTENT_CACHE_TIMEOUTパラメータは、okvclient.oraファイルに設定します。この時間は、データベースがOracle Key Vaultサーバーからキーを取得してキャッシュに格納したときから始まります。この期間が経過すると、マスター暗号化キーが期限切れになります。この時点で、エンドポイントがOracle Key Vaultサーバーに接続してキーを取得しようとします。成功すると、このパラメータで指定された期間、このキーが再度使用可能になります。キーを取得できない場合、PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWパラメータで指定された期間はキーを引き続き使用できます。その後、データベースがOracle Key Vaultサーバーからキーを再度正常に取得できなければ、そのキーを使用できなくなります。期限切れのマスター暗号化キーは永続マスター暗号化キー・キャッシュから削除されません。

OKV Persistent Cache entriesリストに表示されるCache Start TimeおよびMaximum Use Timeの値は、マスター暗号化キーが更新される際に更新されます。

PKCS11_PERSISTENT_CACHE_TIMEOUTのデフォルト値は、1440 (分)です。

PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWPKCS11_PERSISTENT_CACHE_TIMEOUTの両方のパラメータを0 (ゼロ)に設定することにより、永続マスター暗号化キー・キャッシュを無効にできます。

このグローバル・パラメータはOracle Key Vault管理コンソールで設定することをお薦めします。

ノート:

PKCS11_PERSISTENT_CACHE_TIMEOUTパラメータとそのデフォルト値は、デフォルトでokvclient.oraに含まれています。
18.3.7.3 PKCS11_PERSISTENT_CACHE_FIRSTパラメータ

PKCS11_PERSISTENT_CACHE_FIRSTパラメータは、永続マスター暗号化キー・キャッシュ操作モードを設定します。

PKCS11_PERSISTENT_CACHE_FIRSTパラメータは、okvclient.oraファイルに設定します。

操作モードは次のとおりです。

  • Oracle Key Vault優先モード: Oracle Key Vault優先モードを有効にするには、PKCS11_PERSISTENT_CACHE_FIRSTパラメータの値を0 (ゼロ)に設定します。

  • 永続マスター暗号化キー・キャッシュ優先モード: 永続マスター暗号化キー・キャッシュ優先モードは、デフォルト・モードです。

    永続マスター暗号化キー・キャッシュ優先モードを有効にするには、PKCS11_PERSISTENT_CACHE_FIRSTパラメータの値を1に設定します。

18.3.7.4 PKCS11_CONFIG_PARAM_REFRESH_INTERVALパラメータ

PKCS11_CONFIG_PARAM_REFRESH_INTERVALパラメータは、長時間実行されるプロセスがokvclient.ora構成ファイルを再読込みする頻度を指定します。

プロセスがインメモリー・キャッシュのキーを使用できず、かわりに永続キャッシュまたはOracle Key Vaultサーバーが使用されていて、okvclient.oraが最後の読み取られてから経過した時間がPKCS11_CONFIG_PARAM_REFRESH_INTERVALに指定された値を超えた場合、プロセスがokvclient.oraを再読込みし、変更されたパラメータが使用され始めます。インメモリー・キャッシュのパラメータPKCS11_CACHE_TIMEOUTに設定されている値がPKCS11_CONFIG_PARAM_REFRESH_INTERVALより大きい場合、okvclient.oraは、PKCS11_CACHE_TIMEOUTパラメータに指定されている間隔で再読込みされます。

PKCS11_CONFIG_PARAM_REFRESH_INTERVALパラメータは、okvclient.oraに設定します。この値は分単位で指定する必要があります。PKCS11_CONFIG_PARAM_REFRESH_INTERVALのデフォルト値は10 (分)です。

このパラメータを無効にするには、PKCS11_CONFIG_PARAM_REFRESH_INTERVALパラメータに0 (ゼロ)を設定します。

18.3.7.5 PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWパラメータ

PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWパラメータは、永続マスター暗号化キー・キャッシュにキャッシュされた後のマスター暗号化キーの使用可能時間を延長します。

PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWパラメータは、okvclient.oraに設定します。値は分単位で指定する必要があります。PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWのデフォルト値は30 (分)です。

PKCS11_PERSISTENT_CACHE_REFRESH_WINDOWPKCS11_PERSISTENT_CACHE_TIMEOUTパラメータを0 (ゼロ)に設定することにより、永続マスター暗号化キー・キャッシュを無効にできます。これらのグローバル・パラメータはOracle Key Vault管理コンソールで設定することをお薦めします。

18.3.7.6 EXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNパラメータ

EXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNパラメータを使用すると、エンドポイント・データベースの停止時に、指定したエンドポイント・データベースのPKCS#11永続キャッシュが自動的に期限切れになることが保証されます。

有効にした場合、EXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNにより、自動ログイン・ウォレットが使用されていても、エンドポイント・データベースをOracle Key Vaultに登録したときに設定したパスワードとは関係のないシステム生成のランダム・パスワードを使用して、永続キャッシュは保護されます。永続キャッシュ・パスワードを保護しておくと、セキュリティが向上します。

EXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNパラメータを使用する前に、エンドポイント・データベースにバグ29869906: AUTO-LOGIN OKV NEEDS PERSISTENT CACHE PROTECTION KEY FROM RDBMSのパッチが適用されていることを確認します。このパッチは、Oracle Databaseリリース12.1から19cまでに適用されます。詳細は、Oracleサポートに問い合せてください。

Oracle Key Vaultにエンロールされている個々のエンドポイント・データベースにEXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNを設定することも、Oracle Key Vaultにエンロールされているすべてのエンドポイント・データベースにグローバルに設定することもできます。このパラメータは、データベース・エンドポイントのokvclient.ora構成ファイルでは使用できません。このパラメータを設定するには、Oracle Key Vault管理コンソールを使用します。

EXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNを有効にすると、Oracle Key VaultからキーがフェッチされるときにPKCS#11永続キャッシュが作成されます。キャッシュがエンドポイント・データベースで引き続き使用できるのは、データベース・インスタンスがマウントまたはオープンされている場合にかぎります。エンドポイント・データベースが停止すると、PKCS#11永続キャッシュは使用できなくなりますが、次にエンドポイント・データベースが起動するときに再作成されます。ただし、永続キャッシュは、エンドポイント・プラガブル・データベース(PDB)がクローズしてから再オープンされた場合、使用可能な状態のままです。

特定のエンドポイント・データベースに対してEXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNを有効にすると、okvutil list -t okv_persistent_cacheコマンドを使用して永続キャッシュの内容を表示できなくなります。また、エンドポイント・データベースの起動後にキーがフェッチされる際、Oracle Key Vaultが使用可能であることを確認する必要があります。

個々のエンドポイント・データベースに対するEXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNの設定

  1. システム管理者ロールを持っているユーザーとしてOracle Key Vault管理コンソールにログインします。
  2. 「Endpoints」タブをクリックします。
  3. 「Endpoints」ページで、EXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNを設定するエンドポイントを選択します。
  4. 「Endpoint Details」ページで、下部までスクロールして、「Expire PKCS11 Persistent Cache on Database Shutdown」チェック・ボックスを設定します。
  5. 「Save」をクリックします。

EXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNのグローバルな設定

次の手順では、Oracle Key Vaultにエンロールされている現在および将来のすべてのエンドポイント・データベースにEXPIRE PKCS11 PERSISTENT CACHE ON DATABASE SHUTDOWNを適用します。

  1. システム管理者ロールを持っているユーザーとしてOracle Key Vault管理コンソールにログインします。
  2. 「Endpoints」タブを選択して、左サイド・バーから「Settings」を選択します。
  3. 「Global Endpoint Configuration Parameters」ページで、「Expire PKCS11 Persistent Cache on Database Shutdown」チェック・ボックスを設定します。
  4. 「Save」をクリックします。

18.3.8 永続マスター暗号化キー・キャッシュの内容のリスト

okvutil listコマンドは、永続マスター・キー・キャッシュにキャッシュされているマスター暗号化キーをリストします。

エンドポイント・ソフトウェアのインストール後、エンドポイント管理者は、コマンドライン・ユーティリティokvutilを使用してOracle Key Vaultと通信し、セキュリティ・オブジェクトをアップロードおよびダウンロードできます。

次の例では、永続マスター・キー・キャッシュにキャッシュされているマスター暗号化キーをリストする方法を示します。

$ ./okvutil list -t okv_persistent_cache -l $ORACLE_HOME/okv/$ORACLE_SID
Enter Oracle Key Vault endpoint password: password 

出力は、次のようになります。

OKV Persistent Cache entries:
Current Persistent Cache Timeout is 600 seconds
Version Unique ID                            TDE Master Key Identifier          Cache Start Time    Maximum Use Time  Maximum Refresh Window  Status
02      55D745B1-2F30-667F-E053-0100007FAFDB 0636846AAF88F74FC6BF1DB68538797B69 22:38:12 2019-08-03 600 seconds       0 seconds                Expired
02      55D745B1-2F2E-667F-E053-0100007FAFDB 063AC48E9433734F7EBF97180276E719C4 22:37:10 2019-08-03 600 seconds       180 seconds              Available
02      55D745B1-2F2D-667F-E053-0100007FAFDB 0604425983989C4F6ABF7BD9E1D55459C4 22:37:00 2019-08-03 600 seconds       180 seconds              Available
02      55D70FA4-81D1-5C8A-E053-0100007F8217 06172EACB79F4C4F32BFB7D50B0ACA7101 03:44:22 2019-08-03 300 seconds       0 seconds                Expired
02      55D745B1-2F2B-667F-E053-0100007FAFDB 06983C4664FFC04F6ABF72F961A15AD943 22:36:49 2019-08-03 600 seconds       300 seconds              Available
02      55D745B1-2F29-667F-E053-0100007FAFDB 0639E05D58B27B4FFDBFAEC5EAA08DB301 03:26:40 2019-08-03 300 seconds       0 seconds                Expired
02      55D745B1-2F28-667F-E053-0100007FAFDB 06A29F4039E1B74FDCBFA687E0608EEEBA 03:19:17 2019-08-03 300 seconds       0 seconds                Expired
02      55D745B1-2F27-667F-E053-0100007FAFDB 0678287C2877B74FF3BF0BA33A17A59F94 03:19:21 2019-08-03 300 seconds       0 seconds                Expired

次の表では、OKV Persistent Cache entriesリスト内の列を説明します。

列名 説明

Version

永続マスター暗号化キー・キャッシュのバージョン

Unique ID

マスター暗号化キーに割り当てられたKMIP識別子

TDE Master Key Identifier

マスター暗号化キーに割り当てられたデータベースID

Cache Start Time

マスター暗号化キーがキャッシュされた時刻

Maximum Use Time

マスター暗号化キーが永続マスター暗号化キー・キャッシュに格納された時点からキーの有効期限が切れるまでの時間(秒)

Maximum Refresh Window

永続マスター暗号化キー・キャッシュにキャッシュされた後のマスター暗号化キーの使用可能期間を延長します。

Status

マスター暗号化キーが使用可能か、リフレッシュ中か、失効しているかが表示されます

18.3.9 Oracle Databaseのデプロイメントと永続マスター暗号化キー・キャッシュ

永続マスター暗号化キー・キャッシュは、他のOracle機能とOracle Key Vaultの統合に影響します。

  • Oracle Key Vaultサーバーがオフラインの場合のデータベースの再起動: 自動ログイン・ウォレットを使用するようにOracle Key Vaultを構成すると、データベースはデータベースの再起動時にOracle Key Vaultサーバーに接続します。データベースの再起動時にOracle Key Vaultサーバーがオフラインの場合、データベースは永続マスター暗号化キー・キャッシュからマスター暗号化キーを取得します。マスター暗号化キーがアクティブで期限切れになっていない場合、データベース操作は正常に再開します。

    永続マスター暗号化キー・キャッシュおよびOracle Key Vaultエンドポイント・ウォレットのパスワードが同期されていることを確認してください。

    ノート:

    エンドポイント・ウォレットの資格証明が変更された場合は、永続マスター暗号化キー・キャッシュを削除する必要があります。
  • Oracle Real Application Cluster (Oracle RAC)環境での永続マスター暗号化キー・キャッシュの使用: Oracle RAC環境では、各Oracle RACノードは一意のデータベース・エンドポイントであり、一意の永続マスター暗号化キー・キャッシュを使用します。

    Oracle RAC環境では、各Oracle RACノードの永続マスター暗号化キー・キャッシュにマスター暗号化キーの最新バージョンをキャッシュするために、各Oracle RACノードからデータベースを問い合せる必要があります。

  • Oracle Data Guard環境での永続マスター暗号化キー・キャッシュの使用: プライマリ・サーバーのデータベースにあるマスター暗号化キーのローテーションによって、プライマリ・サーバーのデータベースの永続マスター暗号化キー・キャッシュにマスター暗号化キーがキャッシュされます。

    プライマリ・サーバーから新しいREDOログがスタンバイ・サーバーに適用された後、スタンバイ・サーバーでは、新しいマスター暗号化キーを取得してスタンバイ・サーバーのデータベースの永続マスター暗号化キー・キャッシュにキャッシュします。混乱を回避するために、プライマリ・サーバーのデータベース内のマスター暗号化キーのローテーション直後に、プライマリ・サーバーとスタンバイ・サーバーを同期化してください。

18.4 Oracle Walletのアップロードとダウンロード

Oracle Walletを保存および共有するには、それらをOracle Key Vaultにアップロードする必要があります。

18.4.1 Oracle Walletのアップロードとダウンロードについて

Oracleウォレットをアップロードおよびダウンロードするには、okvutilユーティリティを使用します。

ウォレットをOracle Key Vaultにアップロードした後、Key Vaultで新しい仮想ウォレットを作成し、共有するセキュリティ・オブジェクトを追加できます。ダウンロードする前に、仮想ウォレットへのエンドポイント・アクセス権を付与する必要があります。okvutil uploadおよびokvutil downloadコマンドを使用して、Oracle Key Vaultとそのエンドポイントの間でOracle Walletをアップロードおよびダウンロードできます。okvutilユーティリティは、エンドポイントにインストールするエンドポイント・ソフトウェアとともにパッケージ化されています。

Oracle Key Vault okvutilソフトウェアでは、個々のセキュリティ・オブジェクトの粒度レベルでOracle Walletを読み取ることができます。そのため、ウォレットの内容は、個々の項目としてアップロードされます。ダウンロード中に、同じセキュリティ・オブジェクトのセットを使用して元のウォレットを再作成するか、別のセキュリティ・オブジェクトのセットを使用して新しいウォレットを作成できます。

パスワード・ベースのウォレットと自動ログイン・ウォレットの両方を、アップロードおよびダウンロードできます。ウォレットの内容は、いずれかのタイプの新しいウォレットに、後でダウンロードできます。たとえば、アップロードされたパスワード保護済ウォレットを自動ログイン・ウォレットとしてダウンロードしたり、アップロードされた自動ログイン・ウォレットをパスワード保護されたウォレットとしてダウンロードしたりできます。

Oracle Key Vaultを使用して、以前アップロードしたOracle Walletのセキュリティ・オブジェクトを含む新しい仮想ウォレットを構成できます。たとえば、以前にアップロードしたOracle Walletに5つの対称キーと3つの不透明オブジェクトが含まれていた場合は、元の5つの対称キーのうち3つと、元の3つの不透明オブジェクトのうちの1つのみから構成される、新しい仮想ウォレットを作成できます。この仮想ウォレットは元のウォレットと同様にダウンロードでき、キーのサブセットのみに対するアクセス権を持つエンドポイントを提供します。このプロセスは、元のウォレットを変更しません。

18.4.2 Oracleウォレットのアップロード

okvutil uploadコマンドは、ウォレットをOracle Key Vaultにアップロードします。

Oracle Key VaultへのTDEウォレットの内容のアップロードは、Oracle Key Vault独自の機能です。オンライン・マスター・キー・モードでOracle Key Vaultを使用するためにデータベースを移行する場合は、移行手順を実行する前にウォレットの内容をアップロードしておく必要があります。そうすれば、データベース・サーバーを正常に移行した後に、ファイルベースのウォレットを削除できます。これはPCI-DSSの要件です。アップロード操作では、セキュリティ・オブジェクトやそのメタデータなど、Oracleウォレット内のすべて内容をアップロードして、ダウンロード・プロセスでウォレットを再構築できるようにします。Oracleウォレットには、通常、TDEマスター暗号化キー、過去のTDEマスター暗号化キー、SSLまたはTLS証明書およびそれらのメタデータ(不透明オブジェクトとしてOracle Key Vaultに格納されます)、ウォレット・メタデータおよび明示的に追加したキーが含まれます。
  1. Oracle WalletがあるサーバーがOracle Key Vaultエンドポイントとしてエンロールされ、プロビジョニングされていることを確認します。
  2. エンドポイントが、使用する仮想ウォレットへのアクセス権を持っていることを確認します。

    エンドポイントは、Oracle Key Vaultの仮想ウォレットに対して読取り、変更、およびウォレット管理アクセス権を持っている必要があります。

  3. okvutil uploadコマンドを実行して、ウォレットをアップロードします。

    次に例を示します。

    # 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
    Upload succeeeded
    

    この例では次のとおりです。

    • -lは、アップロードするウォレットのディレクトリ場所を指定します。

    • -tはタイプを示します。この場合はOracle Walletです。

    • -gは、このウォレットがステップ2で構成されたOracle Key Vault仮想ウォレットの一部になるように、その仮想ウォレットを指定します。

これでアップロードは完了です。他のユーザーおよびエンドポイントと仮想ウォレットを共有できるようになりました。

18.4.3 Oracleウォレットのダウンロード

okvutil downloadコマンドは、Oracle Key VaultサーバーからエンドポイントにOracle Walletをダウンロードします。

  1. エンドポイントが、ダウンロードする仮想ウォレットにおける読取りアクセス権を持っていることを確認します。
  2. okvutil downloadコマンドを実行して、ウォレットをダウンロードします。

    次に例を示します。

    # 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
    

    この例では次のとおりです。

    • -lは、作成されるウォレットの場所です。

    • -tはタイプを示します。この場合はOracle Walletです。

    • -gは、ステップ1で構成されたOracle Key Vault仮想ウォレットを指定します。

    ウォレットがすでに存在し、-oパラメータを使用して既存のウォレットに上書きしなかった場合は、次のアクションが実行されます。

    • 既存のウォレットの名前は、ewallet.p12.current_timestamp (timestampはEpoch以降の秒数)という形式のバックアップ名に変更されます。

    • 新たにダウンロードされたウォレットにはewallet.p12という名前が付けられます。

  3. ウォレットを閉じ、再度開きます。

    ウォレットを閉じて再度開くと、TDEマスター・キーを含むウォレットの内容がTDEで暗号化されたデータベースで使用可能になり、ウォレットの内容がTDEデータベースにロードされます。(自動ログイン・ウォレットは、次にアクセスしたときに自動的に開かれます。)

    • Oracle Database 11gリリース2の場合:

      ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "Oracle_wallet_password"; 
      
      ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Oracle_wallet_password"; 
      
    • Oracle Database12c以上の場合

      ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "Oracle_wallet_password";
      
      ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "Oracle_wallet_password";
      
  4. Oracle RACなどの共有サーバー構成で実行している場合は、データベースを再起動します。

18.4.4 Oracle Walletのアップロードとダウンロードに関するガイドライン

Oracle Key Vaultとの間でウォレットをアップロードおよびダウンロードするためのガイドラインが用意されています。

  • 元のウォレットの内容に変更がある場合は(キー・ローテーションやキー更新操作など)、Key Vaultにウォレットの最新のコピーが保持されるように、Oracle Key Vaultにウォレットを再アップロードします。

  • okvutil uploadおよびokvutil downloadコマンドで上書き(-o)オプションを使用する予定がある場合は注意してください。このオプションは、アップロードするデータと競合する仮想ウォレットのデータを上書きします。-oオプションを使用する前に、ウォレット・ファイルのローカル・バックアップを作成してください。

  • Oracle Key Vaultサーバー上の複数の仮想ウォレットに対して、同一の物理的なOracle Walletをアップロードしないでください。Oracle Walletを複数のエンドポイントと共有する場合は、エンドポイント・グループを作成します。

18.5 JKSおよびJCEKSキーストアのアップロードとダウンロード

okvutil uploadおよびokvutil downloadコマンドは、JKSおよびJCEKSキーストアをアップロードおよびダウンロードできます。

18.5.1 JKSおよびJCEKSキーストアのアップロードとダウンロードについて

okvutilユーティリティを使用して、JKSおよびJCEKSキーストアをアップロードおよびダウンロードします。

JKSおよびJCEKSキーストアを長期保持、リカバリおよび共有のためにOracle Key Vaultにアップロードし、必要に応じてそれらをエンドポイントにダウンロードできます。

ウォレットと同様に、JKSまたはJCEKSキーストアをアップロードする場合、Oracle Key Vaultはキーストア内の各項目を読み取ることができます。キーストアの内容は、個々の項目としてアップロードされます。

18.5.2 JKSまたはJCEKSキーストアのアップロード

okvutil uploadコマンドは、JKSまたはJCEKSをOracle Key Vaultサーバーにアップロードできます。

  1. JavaキーストアがあるサーバーがOracle Key Vaultエンドポイントとしてエンロールされ、プロビジョニングされていることを確認します。
  2. エンドポイントに対してアクセス制御が構成されていることを確認します。

    キーストアを仮想ウォレットにアップロードする場合、エンドポイントがこの仮想ウォレットへの読取り、変更およびウォレット管理アクセス権を持っていることを確認します。

  3. okvutil uploadコマンドを実行して、キーストアをアップロードします。

    次の例に、JKSおよびJCEKSキーストアを仮想ウォレットにアップロードする方法を示します。

    次の例は、JKSキーストアをアップロードする方法を示しています。

    # okvutil upload -l "/etc/oracle/fin_jks.jks" -t JKS -g "FinanceGrp"
    Enter source Java keystore password: Java_keystore_password
    Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password
    Upload succeeded
    

    この例では次のとおりです。

    • -lは、アップロードされるJavaキーストアの場所です。

    • -tは、JKSまたはJCEKSキーストアのタイプです。アップロードおよび後でダウンロードするときは、必ず正しいタイプのJavaキーストアをアップロードしてください。

    • -gは、Javaキーストアの内容のアップロード先となるOracle Key Vaultの仮想ウォレットです。

    次の例は、JCEKSキーストアをアップロードする方法を示しています。

    # okvutil upload -l "/etc/oracle/hr_jceks.jceks" -t JCEKS -g "HRGrp"
    Enter source Java keystore password: password
    Enter Oracle Key Vault endpoint password: password
    Upload succeeded
    

これでアップロードは完了です。必要に応じて、Javaキーストアを共有およびダウンロードする準備が整いました。

18.5.3 JKSまたはJCEKSキーストアのダウンロード

okvutil downloadコマンドは、アップロード済のJKSまたはJCEKSキーストアをダウンロードできます。

  1. エンドポイントが、ダウンロードする仮想ウォレットにおける読取りアクセス権を持っていることを確認します。
  2. エンドポイント管理者として、コマンドラインから、okvutil downloadコマンドを実行してJavaキーストアをダウンロードします。

    次に例を示します。

    # okvutil download -l "/etc/oracle/new_java_files/hr_jceks.jceks" -t JCEKS -g FinanceGrp
    Enter new Java keystore password: password
    Confirm new Java keystore password: password
    Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password
    

    この例では次のとおりです。

    • -lは、アップロードされたJavaキーストアをダウンロードするディレクトリです。

    • -tは、JKSまたはJCEKSキーストアのタイプです。必ず正しいタイプのJavaキーストアをダウンロードしてください。

    • -gは、ダウンロードするオブジェクトの名前で、この場合はJKSキーストアFinanceGrpです。

18.5.4 JKSおよびJCEKSキーストアのアップロードとダウンロードに関するガイドライン

JKSおよびJCEKSキーストアをアップロードおよびダウンロードする場合の推奨事項は、次のとおりです。

  • 元のJKSまたはJCEKSキーストアの内容に変更がある場合は、Key Vaultにキーストアの最新のコピーが保持されるように、Oracle Key Vaultにキーストアを再アップロードします。

  • okvutil uploadおよびokvutil downloadコマンドで上書き(-o)オプションを使用する予定がある場合は注意してください。このオプションは、ファイル内のデータを上書きします。-oオプションを使用するには、キーストア・ファイルをダウンロードする前にバックアップを作成してください。

  • Oracle Key Vaultサーバー上の複数の仮想ウォレットに対して、同一の物理的なJKSまたはJCEKSキーストアをアップロードしないでください。Javaキーストアを複数のエンドポイントと共有する場合は、エンドポイント・グループを作成します。

18.6 TDEマスター暗号化キーとしてのユーザー定義のキーの使用

生成したキーをインポートして、Oracle Key VaultでTransparent Data Encryption (TDE)マスター暗号化キーとして使用できます。

18.6.1 TDEマスター暗号化キーとしてのユーザー定義のキーの使用について

キー管理者は、書込みアクセス権を持つグループにユーザー定義のキーをアップロードできます。

これにより、Transparent Data Encryption (TDE)マスター暗号化キーとして使用できるようになります。この機能によって、キー管理者は、TDEデータ暗号化キーの暗号化に使用するマスター暗号化キーの作成に対する管理を強化できます。

okvutil uploadコマンドのtypeパラメータには、TDEマスター暗号化キーとして使用されるユーザー定義のキー・バイトをOracle Key VaultにアップロードできるオプションTDE_KEY_BYTESが含まれています。その後、データベースでADMINISTER KEY MANAGEMENT SQL文を実行して、キーをTDEマスター暗号化キーとしてアクティブ化する必要があります。

18.6.2 ステップ1: ユーザー定義のキーのアップロード

okvutil uploadコマンドを使用して、ユーザー定義のマスター暗号化キーをOracle Key Vaultにアップロードします。

ユーザー定義のキーのRAWバイト・データをテキスト・ファイルに格納して、Oracle Key Vaultにアップロードします。

Oracle Key VaultにアップロードされたRAWバイト・データは、TDEマスター・キーおよびTDEマスター・キー識別子の一部を構成します。データベースがTDEマスター・キーおよびTDEマスター・キー識別子としてデータを識別およびアクティブ化できるように、追加のメタデータがRAWバイト・データに追加されます。テキスト・ファイルでは、TDEマスター・キーを構成するRAWバイト・データの先頭にTDEマスター・キーの接頭辞が付きます。TDEマスター・キー識別子を構成するRAWバイト・データには、TDEマスター・キー識別子の接頭辞が付きます。TDEマスター・キー識別子は、データベースのマスター暗号化鍵を表します。キーがアクティブ化されると、TDEマスター・キー識別子V$ENCRYPTION_KEYSビューのKEY_ID列のサブセットとして構成するユーザー定義のRAWバイトが表示されます。Oracle Key Vaultでは、TDEマスター・キーおよびTDEマスター・キー識別子の値は、対称鍵がKMIPオブジェクト型である管理対象KMIPオブジェクトとして格納されます。

  1. ユーザー定義のキーのRAWバイト・データを含むテキスト・ファイルを作成します。

    書式は次のとおりです。

    TDE Master Encryption Key Identifier: contiguous_TDE_Master_Encryption_Key_Identifier_bytes_encoded_in_32_hex_characters_(16_bytes_long)
    TDE Master Encryption Key: contiguous_TDE_Master_Encryption_Key_bytes_encoded_in_64_hex_characters_(32_bytes_long)

    次に例を示します。

    TDE Master Encryption Key Identifier: 1F1E1D1C1B1A10191817161514131210
    TDE Master Encryption Key: 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
  2. ファイルをtde_key_bytes.txtという名前で保存します。
  3. okvutil uploadコマンドを使用して、tde_key_bytes.txtをアップロードします。

    okvutil uploadコマンドの書式は次のとおりです。

    okvutil upload [--overwrite] --location location --type type [--group group] [--
    description description] [--verbose verbosity_level]

    例:

    $OKV_HOME/bin/okvutil upload -l /home/oracle/tde_key_bytes.txt -t TDE_KEY_BYTES -g "FIN_DATABASE_VIRTUAL_WALLET" -d "This key was created for Financial database use on 1st Mar 2019" 

    この例では次のとおりです。

    • -lには、tde_key_bytes.txtファイルへのパスを指定します。

    • -tには、アップロードするオブジェクトのタイプを指定します。ユーザー定義のキーをアップロードするには、タイプをTDE_KEY_BYTESとして指定します。

    • -gには、キーが追加されるOracle Key Vault仮想ウォレットの名前を指定します。

    • -dには、キーの説明を指定します。

    -tTDE_KEY_BYTESの場合、-dに指定された説明は、V$ENCRYPTION_KEYS動的ビューにタグとして表示されます。
  4. 必須パラメータを指定して、[Enter]を押します。
  5. Oracle Key Vaultエンドポイント・パスワードを入力して、[Enter]を押します。
    Upload succeededというメッセージが表示されます。
    $OKV_HOME/bin/okvutil upload -l /home/oracle/tde_key_bytes.txt -t TDE_KEY_BYTES -g "FIN_DATABASE_VIRTUAL_WALLET" -d "This key was created for Financial database use on 1st Mar 2019" 
    Enter Oracle Key Vault endpoint password:
    Upload succeeded
ユーザー定義のキーのRAWバイト・データがアップロードされます。次のステップは、ユーザー定義のキーをTDEマスター暗号化キーとしてアクティブ化することです。

18.6.3 ステップ2: TDEマスター暗号化キーとしてのユーザー定義のキーのアクティブ化

ユーザー定義のキーをアップロードした後は、そのキーをTDEマスター暗号化キーとしてアクティブ化する準備が整います。

TDEマスター・キー識別子用にOracle Key VaultにアップロードされるRAWバイト・データは、Oracle Key Vaultの対応するTDEマスター暗号化鍵として作成されるKMIPオブジェクトのNAME属性として表示されます。

  1. キー管理者ロールを持っているユーザーまたは仮想ウォレットへのアクセス権を持っているユーザーとして、Oracle Key Vault管理コンソールにログインします。
  2. 「Keys & Wallets」タブをクリックします。
    「Wallets」ページが表示されます。
  3. 左のサイドバーの「All Items」をクリックします。
    Oracle Key Vaultのすべてのセキュリティ・オブジェクトが表示された「All Items」ページが表示されます。
  4. ユーザー定義のキーに対応する「Details」列の鉛筆アイコンをクリックします。
    キーの属性が表示された「Item Details」ページが表示されます。
  5. 「Advanced」をクリックして、キーの暗号化属性を表示します。

    必須のキーIDが表示されます。キーIDにはORACLE.TDE.HSM.MKという接頭辞が付いています。

    次に例を示します。

    ORACLE.TDE.HSM.MK.061F1E1D1C1B1A10191817161514131210

    TDEマスター暗号化キー識別子には、追加のメタデータの接頭辞が付いたユーザー定義のRAWバイト・データが含まれます。

  6. 接頭辞ORACLE.TDE.HSM.MKの後に表示されるキーIDをコピーして保存します

    次に例を示します。

    061F1E1D1C1B1A10191817161514131210
  7. ADMINISTER KEY MANAGEMENT SQL文を実行する権限を持つユーザーとしてデータベースに接続します。
    次に例を示します。
    sqlplus / as sysdba
  8. ADMINISTER KEY MANAGEMENTコマンドを使用して、TDEマスター暗号化キーとしてキーをアクティブ化します。
    ADMINISTER KEY MANAGEMENT USE KEY '061F1E1D1C1B1A10191817161514131210' IDENTIFIED BY "password";

    V$ENCRYPTION_KEYSビューのTAG列に、新しく作成されたキーの識別子を問い合せることができます。