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

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

キーストアの管理

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

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

多くのADMINISTER KEY MANAGEMENT操作では、ソフトウェア・キーストアおよびハードウェア・キーストアの両方において、キーストア・パスワードへのアクセスが必要です。

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

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

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

自動ログイン・ハードウェア・セキュリティ・モジュールの構成

自動ログイン機能を使用するには、ハードウェア・セキュリティ・モジュールを構成します。

自動ログイン・ハードウェア・セキュリティ・モジュールの構成について

自動ログイン・ハードウェア・セキュリティ・モジュールは、自動ログイン・キーストア内にハードウェア・セキュリティ・モジュールの資格証明を格納します。

この構成により、システム全体のセキュリティが低下します。ただし、この構成は、無人または自動化された操作をサポートしています。また、ハードウェア・セキュリティ・モジュールへの自動的な再ログインが必要なデプロイメントで役立ちます。

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

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

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

  • 現在使用中のウォレット(つまり、アクティブなTDEマスター暗号化キーが含まれているウォレット)に対して機能するADMINISTER KEY MANAGEMENTコマンド。
  • アクティブなTDEマスター暗号化キーの格納に現在使用されていないウォレットに対して機能するADMINISTER KEY MANAGEMENTコマンド。自動ログイン・ソフトウェア・キーストアを構成する場合はこの手法を使用することをお薦めします。
自動ログイン・ハードウェア・セキュリティ・モジュールの構成

自動ログインHSMを構成するには、ADMINISTER KEY MANAGEMENT文を使用して、HSMへの認証に使用するクライアント・シークレットを追加または更新する必要があります。

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

    前にHSMを使用して移行している場合には、ソフトウェア・キーストアの場所はすでに存在している可能性があります。

    例:

    WALLET_ROOT=/etc/ORACLE/WALLETS/orcl
  2. ソフトウェア・キーストアでシークレットを追加または更新します。

    シークレットはハードウェア・セキュリティ・モジュール・パスワード、クライアントはHSM_PASSWORDです。HSM_PASSWORDは、HSMパスワードをソフトウェア・キーストアのシークレットとして表現するために使用されるOracle定義のクライアント名です。

    例:

    ADMINISTER KEY MANAGEMENT ADD SECRET 'user_name:password' 
    FOR CLIENT 'HSM_PASSWORD' 
    TO LOCAL AUTO_LOGIN KEYSTORE software_keystore_location 
    WITH BACKUP;

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

    • software_keystore_locationは、先ほどステップ1で定義したWALLET_ROOTの場所内のソフトウェア・キーストアの場所です。

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

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

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

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

この段階で、TDE操作が次に実行されるときに、ハードウェア・セキュリティ・モジュールの自動ログイン・キーストアが自動的に開くようになります。TDE操作の例としては、次のようなV$ENCRYPTION_WALLETビューへの問合せがあります。

SELECT * FROM V$ENCRYPTION_WALLET;

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

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

パスワードの外部ストアは、パスワードを必要とする透過的データ暗号化操作を実行するために自動化ツールを使用する状況において、自動化ツールを実行するスクリプトにハードコード化されたパスワードが含まれているときに役立ちます。スクリプト内でのパスワードのハードコード化を回避するために、データベース・サーバーの外部ストアにこのパスワードを格納できます。マルチテナント環境では、様々なPDBで外部ストアを使用できます。
ADMINISTER KEY MANAGEMENT文でIDENTIFIED BY EXTERNAL STORE句を使用する前に、次のステップを完了する必要があります。
  1. 次のいずれかの方法を使用して、外部キーストア資格証明の場所を設定します。
    • EXTERNAL_KEYSTORE_CREDENTIAL_LOCATIONパラメータに対してALTER SYSTEM文を実行します。例:
      ALTER SYSTEM SET EXTERNAL_KEYSTORE_CREDENTIAL_LOCATION = "/etc/ORACLE/WALLETS/orcl/external_store" SCOPE = SPFILE;
    • データベース・インスタンスのinit.oraファイルを編集します。例:
      EXTERNAL_KEYSTORE_CREDENTIAL_LOCATION = "/etc/ORACLE/WALLETS/orcl/external_store"

      デフォルトでは、init.oraファイルは、ORACLE_HOME/dbsディレクトリ、またはTNS_ADMIN環境変数によって設定されている場所にあります。

  2. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されていてALTER SYSTEMシステム権限を持つユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。

    例:

    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  3. ADMINISTER KEY MANAGEMENT文にADD SECRET句を含めることによって、キーストア・パスワードを含む自動ログイン・キーストアを作成します。

    例:

    ADMINISTER KEY MANAGEMENT ADD SECRET 'password'  
    FOR CLIENT 'TDE_WALLET' 
    TO LOCAL AUTO_LOGIN KEYSTORE '/etc/ORACLE/WALLETS/orcl/external_store';

    この例では、FOR CLIENT句に設定するclient_identifierの値として、一重引用符で囲んだ大文字の'TDE_WALLET'を入力します。TDE_WALLETは、FILEとして構成されたキーストア用です。あるいは、Oracle Key Vault HSMの場合はOKV_PASSWORD、またはサード・パーティのパスワードの場合はHSM_PASSWORDを入力できます。これは固定値であり、このようにADD SECRET句を適用する場合は、ここに示したとおりに入力する必要があります。この値を入力しない場合、TDEでこのシークレットを検索できなくなり、IDENTIFIED BY EXTERNAL STORE設定を使用しようとすると、ORA-00988: パスワードが指定されていないか、または無効です。というエラー・メッセージが生成されます。

  4. データベースを再起動するか(CDBルートの場合)、PDBをクローズして再オープンします。

    CDBルートから再起動する場合:

    SHUTDOWN IMMEDIATE
    STARTUP

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

    ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
    ALTER PLUGGABLE DATABASE pdb_name OPEN;

その後、キーストアのオープン、クローズ、バックアップ、シークレット・キーストアの追加、更新または削除、暗号化キーの作成、使用、キー更新、タグ付け、インポート、エクスポートに対して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文を使用して、外部キーストア・パスワードを変更または削除できます。

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

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

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

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

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

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

自動ログイン・ソフトウェア・キーストアやローカル自動ログイン・ソフトウェア・キーストアはバックアップできません。ADMINISTER KEY MANAGEMENT文での操作を使用して、新しいキーを直接それらに追加することはできません。これらのキーストア内の情報は読み取られるのみのため、バックアップは不要です。

キーストアをまだバックアップしていない場合は、TDEマスター暗号化キーの作成時にADMINISTER KEY MANAGEMENT文にBACKUP句を含めることができます。これにより、キーストアがバックアップされ、TDEマスター暗号化キーが作成されます。

バックアップ・キーストアのバックアップ識別子文字列の作成

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

  • バックアップ・キーストアのバックアップ識別子文字列を作成するには、BACKUP KEYSTORE句を含む次の構文のADMINISTER KEY MANAGEMENT SQL文を使用します。
    ewallet_creation-time-stamp-in-UTC_user-defined-string.p12
    

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

    次の例に、ユーザーが指定したバグ番号の文字列を使用するバックアップ・キーストアの作成方法と、そのキーストアがファイル・システムにどのように表示されるかを示します。この例には、自動ログイン・キーストアが使用されているか、キーストアが閉じている場合にはFORCE KEYSTORE句が含まれます。

    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE USING 'BUG1296' 
    FORCE KEYSTORE 
    IDENTIFIED BY keystore_password;
    

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

    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE USING 'BUG1296' 
    FORCE KEYSTORE 
    IDENTIFIED BY EXTERNAL STORE;

    結果のキーストア・ファイル:

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

ADMINISTER KEY MANAGEMENT文のBACKUP KEYSTORE句により、パスワード保護されたソフトウェア・キーストアをバックアップします。

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

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

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

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

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

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

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

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

    次の例は、ソフトウェア・キーストアをソース・キーストアと同じ場所にバックアップします。

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

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

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

    この文を実行すると、ewallet_identifier.p12ファイル(ewallet_time-stamp_hr.emp_keystore.p12など)がキーストア・ロケーションに作成されます。

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

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

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

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

ハードウェア・キーストアのバックアップ

Oracle Databaseを使用してハードウェア・キーストアをバックアップすることはできません。

ハードウェア・キーストアのキーをバックアップする方法の詳細は、HSMベンダーの指示を参照してください。

ソフトウェア・キーストアのマージ

ソフトウェア・キーストアは、様々な方法でマージできます。

ソフトウェア・キーストアのマージについて

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

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

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

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

1つのソフトウェア・キーストアの既存のソフトウェア・キーストアへのマージ

MERGE KEYSTORE句を含むADMINISTER KEY MANAGEMENT文を使用して、1つのソフトウェア・キーストアを他の既存のソフトウェア・キーストアにマージできます。

  • このタイプのマージを実行するには、2つのソフトウェア・キーストアから3つ目の新しいキーストアへのマージのステップに従いますが、次のSQL文を使用してください。

    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'keystore1_location' 
    [IDENTIFIED BY software_keystore1_password] 
    INTO EXISTING KEYSTORE 'keystore2_location' 
    IDENTIFIED BY software_keystore2_password 
    [WITH BACKUP [USING 'backup_identifier]];
    

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

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

    • IDENTIFIED BY句は、1つ目のキーストアがパスワード保護されたキーストアの場合は必要です。software_keystore1_passwordは、1つ目のキーストアのパスワードです。

    • keystore2_locationは、1つ目のキーストアがマージされる2つ目のキーストアのディレクトリの場所です。このパスは、一重引用符(' ')で囲みます。

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

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

マージ操作で生成されるキーストアは、常にパスワード保護されたキーストアです。

2つのソフトウェア・キーストアから3つ目の新しいキーストアへのマージ

2つの既存のキーストアが変更されないように2つのソフトウェア・キーストアを3つ目の新しいキーストアにマージできます。

  • 次の構文を使用して、ソフトウェア・キーストアをマージします。
    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'keystore1_location' 
    [IDENTIFIED BY software_keystore1_password] 
    AND KEYSTORE 'keystore2_location' 
    [IDENTIFIED BY software_keystore2_password] 
    INTO NEW KEYSTORE 'keystore3_location' 
    IDENTIFIED BY software_keystore3_password;
    

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

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

    • IDENTIFIED BY句は、1つ目のキーストアがパスワード保護されたキーストアの場合は必要です。software_keystore1_passwordは、1つ目のキーストアの現在のパスワードです。

    • keystore2_locationは、2つ目のキーストアのディレクトリの場所です。このパスは、一重引用符(' ')で囲みます。

    • IDENTIFIED BY句は、2つ目のキーストアがパスワード保護されたキーストアの場合は必要です。software_keystore2_passwordは、2つ目のキーストアの現在のパスワードです。

    • keystore3_locationは、マージされた新しいキーストアのディレクトリの場所を指定します。このパスは、一重引用符(' ')で囲みます。その場所に既存のキーストアがすでに存在する場合は、コマンドが終了してエラーが発生します。

    • software_keystore3_passwordは、マージ後のキーストアの新しいパスワードです。

    次の例は、自動ログイン・ソフトウェア・キーストアをパスワード保護されたキーストアとマージして、マージしたパスワード保護されたキーストアを新しいロケーションに作成します。

    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.
自動ログイン・ソフトウェア・キーストアの既存のパスワード保護されたソフトウェア・キーストアへのマージ

自動ログイン・ソフトウェア・キーストアを既存のパスワード保護されたソフトウェア・キーストアにマージできます。

  • ADMINISTER KEY MANAGEMENT MERGE KEYSTORE SQL文を使用して、自動ログイン・ソフトウェア・キーストアを既存のパスワード保護されたソフトウェア・キーストアにマージします。

例7-1に、自動ログイン・ソフトウェア・キーストアをパスワード保護されたソフトウェア・キーストアにマージする方法を示します。また、マージするキーストアを作成する前に、2つ目のキーストアのバックアップを作成します。

例7-1 自動ログイン・ソフトウェア・キーストアからパスワード・キーストアへのマージ

ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1' 
INTO EXISTING KEYSTORE '/etc/ORACLE/KEYSTORE/DB2' 
IDENTIFIED BY keystore_password WITH BACKUP;

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

  • MERGE KEYSTOREは、自動ログイン・キーストアを指定する必要があります。

  • EXISTING KEYSTOREは、パスワードのキーストアを表します。

ソフトウェア・キーストア・マージ操作の取消し

キーストア・マージ操作を直接取り消すことはできません。

キーストアを(新規作成するのではなく)既存のキーストアにマージする場合、ADMINISTER KEY MANAGEMENT文にWITH BACKUP句を指定して、その既存のキーストアのバックアップを作成する必要があります。後でマージを取り消す必要があると判断した場合、マージしたソフトウェア・キーストアを、バックアップしたものと置き換えることができます。

たとえば、キーストアAをキーストアBにマージするとします。WITH BACKUP句を使用することで、マージ操作の開始前にキーストアBのバックアップを作成します。(元のキーストアAは変更されません。)マージ操作を取り消すには、キーストアBから作成したバックアップに戻ります。

  • ADMINISTER KEY MANAGEMENT MERGE KEYSTORE SQL文を使用して、マージ操作を実行します。

    • たとえば、既存のキーストアへのマージ操作を実行する場合、次のようにします。

      ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1' 
      INTO EXISTING KEYSTORE '/etc/ORACLE/KEYSTORE/DB2' 
      IDENTIFIED BY password WITH BACKUP USING "merge1";
      

      新しいキーストアをバックアップ・キーストア(この場合、ewallet_time-stamp_merge1.p12という名前)に置き換えます。

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

新しいロケーションへのソフトウェア・キーストアの移動

WALLET_ROOTパラメータを更新した後で、新しい場所にソフトウェア・キーストアを移動します。

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

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

    例:

    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  2. ソフトウェア・キーストアをバックアップします。

    例:

    ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE 
    USING 'hr.emp_keystore' 
    FORCE KEYSTORE 
    IDENTIFIED BY 
    software_keystore_password TO '/etc/ORACLE/KEYSTORE/DB1/';
  3. ソフトウェア・キーストアを閉じます。

    キーストアを閉じる方法の例は次のとおりです。

    自動ログイン・ソフトウェア・キーストアの場合:

    ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE; 
    

    パスワード保護されたソフトウェア・キーストアの場合:

    ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE 
    IDENTIFIED BY software_keystore_password;
    

    パスワードが外部に格納されているキーストアの場合:

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

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

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

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

自動ストレージ管理からのソフトウェア・キーストアの移動

ADMINISTER KEY MANAGEMENT文を使用して、自動ストレージ管理からソフトウェア・キーストアを移動できます。

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

    例:

    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  2. 次の構文を使用して、ファイル・システム上のターゲット・キーストアを初期化します。
    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE targetKeystorePath 
    IDENTIFIED BY targetKeystorePassword;

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

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

    • targetKeystorePasswordは、キーストアに対して作成するパスワードです。

    例:

    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1/' IDENTIFIED BY "targetKeystorePassword"; 
  3. キーストアをASMから、先ほど作成したターゲット・キーストアにコピーします。

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

    ADMINISTER KEY MANAGEMENT MERGE KEYSTORE srcKeystorePath 
    IDENTIFIED BY srcKeystorePassword 
    INTO EXISTING KEYSTORE targetKeystorePath 
    IDENTIFIED BY targetKeystorePassword 
    WITH BACKUP USING backupIdentifier;

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

    • srcKeystorePathは、ソース・キーストアへのディレクトリ・パスです。

    • srcKeystorePasswordは、ソース・キーストアのパスワードです。

    • targetKeystorePathは、ターゲット・キーストアへのパスです。

    • targetKeystorePasswordは、ターゲット・キーストアのパスワードです。

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

    例:

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

ソフトウェア・パスワード・キーストアとハードウェア・キーストア間の移行

パスワード保護されたソフトウェア・キーストアとハードウェア・キーストアとの間で移行できます。

パスワード保護されたソフトウェア・キーストアからハードウェア・キーストアへの移行

パスワード保護されたソフトウェア・キーストアからハードウェア・キーストアへ移行できます。

ステップ1: ハードウェア・キーストアとともに開くためにソフトウェア・キーストアを変換する

一部のOracleツールでは、ソフトウェア・キーストアを使用してエクスポートまたはバックアップされたデータを暗号化または復号化するために、古いソフトウェア・キーストアにアクセスする必要があります。

これらのツールの例として、Oracle Data PumpやOracle Recovery Managerなどがあります。

  • ADMINISTER KEY MANAGEMENT SQL文を使用して、ハードウェア・キーストアとともに開くためにソフトウェア・キーストアを変換します。

    • ソフトウェア・キーストアのパスワードをハードウェア・キーストアのパスワードとして設定するには、次の構文を使用します。

      ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD 
      FORCE KEYSTORE
      IDENTIFIED BY software_keystore_password 
      SET "hardware_keystore_credentials" WITH BACKUP 
      [USING 'backup_identifier'];
      

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

      • software_keystore_passwordは、ソフトウェア・キーストアの作成時に使用したものと同じパスワードです。

      • hardware_keystore_credentialsは、ハードウェア・キーストアのパスワードと同じ新しいソフトウェア・キーストアのパスワードです。

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

    • ソフトウェア・キーストアの自動ログイン・キーストアを作成するには、次の構文を使用します。

      ADMINISTER KEY MANAGEMENT CREATE [LOCAL] AUTO_LOGIN KEYSTORE 
      FROM KEYSTORE 'keystore_location' 
      IDENTIFIED BY software_keystore_password;
      

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

      • LOCALでは、ローカル自動ログイン・ソフトウェア・キーストアを作成できます。そうでない場合、キーストアに他のコンピュータからアクセスできるようにするときは、この句を省略します。

      • keystore_locationは、sqlnet.oraファイルに構成されているキーストアのキーストア・ディレクトリの場所へのパスです。

      • software_keystore_passwordは、構成されているソフトウェア・キーストアの既存のパスワードです。

ステップ2: ハードウェア・セキュリティ・モジュール・キーストア・タイプを構成する

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

ソフトウェア・キーストアをハードウェア・キーストアと一緒に開くには、ソフトウェア・キーストアのパスワードがハードウェア・キーストアと同じであることが必要です。あるいは、ソフトウェア・キーストア用に自動ログイン・キーストアを作成できます。
  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  2. TDE_CONFIGURATION動的初期化パラメータを設定します。

    次の例は、TDEキーストアからハードウェア・キーストアに移行します。

    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=HSM|FILE";

    次の例は、TDEキーストアからOracle Key Vaultキーストアに移行します。

    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=OKV|FILE";
  3. データベースを再起動するか(CDBルートの場合)、PDBをクローズして再オープンします。

    CDBルートから再起動する場合:

    SHUTDOWN IMMEDIATE
    STARTUP

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

    ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
    ALTER PLUGGABLE DATABASE pdb_name OPEN;
ステップ3: ハードウェア・キーストアの移行を実行する

ADMINISTER KEY MANAGEMENT SQL文を使用して、ハードウェア・キーストアの移行を実行できます。

ソフトウェア・キーストアからハードウェア・キーストアに移行するには、ADMINISTER KEY MANAGEMENT SET KEY SQL文でMIGRATE USING keystore_password句を使用して、ソフトウェア・キーストアのTDEマスター暗号化キーで既存のTDE表キーおよび表領域暗号化キーを復号化してから、ハードウェア・キーストアの新しく作成したTDEマスター暗号化キーでそれらを再暗号化する必要があります。

移行の完了後、データベースを再起動したり、ハードウェア・キーストアを手動で再度開く必要はありません。移行プロセスにより、キーストアのキーがメモリーに自動的にリロードされます。

  • 次の構文を使用して、ハードウェア・キーストアを移行します。

    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    IDENTIFIED BY "user_name:password" 
    MIGRATE USING software_keystore_password 
    [WITH BACKUP [USING 'backup_identifier']];
    

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

    • user_name:passwordは、最初にハードウェア・セキュリティ・モジュールを作成したときに作成されたユーザーIDおよびパスワードです。この設定は二重引用符(" ")で囲み、user_namepasswordをコロン(:)で区切ります。

    • software_keystore_passwordは、ソフトウェア・キーストアの作成時に使用したものか、(ハードウェア・キーストアで開くためにソフトウェア・キーストアを変換したときに)変更したものと同じパスワードです。

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

注意:

公開キーによって暗号化された列がデータベースに含まれている場合は、その列が復号化されてから、HSMベースの透過的データ暗号化によって生成されたAES対称キーを使用して再暗号化されます。

ハードウェア・キーストアからパスワードベースのソフトウェア・キーストアへの移行

ハードウェア・キーストアは、ソフトウェア・キーストアに移行できます。

ハードウェア・キーストアからの再移行について

ハードウェア・キーストア・ソリューションの使用からソフトウェア・キーストアの使用に切り換えるには、キーストアの逆移行を使用できます。

以前のバックアップ・ファイルがハードウェア・セキュリティ・モジュールのTDEマスター暗号化キーに依存している場合は、切換え完了後に、ハードウェア・セキュリティ・モジュールを保持しておく必要があります。

初めにソフトウェア・キーストアからハードウェア・セキュリティ・モジュールに移行し、前に構成したTDEマスター暗号化キーの移行の説明に従ってソフトウェア・キーストアを再構成済の場合は、HSMパスワードと同じパスワードの既存のキーストアがすでに存在します。逆移行では、このキーストアを、新しいパスワードで新しいソフトウェア・キーストアとして動作するように構成します。既存のキーストアが自動ログイン・ソフトウェア・キーストアで、その自動ログイン・キーストアのパスワードベースのソフトウェア・キーストアがある場合、パスワードベースのキーストアを使用してください。パスワードベースのキーストアを使用できない場合、自動ログイン・キーストアを新しく作成した空のパスワードベースのキーストアにマージし、その新しく作成したパスワードベースのキーストアを使用します。

既存のキーストアがない場合、init.oraファイルのWALLET_ROOTパラメータを使用して、キーストア・ロケーションを指定する必要があります。逆移行を実行する場合、キーが失われないように前のキーストアに移行する必要があります。

ステップ1: ハードウェア・セキュリティ・モジュール・キーストア・タイプを構成する

ALTER SYSTEM文を使用して、ハードウェア・セキュリティ・モジュールのキーストア・タイプを構成できます。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  2. TDE_CONFIGURATION動的初期化パラメータを設定して、TDEキーストア・タイプを指定します。
    例:
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=HSM";
    KEYSTORE_CONFIGURATIONHSMに設定すると、自動ログインHSM構成を使用できなくなります。自動ログインHSM構成を使用するには、KEYSTORE_CONFIGURATIONHSM:FILEに設定します。
  3. データベースを再起動するか(CDBルートの場合)、PDBをクローズして再オープンします。

    CDBルートから再起動する場合:

    SHUTDOWN IMMEDIATE
    STARTUP

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

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

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

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  2. 次の構文を使用して、キーストアを逆移行します。
    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    IDENTIFIED BY software_keystore_password 
    REVERSE MIGRATE USING "user_name:password" 
    [WITH BACKUP [USING 'backup_identifier']]; 
    

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

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

    • user_name:passwordは、最初にハードウェア・セキュリティ・モジュールを作成したときに作成されたユーザーIDおよびパスワードです。前のハードウェア・セキュリティ・モジュール・ソフトウェア・キーストアが新しいキーストアの場合、逆移行コマンドを発行する前に、user_name:passwordと同じパスワードであることを確認する必要があります。この設定は二重引用符(" ")で囲みます。

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

    例:

    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    IDENTIFIED BY password 
    REVERSE MIGRATE USING "psmith:password" WITH BACKUP;
    
    keystore altered.
    
  3. オプションで、キーストア・パスワードを変更します。
    例:
    ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD 
    IDENTIFIED BY old_password 
    SET new_password 
    WITH BACKUP USING 'pwd_change';
ステップ3: ソフトウェア・キーストアとともに開くようにハードウェア・キーストアを構成する

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

データベースを再起動したり、ソフトウェア・キーストアを手動で再度開く必要はありません。

以前のキーは、暗号化されたバックアップで使用されているか、Oracle Data PumpやOracle Recovery Managerなどのツールによって使用されている可能性が高いため、逆移行の後でもハードウェア・キーストアが必要な場合があります。HSMをソフトウェア・キーストアとともに開くことができるように、ハードウェア・キーストア資格証明をキーストアにキャッシュする必要があります。

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

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

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

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

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

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

ソフトウェア・キーストアからHSMへの移行

HSM

FILE

PRIMARY

SECONDARY

HSMとソフトウェア・キーストアの両方が構成されます。TDEマスター暗号化キーは、HSMまたはソフトウェア・キーストアのいずれかに格納できます。

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

TDEマスター暗号化キーがプライマリ・キーストア(HSM)にない場合、ソフトウェア・キーストアで検索されます。

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

HSMからソフトウェア・キーストアへの逆移行

FILE

HSM

PRIMARY

SECONDARY

HSMとソフトウェア・キーストアの両方が構成されます。TDEマスター暗号化キーは、HSMまたはソフトウェア・キーストアのいずれかに格納できます。

TDEマスター暗号化キーは、まずソフトウェア・キーストアで検索されます。

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

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

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

Oracle Key Vaultを使用して、ソフトウェアおよびハードウェアの両方のキーストアをOracle Key Vault間で移行できます。

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

Oracle Key Vaultでは、仮想ウォレットと呼ばれるコンテナにキーストアをアップロードし、前にアップロードしたOracleキーストアの内容から新しい仮想ウォレットを作成できます。たとえば、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を使用して簡単に移動できます。

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

自動ストレージ管理(ASM)ディスク・グループにソフトウェア・キーストアを格納できます。

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

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

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

構成を実行するには、+記号、およびその後ろにASMディスク・グループ、キーストアを配置するパスを続けた文字列を指定する必要があります。例:

WALLET_ROOT=+disk_group/path

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

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

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

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

この場合、ALTER DISKGROUPコマンドを使用して、WALLET_ROOTの場所に必要なディレクトリを手動で作成する必要があります。WALLET_ROOTパラメータがOMF準拠の値を使用していない場合、ディレクトリ作成を自動化できないため、ALTER DISKGROUP ... ADD DIRECTORY文文を使用して必要なディレクトリを手動で作成する必要があります。
  1. SYSASM管理権限を使用して、統一モードのCDBルートまたは分離モードのPDBに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM (or CONNNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  2. TDE_CONFIGURATION動的初期化パラメータのKEYSTORE_CONFIGURATION属性がFILEに設定されていることを確認します。
    例:
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
  3. init.oraファイルで、WALLET_ROOT静的初期化パラメータにASMディスク・グループの場所を設定します。
    たとえば、disk_group_nameの後の次のパスには、大文字のOMFディレクトリ要素が含まれていません。
    WALLET_ROOT="+disk_group_name/mydir/wallets"
  4. SYSDBA管理権限を持つユーザーとして、ALTER DISKGROUP文を実行して必要なディレクトリを作成します。
    WALLET_ROOTに選択した場所がOracle Managed Filesのガイドラインに準拠していないため(つまり、OMFコンポーネントが大文字で含まれていないため)、データベース・サーバーがこれらのディレクトリの作成を自動化できないので、このステップを実行する必要があります。
    1. キーストアを格納するPDBのPDB GUIDを次のように検索します。
      SELECT GUID FROM DBA_PDBS WHERE PDB_NAME = 'pdb name';
    2. 次の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';
      

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

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

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

ソフトウェア・キーストアを暗号化データと同じ場所にバックアップしないでください。ソフトウェア・キーストアは別にバックアップします。自動ログイン・キーストアを使用している場合は、開くときにパスワードが要求されないため、特に注意してください。バックアップ・テープの紛失に備えて、悪意のあるユーザーが暗号化データとキーストアの両方を取得できないようにすることが大切です。

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

exclude name *.p12

この設定は、暗号化キーストアをバックアップ・セットから除外するようにOracle Secure Backupに指定します。

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

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

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

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

キーストアが一杯になりすぎた場合は、現在アクティブな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文を使用して、新しいキーストアにキーストア内のキーを移動する必要があります。

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

一部の機能は、キーストアの削除後にそのキーストアに存在する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バックグラウンド・プロセスでデータの書込みができなくなることで、データベース・インスタンスがハングまたはクラッシュする可能性があります。
    • データベース・インスタンスがクラッシュすると、データベース・インスタンス・リカバリおよびデータベース・クラッシュ・リカバリが失敗し、データベースを再起動できなくなります。

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

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

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

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

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マスター・キー属性およびタグは、PKCS#11データ・オブジェクトをサポートするハードウェア・セキュリティ・モジュールでのみサポートされます。
使用中の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));
    

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

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

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

属性タグにより、特定の端末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列に表示されます。

カスタム属性タグの作成

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

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  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はこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。

    • 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関数を使用することで、値を導出できます。

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

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

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

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

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

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

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

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

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

  • 次の構文を使用して、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はこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。

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

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

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

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

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

    例:

    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY 
    USING TAG 'backups" 
    IDENTIFIED BY password 
    WITH BACKUP USING 'hr.emp_key_backup';
    
    keystore altered.
    

    Oracle Databaseでは、初期化パラメータ・ファイルのWALLET_ROOTパラメータによって指定されているキーストア・ロケーションにあるキーストアを使用して、TDEマスター暗号化キーを格納します。

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というステータスは、対応する表領域がまだキー更新中であることを意味します。

注意:

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

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

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

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  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はこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。

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

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

      • keystore_passwordは、ステップ1: ソフトウェア・キーストアを作成するでキーストア作成時に作成した必須のキーストア・パスワードです。

    • 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.
    
表領域のTDEマスター暗号化キーの変更

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

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

    例:

    CONNECT c##sec_admin AS SYSKM (or CONNECT sec_admin@pdb_name AS SYSKM)
    Enter password: password
  2. 表領域が読取り-書込みモードで開いていることを確認します。

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

  3. 必要に応じて、読取り-書込みモードでデータベースを開きます。
    ALTER DATABASE OPEN READ WRITE;
  4. 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;

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

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

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

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

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

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

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

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

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

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

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

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

  • 次の構文を使用して、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はこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。

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

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

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

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

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

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

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

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

例7-2 ファイルへの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.
例: ファイルへのTDEマスター暗号化キー識別子のリストのエクスポート

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

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

例7-3 副問合せを使用した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.
例: データベースのすべてのTDEマスター暗号化キーのエクスポート

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

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

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

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

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

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

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

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はこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。

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

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

      • software_keystore_passwordは、キーがインポートされているソフトウェア・キーストアのパスワードです。

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

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

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

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

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

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

keystore altered.
キーストアのマージと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マスター暗号化キーのメタデータが変更されることがあります。

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

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

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

透過的データ暗号化のデータの動的ビューおよびデータ・ディクショナリ・ビュー

透過的データ暗号化(TDE)データに関する詳細情報を検索するために、一連の動的ビューおよびデータ・ディクショナリ・ビューを問い合せることができます。

表7-2に、これらの動的ビューおよびデータ・ディクショナリ・ビューを示します。

表7-2 透過的データ暗号化の関連ビュー

ビュー 説明

ALL_ENCRYPTED_COLUMNS

現在のユーザーがアクセスできる表内の暗号化列に関する暗号化情報が表示されます。

DBA_ENCRYPTED_COLUMNS

データベースにあるすべての暗号化列の暗号化情報が表示されます。

USER_ENCRYPTED_COLUMNS

現在のユーザーのスキーマにある暗号化された表の列の暗号化情報が表示されます。

DBA_TABLESPACE_USAGE_METRICS

永続、一時、およびUNDO表領域を含むすべてのタイプの表領域についての表領域使用状況メトリックを示します

V$CLIENT_SECRETS

様々な機能(クライアント)用のキーストアに格納された文字列(シークレット)のプロパティが一覧表示されます。

マルチテナント環境では、PDB内のこのビューを問い合せると、現在のPDB用に作成またはアクティブ化されたキーに関する情報が表示されます。rootでこのビューを問い合せると、すべてのPDBのキーに関するこの情報が表示されます。

V$DATABASE_KEY_INFO

現在のデータベースに使用されているデフォルトの暗号化キーについての情報を表示します。デフォルトはAES128です。

V$ENCRYPTED_TABLESPACES

暗号化された表領域に関する情報が表示されます。

V$ENCRYPTION_KEYS

ADMINISTER KEY MANAGEMENT文でキー更新されたキーとともに使用されたときには、TDEマスター暗号化キーについての情報を表示します。

マルチテナント環境では、PDB内のこのビューを問い合せると、現在のPDB用に作成またはアクティブ化されたキーに関する情報が表示されます。rootでこのビューを問い合せると、すべてのPDBのキーに関するこの情報が表示されます。

V$ENCRYPTION_WALLET

TDEのキーストアのステータスおよびキーストアの場所に関する情報が表示されます。

V$WALLET

TDEのマスター暗号化キーとして使用できるPKI証明書のメタデータ情報が表示されます。