9 分離モードの管理
分離モードの管理とは、キーストア、マスター暗号化キーおよび透過的データベース暗号化(TDE)の一般的な機能を管理することを意味します。
9.1 分離モードでのキーストアおよびTDEマスター暗号化キーの管理
分離モードでキーストアおよびTDEマスター暗号化キーを作成すると、暗号化キーに対してキー更新やタグ付けなどの管理タスクを実行できるようになります。
外部キーストアのパスワードを変更するには、外部キーストアの管理インタフェースを使用する必要があります。ADMINISTER KEY MANAGEMENT文を使用して、この操作を実行することはできません。
9.1.1 分離モードでのキーストア・パスワードの変更
PDBが分離モードの場合に、TDEウォレットのパスワードを変更できます。
外部キーストアのパスワードを変更するには、外部キーストアの管理インタフェースを使用する必要があります。ADMINISTER KEY MANAGEMENT文を使用して、この操作を実行することはできません。
9.1.1.1 分離モードでのパスワードで保護されたTDEウォレット・パスワードの変更
分離モードで、パスワードで保護されたTDEウォレットのパスワードを変更するには、ADMINISTER KEY MANAGEMENT文を使用する必要があります。
WITH BACKUP句を指定する必要があるため、常に現在のTDEウォレットのバックアップが作成されます。パスワードの変更操作中、暗号化や復号化などの透過的データ暗号化操作は正常に動作し続けます。このパスワードはいつでも変更できます。このパスワードは、安全性が損なわれた可能性があると思われる場合には変更することをお薦めします。
関連トピック
9.1.2 分離モードでのパスワードで保護されたTDEウォレットのバックアップ
ADMINISTER KEY MANAGEMENT文のBACKUP KEYSTORE句は、パスワードで保護されたTDEウォレットをバックアップします。
関連トピック
9.1.3 分離モードでのTDEウォレットのマージ
分離モードでは、TDEウォレットをマージできます。
9.1.3.1 分離モードでの1つのTDEウォレットの既存のTDEウォレットへのマージ
分離モードでは、ADMINISTER KEY MANAGEMENT文をMERGE KEYSTORE句とともに使用すると、1つのTDEウォレットを既存の別のTDEウォレットにマージできます。
TDE_wallet2)は、TDEウォレットのマージ操作後もパスワードで保護されたTDEウォレットに残ります。
関連トピック
9.1.4 分離モードでキーストアを閉じる
システム表領域が暗号化されていないかぎり、分離モードでソフトウェア・キーストアと外部キーストアの両方を閉じることができます。
9.1.4.1 分離モードでのTDEウォレットのクローズ
分離モードでは、パスワードで保護されたTDEウォレット、自動ログインTDEウォレットおよびローカル自動ログインTDEウォレットを閉じることができます。
関連トピック
9.1.5 分離モードでのユーザー定義のTDEマスター暗号化キーの作成
ユーザー定義のTDEマスター暗号化キーを作成するには、SET | CREATE [ENCRYPTION] KEY句を含むADMINISTER KEY MANAGEMENT文を使用します。
9.1.6 分離モードでの後で使用するためのTDEマスター暗号化キーの作成
分離モードで、後で使用するTDEマスター暗号化キーを作成するには、事前にキーストアが開かれている必要があります。
関連トピック
9.1.7 分離モードでのTDEマスター暗号化キーのアクティブ化
分離モードでTDEマスター暗号化キーをアクティブ化するには、キーストアを開き、USE KEY句を含むADMINISTER KEY MANAGEMENTを使用する必要があります。
関連トピック
9.1.8 分離モードでのTDEマスター暗号化キーのキー更新
SET KEY句を含むADMINISTER KEY MANAGEMENT文を使用して、TDEマスター暗号化キーをキー更新できます。
関連トピック
9.1.9 分離モードでのTDEマスター暗号化キーの新しいキーストアへの移動
分離モードでは、既存のTDEマスター暗号化キーを既存のパスワードTDEウォレットから新しいTDEウォレットに移動できます。
9.1.10 分離モードでのカスタム属性タグの作成
分離モードでカスタム属性タグを作成するには、ADMINISTER KEY MANAGEMENT文のSET TAG句を使用する必要があります。
関連トピック
9.1.11 分離モードでのTDEマスター暗号化キーのエクスポートおよびインポート
分離モードでは、様々な方法でTDEマスター暗号化キーをエクスポートおよびインポートできます。
9.1.11.1 分離モードでのTDEマスター暗号化キーのエクスポート
分離モードで、ADMINISTER KEY MANAGEMENT文を使用して、TDEマスター暗号化キーをエクスポートできます。
関連トピック
9.1.12 分離モードでのOracle Databaseシークレットの保管
シークレットとは、Oracle GoldenGateなどの外部クライアントをデータベースに統合するOracle Databaseの内部機能をサポートするデータです。
9.1.12.1 分離モードでのキーストアへのOracle Databaseシークレットの格納について
キーストア(TDEウォレットと外部キーストアの両方)では、Oracle Databaseの内部機能をサポートするシークレットを格納したり、Oracle GoldenGateなどの外部クライアントを統合できます。
秘密キーはOracleの識別子規則に従った文字列である必要があります。既存のキーストアでクライアントのシークレットを追加、更新または削除できます。Oracle GoldenGateのExtractプロセスでは、データ・ファイル内およびREDOまたはUNDOログ内のデータを復号化するためにデータ暗号化キーが必要です。キーは、Oracle DatabaseとOracle GoldenGateクライアントの間でキーを共有するときに、共有シークレットによって暗号化されます。TDEウォレットには、共有シークレットが格納されます。
サイトの要件によっては、外部キーストアが構成されている場合でも、自動的にキーストアを開く操作が必要となる場合があります。そのため、外部キー・マネージャ・パスワードを自動ログインTDEウォレットに格納し、外部キー・マネージャで自動ログイン機能を有効にできます。また、Oracle Database側では、データベースの資格証明を格納して、TDEウォレットで外部ストレージ・サーバーにログインできます。
Oracle DatabaseのシークレットをTDEウォレットと外部キーストアの両方に格納できます:
-
TDEウォレット: シークレットは、パスワードベースのTDEウォレット、自動ログインTDEウォレットおよびローカルの自動ログインTDEウォレットに格納できます。シークレットを自動ログイン(または自動ログイン・ローカル)TDEウォレットに格納する場合は、次のことに注意してください:
-
自動ログインTDEウォレットが対応するパスワードベースのTDEウォレットと同じ場所にある場合、シークレットが自動的に追加されます。
-
自動ログインTDEウォレットが、対応するパスワードベースのTDEウォレットと異なる場所にある場合は、パスワードベースのTDEウォレットから自動ログインTDEウォレットを再度作成し、2つのウォレットを同期させる必要があります。
-
-
外部キーストア: シークレットを標準外部キー・マネージャに格納できます。
関連トピック
9.1.12.2 分離モードでのTDEウォレットへのOracle Databaseシークレットの格納
ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET文を使用して、TDEウォレットでのシークレットの追加、シークレットの更新、およびシークレットの削除を行うことができます。
9.1.12.3 例: TDEウォレットへのOracle Key Vaultパスワードの追加
ADMINISTER KEY MANAGEMENT ADD SECRET文によって、TDEウォレットにOracle Key Vaultパスワードを追加できます。
例9-1に、既存のTDEウォレットにOracle Key Vaultパスワードをシークレットとして追加する方法を示します(たとえば、Oracle Key Vaultへの移行後、Oracle Key Vaultのパスワードを古いTDEウォレットに追加して、Oracle Key Vaultへの自動オープン接続を設定できます)。
例9-1 TDEウォレットへのOracle Databaseのシークレットの追加
ADMINISTER KEY MANAGEMENT ADD SECRET 'external_key_manager_password' FOR CLIENT 'OKV_PASSWORD' IDENTIFIED BY TDE_wallet_password WITH BACKUP;
TDEウォレットからOracle Key Vaultに移行する前に、Oracle Key Vaultのそのエンドポイントの仮想ウォレットにTDEウォレットをアップロードできます。移行後、そのキーが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'に変更します。
9.1.12.4 例: TDEウォレットにシークレットとして格納されているOracle Key Vaultパスワードの変更
ADMINISTER KEY MANAGEMENT UPDATE SECRET文によって、TDEウォレットにシークレットとして格納されているOracle Key Vaultパスワードを変更できます。
例9-2に、TDEウォレットにシークレットとして格納されているOracle Key Vaultパスワードを変更する方法を示します。
例9-2 TDEウォレットでのOracle Key Vaultパスワード・シークレットの変更
ADMINISTER KEY MANAGEMENT UPDATE SECRET admin_password FOR CLIENT 'admin@myhost' USING TAG 'new_host_credentials' FORCE KEYSTORE IDENTIFIED BY TDE_wallet_password;
次のバージョンでは、キーストアのパスワードは外部ストアにあります。
DMINISTER KEY MANAGEMENT UPDATE SECRET admin_password FOR CLIENT 'admin@myhost' USING TAG 'new_host_credentials' FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE;
9.1.12.5 例: TDEウォレットにシークレットとして格納されているOracle Key Vaultパスワードの削除
ADMINISTER KEY MANAGEMENT DELETE SECRET文によって、TDEウォレットにシークレットとして格納されているOracle Key Vaultパスワードを削除できます。
例9-3に、TDEウォレットにシークレットとして格納されているOracle Key Vaultパスワードを削除する方法を示します。
例9-3 TDEウォレットでのOracle Key Vaultパスワード・シークレットの削除
ADMINISTER KEY MANAGEMENT
DELETE SECRET FOR CLIENT 'OKV_PASSWORD'
FORCE KEYSTORE
IDENTIFIED BY TDE_wallet_password WITH BACKUP;次のバージョンでは、TDEウォレットのパスワードは外部ストアにあります:
ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT 'OKV_PASSWORD' FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE WITH BACKUP;
9.1.12.6 分離モードでの外部キーストアへのOracle Databaseのシークレットの保管
ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET文を使用して、キーストアでのシークレットの追加、シークレットの更新、およびシークレットの削除を行うことができます。
9.1.12.7 例: 外部キーストアへのOracle Databaseのシークレットの追加
ADMINISTER KEY MANAGEMENT ADD SECRET文によって、外部キーストアにOracle Databaseのシークレットを追加できます。
例9-4に、ユーザーのパスワードを外部キーストアに追加する方法を示します。
例9-4 外部キーストアへの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;
9.1.12.8 例: 外部キーストアでのOracle Databaseのシークレットの変更
ADMINISTER KEY MANAGEMENT MANAGEMENT UPDATE SECRET文によって、外部キーストアにあるOracle Databaseシークレットを変更できます。
例9-5に、外部キーストアにシークレットとして格納されているパスワードを変更する方法を示します。
例9-5 外部キーストアでの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;
9.1.12.9 例: 外部キーストアでのOracle Databaseのシークレットの削除
ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT文によって、外部キーストアにあるOracle Databaseシークレットを削除できます。
例9-6に、外部キーストアにシークレットとして格納されている外部キー・マネージャ・パスワードを削除する方法を示します。
例9-6 外部キーストアでの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;
9.1.13 分離モードでのキーストアへのOracle GoldenGateシークレットの格納
Oracle GoldenGateシークレットを透過的データ暗号化キーストアに格納できます。
9.1.13.1 分離モードでのキーストアへのOracle GoldenGateシークレットの格納について
キーストア(TDEウォレットまたは外部キーストア)を使用して、ツールおよびOracle GoldenGateなどの外部クライアントの秘密キーを格納できます。
秘密キーはOracleの識別子規則に従った文字列である必要があります。既存のキーストアでクライアントのシークレットを追加、更新または削除できます。この項では、Oracle GoldenGateのExtract(抽出)プロセスでクラシック・キャプチャ・モードを使用して、透過的データ暗号化によって暗号化されたデータを取得する方法について説明します。
Extractがクラシック・キャプチャ・モードの場合、TDEをサポートするには次のキーの交換が必要です。
-
Extractプロセスのクラシック・キャプチャ・モードでのTDEによるOracle GoldenGateのサポートでは、Oracle DatabaseとExtractプロセスでシークレットを共有して、交換される機密情報を暗号化する必要があります。共有シークレットは、Oracle DatabaseおよびOracle GoldenGateドメインに安全に格納されます。共有シークレットは、TDEウォレットまたは外部キーストアにデータベース・シークレットとして格納されます。
-
復号化キーは、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機能のパフォーマンス上の影響はありません。
9.1.13.2 Oracle GoldenGate Extractのクラシック・キャプチャ・モードのTDE要件
Oracle GoldenGate Extractで透過的データ暗号化の取得をサポートするための要件を満たしていることを確認します。
要件は次のとおりです。
-
高いセキュリティ基準を維持するには、Oracle GoldenGateのExtractプロセスがOracleユーザー(Oracle Databaseを実行するユーザー)の一部として実行されるようにします。これにより、キーはOracleユーザーと同じ権限によってメモリー内で保護されます。
-
Oracle GoldenGateのExtractプロセスを、Oracle Databaseインストールと同じコンピュータで実行します。
9.1.13.3 Oracle GoldenGate用のキーストア・サポートの構成
Oracle GoldenGateのために透過的データ暗号化キーストアのサポートを構成するには、キーストアの共有シークレットを使用します。
9.1.13.3.1 ステップ1: キーストアの共有シークレットを決定する
キーストアの共有シークレットはパスワードです。
-
Oracle Databaseのパスワード基準を満たす(または超える)共有シークレットを決定します。
このパスワードは、Oracle GoldenGate Extractと連携するように透過的データ暗号化を構成する作業を担当する、信頼できる管理者以外のユーザーと共有しないでください。
関連トピック
9.1.13.3.2 ステップ2: TDEによるOracle GoldenGateのサポートのためにOracle Databaseを構成する
DBMS_INTERNAL_CLKM PL/SQLパッケージを使用して、Oracle GoldenGateのためにTDEのサポートを構成できます。
9.1.13.3.3 ステップ3: TDE GoldenGate共有シークレットをキーストアに格納する
ADMINISTER KEY MANAGEMENT文によって、TDE GoldenGate共有シークレットをキーストアに格納できます。
9.1.14 分離モードでのキーストアの移行
分離モードでは、TDEウォレットと外部キーストア間の移行操作と逆移行操作を実行できます。
9.1.14.1 Oracle Key VaultからTDEウォレットへの分離されたPDBの逆移行
分離されたPDBには個別のキーストア(TDEウォレットまたはOracle Key Vault外部キーストア)があり、TDEウォレットからOracle Key Vaultに個別に移行したり、Oracle Key VaultからTDEウォレットに個別に逆移行することが可能です。
9.1.14.2 分離モードでの外部キーストアからパスワードで保護されたTDEウォレットへの移行
分離モードでは、外部キーストアからパスワードで保護されたTDEウォレットに移行できます。
HSM_PASSWORDクライアント・シークレットを配置する必要があります。たとえば: ADMINISTER KEY MANAGEMENT ADD SECRET 'external_key_manager_password' FOR CLIENT 'EXTERNAL_PASSWORD' TO LOCAL AUTO_LOGIN KEYSTORE TDE_wallet_location WITH BACKUP;
9.1.15 プラガブル・データベースのキーストアの統合
PDBキーストアを統合すると、TDEマスター暗号化キーがPDBキーストアからCDBルートのキーストアに移されます。これにより、CDBルートのキーストアの管理者がキーを管理できるようになります。
ADMINISTER KEY MANAGEMENT ISOLATE KEYSTORE文を使用できます。
ORA-46694エラー: ウォレットがPDBコンテキストで作成された場合、PDBのキーストア・タイプは分離に変更され、PDBにキーが設定されていないかぎり、ウォレット・ステータスはOPEN_NO_MASTER_KEYになります。このタイプのPDBをADMINISTER KEY MANAGEMENT UNITE KEYSTORE文を使用して統合すると、ORA-46694: The keys are already in the root keystoreエラーが発生します。このPDBのKEYSTORE_MODEをUNITEDに変更するには、PDBのTDE構成を変更する必要があります。PDBで、次の文を実行します。
ALTER SYSTEM RESET TDE_CONFIGURATION;関連トピック
9.1.16 PDBクローズ時のキーストアの作成
閉じているPDBでキーストアを作成すると、新しいキーストアは空になり、PDBが分離モードに変換されます。
9.1.16.1 PDBクローズ時のキーストアの作成について
閉じているPDBでキーストアを作成すると、キー更新操作で誤って問題が発生する可能性がありますが、このキーストアの作成は元に戻すことができます。
以前のリリースでは、閉じているPDBでキーストアを作成しようとすると、この操作が中止され、「ORA-65040: プラガブル・データベース内からの操作は許可されていません」というエラーが表示されていました。Oracle Databaseリリース18c以降では、利便性のために、PDBのキーストアが閉じているときにPDBでADMINISTER KEY MANAGEMENT CREATE KEYSTORE文を実行しても、Oracle Databaseによってその操作が中止されることはなくなりました。
閉じられたPDBが暗号化を使用するように構成されていない(つまりADMINISTER KEY MANAGEMENT SET KEY文が実行されたことがない)場合は、ADMINISTER KEY MANAGEMENT CREATE KEYSTOREを実行して、空のキーストアが作成され、PDBの構成が分離モードに変更されると、この空のキーストア内にTDEマスター暗号化キーを作成できます。
しかし、PDBがすでに暗号化を使用するように構成されている場合は、そのPDBが統一モードで構成されている可能性があります(この場合、そのTDEマスター暗号化キーはCDBルートのキーストア内で管理されています)。
このような場合に、閉じられたPDBで誤ってADMINISTER KEY MANAGEMENT CREATE KEYSTORE文を実行すると、追加の(空の)キーストアが作成され、PDBが分離モードで構成されます。これを行うと、PDBが(統一モードになっている必要があるが)分離モードに変更される一方で、TDEマスター暗号化キーは引き続きCDBルートのキーストアにあるため、PDBの構成に誤りが生じることになります。この構成上の誤りによって、後からADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY文を使用してTDEマスター暗号化キーをキー更新しようとした場合に、問題が生じる可能性があります。暗号化がすでに有効化されており、キーが設定されている場合、Oracle DatabaseはADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY文をキー更新操作として処理するため、この場合は「ORA-28362: マスター・キーが見つかりません」というエラーが表示されます。キー更新操作を実行するには、Oracle DatabaseがPDBの現在アクティブなTDEマスター暗号化キーを特定する必要があります。しかし、PDBの構成にこのような誤りがあると、PDBが分離モードになっており、必要なキーはCDBルートのキーストア内にあるため、Oracle DatabaseがTDEマスター暗号化キーを特定できません。つまり、PDBのキーストアを検索するようにPDBが構成されることはなく、キー更新操作も失敗します。
PDBのこの構成上の誤りを修正するには、PDBを統一モードに再構成して、空のキーストアを削除する必要があります。(キーストアを削除するときは、必ず事前にバックアップを作成してください。)PDBの構成を統一モードに戻すと、現在アクティブなTDEマスター暗号化キーに対して、キー更新や、TDEマスター暗号化キーを対象としたその他の操作を、再び実行できるようになります。
後からこのPDBを分離モードに構成するには、PDBを開き、ADMINISTER KEY MANAGEMENT ISOLATE KEYSTORE文を実行します。これにより、PDBが分離され、そのTDEマスター暗号化キーと、以前にアクティブであったキー(履歴)が、CDBルートのキーストアから、新しく作成された分離PDBのキーストアに移されます。
関連トピック
9.1.16.2 PDBクローズ時のキーストア作成操作を元に戻す
PDBで誤ってキーストアを作成した(それによってPDBが分離モードで構成された)場合は、キーストアの作成操作を元に戻す必要があります。
ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、分離モードのPDBに接続します。V$ENCRYPTION_WALLET動的ビューのKEYSTORE_MODE列を問い合せて、PDBのモードを確認します。V$ENCRYPTION_WALLETの出力がISOLATEDである場合は、ALTER SYSTEM文を実行して、PDBを統一モードに再構成します。- pfileが使用されている場合は、次の文を使用して、
TDE_CONFIGURATIONパラメータをクリアします。ALTER SYSTEM RESET TDE_CONFIGURATION SCOPE=MEMORY;
Oracle Real Application Clusters環境では、次のように、
SIDパラメータを指定します。ALTER SYSTEM RESET TDE_CONFIGURATION SCOPE=MEMORY SID='*';
- spfileが使用されている場合は、次の文を使用して、
TDE_CONFIGURATIONパラメータをクリアします。ALTER SYSTEM RESET TDE_CONFIGURATION SCOPE=BOTH;
Oracle Real Application Clusters環境では、次のように、
SIDパラメータを指定します。ALTER SYSTEM RESET TDE_CONFIGURATION SCOPE=BOTH SID='*';
- pfileが使用されている場合は、次の文を使用して、
WALLET_ROOT/pdb_guid/tdeディレクトリで、誤って作成されたewallet.p12キーストア・ファイルを見つけてバックアップします。- 誤って作成された空のキーストア・ファイルを削除します。
9.2 分離モードでの透過的データ暗号化の管理
分離モードでは、透過的データ暗号化に対する一般的な管理タスクをいくつか実行できます。
9.2.1 分離モードでの暗号化されたPDBのクローニングまたは再配置
暗号化されたPDBを同じコンテナ・データベース内またはコンテナ・データベース間でクローニングまたは再配置できます。
SYSTEM、SYSAUX、UNDOまたはTEMP表領域が暗号化されているPDBを移動し、キーの手動エクスポートまたはインポートを使用する場合は、まずPDBを作成する前に、ターゲット・データベースのCDB$ROOTにあるPDBのキーをインポートする必要があります。キーをPDBに関連付けるには、PDB内でキーのインポートが再度必要です。
関連トピック
9.2.2 分離モードでの暗号化データを含むPDBのCDBに対するアンプラグとプラグイン
分離モードで、暗号化データを含むPDBをCDBにプラグインできます。反対に、このPDBをCDBからアンプラグすることもできます。
9.2.2.1 分離モードでの暗号化データを含むPDBのアンプラグ
(暗号化データを含む)PDBを、あるCDBからアンプラグし、必要に応じて別のCDBにプラグインできます。
ALTER PLUGGABLE DATABASE文でENCRYPT句を指定する必要はありません。アンプラグされるデータベースには、データ・ファイルおよび他の関連ファイルが含まれています。各PDBには独自の一意のキーストアがあるため、アンプラグするPDBのTDEマスター暗号化キーをエクスポートする必要はありません。PDBがすでにアンプラグされているかどうかを確認するには、DBA_PDBSデータ・ディクショナリ・ビューのSTATUS列を問い合せます。
9.2.2.2 分離モードでの暗号化データを含むPDBのCDBへのプラグイン
暗号化データを含むPDBをCDBにプラグインすると、そのPDB内で暗号化キーを設定できます。
CREATE PLUGGABLE DATABASE文でDECRYPT句を指定する必要はありません。アンプラグされたPDBを別のCDBにプラグインする際、この操作は以前のキーの履歴を無効にするため、キー・バージョンは0に設定されます。キー・バージョンは、V$ENCRYPTED_TABLESPACES動的ビューのKEY_VERSIONを問い合せて確認できます。同様に、制御ファイルが失われ再作成された場合、以前のキーの履歴は0にリセットされます。PDBがすでにプラグインされているかどうかを確認するには、DBA_PDBSデータ・ディクショナリ・ビューのSTATUS列を問い合せます。
-
アンプラグされたPDBをCDBにプラグインして、PDBを作成します。
-
たとえば、PDBデータをメタデータXMLファイルにエクスポートした場合は、次のように指定します。
CREATE PLUGGABLE DATABASE CDB1_PDB2 USING '/tmp/cdb1_pdb2.xml' NOCOPY KEYSTORE IDENTIFIED BY password; -
PDBをアーカイブ・ファイルにエクスポートした場合は、次のように指定します。
CREATE PLUGGABLE DATABASE CDB1_PDB2 USING '/tmp/cdb1_pdb2.pdb';
プラグ操作後のPDBのオープン操作中に、Oracle DatabaseによってPDBに暗号化データが含まれるかどうかが判別されます。その場合、PDBは
RESTRICTEDモードでオープンされます。V$ENCRYPTION_KEYS動的ビューを問い合せることで、ソース・データベースに暗号化データがあるかどうかや、キーストアにTDEマスター暗号化キーが設定されているかどうかを確認できます。 -
-
PDBをオープンします。
たとえば:
ALTER PLUGGABLE DATABASE CDB1_PDB2 OPEN;
-
CDBルートのキーストアを開きます。
たとえば:
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;必要に応じて、PDB内のキーストアを開きます。
-
PDBでキーストアを開き、PDBのTDEマスター暗号化キーを設定します。
たとえば:
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY keystore_password WITH BACKUP USING 'emp_key_backup';
9.2.2.3 分離モードでの外部キーストアにマスター暗号化キーが格納されたPDBのアンプラグ
外部キーストアを使用するように構成されたCDBからPDBをアンプラグした後、それを同様に外部キーストアを使用するように構成された別のCDBにプラグインできます。
関連トピック
9.2.3 分離モードでの暗号化データを含むPDBのCDBへのクローニング
KEYSTORE IDENTIFIED BY句を含むCREATE PLUGGABLE DATABASE文によって、暗号化データを含むPDBをクローニングできます。
9.2.4 分離モードでの暗号化されたPDBのリモートからのクローニング
KEYSTORE IDENTIFIED BY句を含むCREATE PLUGGABLE DATABASE文によって、暗号化データを含むPDBをリモートからクローニングできます。
9.2.5 分離モードでの暗号化されたPDBの再配置
KEYSTORE IDENTIFIED BY句を含むCREATE PLUGGABLE DATABASE文によって、暗号化データを含むクローニングされたPDBをCDB間で再配置できます。
9.2.6 分離モードでのキーストアの開閉操作の機能
分離モードでのキーストア(TDEウォレットまたは外部キーストア)の開閉操作がどのように機能するかを知っておく必要があります。
分離モードのPDBごとに、透過的データ暗号化の操作が続行できるように、PDBで明示的にパスワードで保護されたTDEウォレットまたは外部キーストアを開く必要があります。(自動ログインTDEウォレットとローカル自動ログインTDEウォレットは自動的に開きます。)PDBのキーストアを閉じることによって、PDBのすべての透過的データ暗号化操作がブロックされます。
PDBにおけるキーストアの開閉操作は、PDBにおけるキーストアの開閉状態によって異なります。
次の点に注意してください。
-
マルチテナント環境では、各PDBについて個別のキーストア・パスワードを作成できます。
-
個々のPDBでパスワード保護されたソフトウェアまたは外部キーストアを手動で開く前に、CDBルートでキーストアを開く必要があります。
-
自動ログインTDEウォレットが使用中の場合やTDEウォレットが閉じている場合は、TDEウォレットを開くときに
ADMINISTER KEY MANAGEMENT文にFORCE KEYSTORE句を含めます。 -
キーストアがパスワードで保護されたTDEウォレット(パスワードのために外部ストアを使用するウォレット)の場合は、
IDENTIFIED BY句のパスワードをEXTERNAL STOREに置き換えます。 -
個々のPDBでTDEマスター暗号化キーを設定するには、事前にCDBルートでキーを設定する必要があります。PDBにキーを設定するときに
USING TAG句を含めることをお薦めします。たとえば:SELECT ' ADMINISTER KEY MANAGEMENT SET KEY USING TAG '''||SYS_CONTEXT('USERENV', 'CON_NAME')||' '||TO_CHAR (SYSDATE, 'YYYY-MM-DD HH24:MI:SS')||''' FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE WITH BACKUP CONTAINER = CURRENT;' AS "SET KEY COMMAND" FROM DUAL;USING TAG句を含めると、特定のPDBに属するキーと、それらがいつ作成されたかを迅速かつ容易に識別できます。 -
自動ログインTDEウォレットとローカル自動ログインTDEウォレットは自動的に開きます。これらを最初にrootからまたはPDBから、手動で開く必要はありません。
-
分離モードで構成されたPDBがあり、そのキーストアが開いている場合は、CDBルート内のキーストアを閉じようとすると、「
ORA-46692 ウォレットをクローズできません」というエラーが発生して失敗します。この動作をオーバーライドするには、ADMINISTER KEY MANAGEMENT文でFORCE CLOSE句を使用します。 -
CDBルートで
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN文を実行し、CONTAINER句をALLに設定した場合、キーストアは、統一モードで構成されている各オープンPDBでのみ開くことになります。分離モードで構成されているPDBのキーストアはオープンされません。
9.2.7 分離モードでのPDBのマスター暗号化キーのエクスポートおよびインポート
分離モードでは、ADMINISTER KEY MANAGEMENT EXPORTのEXPORT句およびIMPORT句を使用して、PDBのマスター暗号化キーをエクスポートまたはインポートできます。
9.2.7.1 分離モードでのPDBのマスター暗号化キーのエクスポートおよびインポートについて
分離モードでは、CDBルートからマスター暗号化キーをエクスポートおよびインポートできます。
また、PDB内からマスター暗号化キーをエクスポートおよびインポートすることで、PDBに属するすべてのマスター暗号化キーをエクスポートおよびインポートできます。PDBでのマスター暗号化キーのエクスポート操作およびインポート操作では、PDBのアンプラグおよびプラグイン操作がサポートされます。PDBのアンプラグ操作およびプラグイン操作では、PDBに属するすべてのマスター暗号化キー、およびメタデータが対象になります。したがって、PDB内からキーをエクスポートする場合、ADMINISTER KEY MANAGEMENT EXPORT文のWITH IDENTIFIER句は許可されません。WITH IDENTIFIER句は、CDBルートでのみ使用できます。
CDBルートに自動ログイン・キーストアがある場合、またはキーストアが閉じている場合は、FORCE KEYSTORE句を含める必要があります。キーストアがパスワードに外部ストアを使用するように構成されている場合、IDENTIFIED BY EXTERNAL STORE句を使用します。たとえば、このシナリオにおいてエクスポート操作を実行するには、次のようにします。
ADMINISTER KEY MANAGEMENT EXPORT KEYS WITH SECRET "my_secret" TO '/etc/TDE/export.exp' FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE;
このADMINISTER KEY MANAGEMENT EXPORT操作では、キーがエクスポートされるだけでなく、PDB環境(およびクローニング操作)に必要なメタデータも作成されます。
PDBの内部では、マスター暗号化キーのエクスポート操作によって、キーがエクスポートされるPDBと同じGUIDを持つPDBにより作成またはアクティブ化されたキーがエクスポートされます。基本的に、エクスポートが実行されるPDBに属しているすべてのキーがエクスポートされます。
PDB内のエクスポート・ファイルからマスター暗号化キーがインポートされるのは、そのマスター暗号化キーが同じGUIDを持つ別のPDBからエクスポートされている場合のみです。非CDBのプラグインをCDBへのPDBとしてサポートできるようにするには、非CDBからTDEマスター暗号化キーをエクスポートし、WITH IDENTIFIER句なしでPDBにインポートしておく必要があります。PDB名やデータベースIDなどのPDB固有の詳細は、CDBごとに変化する可能性があるため、PDB固有の情報は、更新されたPDB情報を反映するようにインポート時に変更されます。
ノート:
PDB内では、PDB全体のキーのみエクスポートできます。問合せまたは識別子に基づいた選択的なエクスポート機能はrootに制限されています。
9.2.7.2 分離モードでのPDBのマスター暗号化キーのエクスポートまたはインポート
分離モードでは、ADMINISTER KEY MANAGEMENT文によって、PDBのマスター暗号化キーをエクスポートまたはインポートできます。
9.2.7.3 例: 分離モードでのPDBからのマスター暗号化キーのエクスポート
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS文によって、PDBのマスター暗号化キーをエクスポートできます。
例9-7は、PDB hrpdbからマスター暗号化キーをエクスポートする方法を示しています。この例では、自動ログイン・キーストアが使用されているか、キーストアが閉じている場合のために、FORCE KEYSTORE句が含められています。
例9-7 PDBからマスター暗号化キーをエクスポート
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS
WITH SECRET "my_secret" TO '/tmp/export.p12'
FORCE KEYSTORE
IDENTIFIED BY password;
9.2.7.4 例: 分離モードでのPDBへのマスター暗号化キーのインポート
ADMINISTER KEY MANAGEMENT IMPORT ENCRYPTION KEYS文によって、PDBにマスター暗号化キーをインポートできます。
例9-8は、PDB hrpdbにマスター暗号化キーをインポートする方法を示しています。
例9-8 PDBにマスター暗号化キーをインポート
ADMINISTER KEY MANAGEMENT IMPORT ENCRYPTION KEYS
WITH SECRET "my_secret"
FROM '/tmp/export.p12'
FORCE KEYSTORE
IDENTIFIED BY password
WITH BACKUP;