8 統一モードの管理
統一モードの管理とは、キーストア、マスター暗号化キーおよび透過的データベース暗号化(TDE)の一般的な機能を管理することを意味します。
- 統一モードでのキーストアおよびマスター暗号化キーの管理
統一モードで使用するためのキーストアとマスター暗号化キーを構成した後、TDEマスター暗号化キーのキー更新などのタスクを実行できます。 - 統一モードでの透過的データ暗号化の管理
統一モードで透過的データ暗号化を使用した一般的な管理タスクを実行できます。
親トピック: 透過的データ暗号化の使用
8.1 統一モードでのキーストアおよびマスター暗号化キーの管理
統一モードで使用するためのキーストアとマスター暗号化キーを構成した後、TDEマスター暗号化キーのキー更新などのタスクを実行できます。
- 統一モードでのキーストア・パスワードの変更
ソフトウェア・キーストアまたは外部キーストアのパスワードは、CDBルートでのみ変更できます。 - 統一モードでのパスワードで保護されたソフトウェア・キーストアのバックアップ
ADMINISTER KEY MANAGEMENT
文のBACKUP KEYSTORE
句により、パスワードで保護されたソフトウェア・キーストアをバックアップします。 - 統一モードでキーストアを閉じる
システム表領域が暗号化されている場合を除き、統一モードでソフトウェア・キーストアと外部キーストアの両方を閉じることができます。 - 統一モードでの後で使用するためのTDEマスター暗号化キーの作成
後でアクティブ化するTDEマスター暗号化キーを作成することができます。 - 例: すべてのPDBでのマスター暗号化キーの作成
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG
文を使用して、すべてのPDBにTDEマスター暗号化キーを作成できます。 - 統一モードでのTDEマスター暗号化キーのアクティブ化
TDEマスター暗号化キーは、アクティブ化すると使用できます。 - ユーザー定義のTDEマスター暗号化キーの作成
TDEマスター暗号化キーIDを生成して、データベースの外部でユーザー定義のTDEマスター暗号化キーを作成できます。 - 統一モードでのTDEマスター暗号化キーのキー更新
SET KEY
句を指定してADMINISTER KEY MANAGEMENT
文を使用することで、TDEマスター暗号化キーをキー更新できます。 - 統一モードでの使用中のTDEマスター暗号化キーの検出
使用中のTDEマスター暗号化キーは、データベースで最も最近アクティブ化されたキーです。 - 統一モードでのカスタム属性タグの作成
統一モードでカスタム属性タグを作成するには、ADMINISTER KEY MANAGEMENT
文のSET TAG
句を使用する必要があります。 - 統一モードでの新しいキーストアへのTDEマスター暗号化キーの移動
既存のTDEマスター暗号化キーを、パスワードで保護された既存のキーストアから新しいキーストアに移動できます。 - 統一モードでの非アクティブなTDEマスター暗号化キーの自動削除
統一モードでは、REMOVE_INACTIVE_STANDBY_TDE_MASTER_KEY
初期化パラメータにより、非アクティブなTDEマスター暗号化キーの自動削除を構成できます。 - プラガブル・データベース・キーストアの分離
PDBキーストアを分離すると、CDBルート・キーストアのマスター暗号化キーがPDBの分離モードのキーストアに移動します。
親トピック: 統一モードの管理
8.1.1 統一モードでのキーストア・パスワードの変更
ソフトウェア・キーストアまたは外部キーストアのパスワードは、CDBルートでのみ変更できます。
- 統一モードでのパスワードで保護されたソフトウェア・キーストアのパスワードの変更
統一モードでパスワードで保護されたソフトウェア・キーストアのパスワードを変更するには、CDBルートでADMINISTER KEY MANAGEMENT
文を使用する必要があります。 - 統一モードでの外部キーストアのパスワードの変更
外部キーストアのパスワードを変更するには、外部キーストアを閉じた後、外部キーストアの管理インタフェースからパスワードを変更する必要があります。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.1.1 統一モードでのパスワードで保護されたソフトウェア・キーストアのパスワードの変更
統一モードでパスワードで保護されたソフトウェア・キーストアのパスワードを変更するには、CDBルートでADMINISTER KEY MANAGEMENT
文を使用する必要があります。
BACKUP
句を指定する必要があるため、常に現在のキーストアのバックアップが作成されます。パスワードの変更操作中、暗号化や復号化などの透過的データ暗号化操作は正常に動作し続けます。このパスワードはいつでも変更できます。このパスワードは、安全性が損なわれた可能性があると思われる場合には変更することをお薦めします。
親トピック: 統一モードでのキーストア・パスワードの変更
8.1.1.2 統一モードでの外部キーストアのパスワードの変更
外部キーストアのパスワードを変更するには、外部キーストアを閉じた後、外部キーストアの管理インタフェースからパスワードを変更する必要があります。
親トピック: 統一モードでのキーストア・パスワードの変更
8.1.2 統一モードでのパスワードで保護されたソフトウェア・キーストアのバックアップ
ADMINISTER KEY MANAGEMENT
文のBACKUP KEYSTORE
句により、パスワード保護されたソフトウェア・キーストアをバックアップします。
8.1.3 統一モードでキーストアを閉じる
システム表領域が暗号化されていないかぎり、統一モードでソフトウェア・キーストアと外部キーストアの両方を閉じることができます。
- キーストアを閉じることについて
キーストアを開いた後は、データベース・インスタンスを終了するまで開いたままになります。 - 統一モードでソフトウェア・キーストアを閉じる
統一モードで、パスワード保護されたキーストア、自動ログイン・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアを閉じることができます。 - 統一モードで外部キーストアを閉じる
外部キーストアを閉じるには、SET KEYSTORE CLOSE
句を含むADMINISTER KEY MANAGEMENT
文を使用する必要があります。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.3.1 キーストアを閉じることについて
キーストアを開いた後は、データベース・インスタンスを終了するまで開いたままになります。
データベース・インスタンスを再起動すると、必要に応じて(TDEマスター暗号化キーにアクセスする必要がある場合)自動ログイン・ソフトウェア・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアが自動的に開きます。ただし、パスワードベースのソフトウェア・キーストアおよび外部キーストアは、自動的には開きません。使用する前には手動で再度開く必要があります。
ソフトウェア・キーストアまたは外部キーストアを閉じると、データベースでのすべての暗号化操作と復号化操作が無効になります。したがって、データベース・ユーザーやアプリケーションは、キーストアが再度開くまで、暗号化データに関係する操作を実行できません。
キーストアを閉じた後に再度開くと、キーストアの内容がデータベースにリロードされます。したがって、内容が変更されると(移行中など)、データベースには最新のキーストアの内容が格納されます。
PDBに対してALTER PLUGGABLE DATABASE CLOSE
文またはSHUTDOWN
コマンドを実行すると、SYSKM
管理権限を持つユーザーがADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE
文を使用して手動で閉じるまで、PDBのOPEN
状態のキーストアは開いたままになります。
キーストアが閉じているかどうかは、V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せることによって確認できます。
キーストアにアクセスできない場合、次のデータ操作は失敗します。
-
暗号化列からのデータの選択(
SELECT
) -
暗号化列に対するデータの挿入(
INSERT
) -
暗号化列による表の作成(
CREATE
) -
暗号化された表領域の作成(
CREATE
)
親トピック: 統一モードでキーストアを閉じる
8.1.3.2 統一モードでソフトウェア・キーストアを閉じる
統一モードで、パスワード保護されたキーストア、自動ログイン・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアを閉じることができます。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与された一般ユーザーとして、CDBルートに接続します。ADMINISTER KEY MANAGEMENT
文を使用して、ソフトウェア・キーストアを閉じます。- パスワードで保護されたソフトウェア・キーストアでは、CDBルート内にいる場合、次の構文を使用します。
ADMINISTER KEY MANAGEMENT SET | FORCE KEYSTORE CLOSE [IDENTIFIED BY [EXTERNAL STORE | software_keystore_password]] [CONTAINER = ALL | CURRENT];
SET
句を使用して、強制せずにキーストアを閉じます。開いている依存キーストアがある場合(たとえば、分離モードのPDBのキーストアで、CDBルートのキーストアを閉じようとしている場合)、「ORA-46692 ウォレットをクローズできません
」エラーが表示されます。この場合、SET
のかわりにFORCE
句を使用して、閉じる操作中に依存キーストアを一時的に閉じます。V$ENCRYPTION_WALLET
ビューのSTATUS
列で、キーストアが開いているかどうかが示されます。統一モードのPDBにいる場合、
CONTAINER
句を省略するか、CURRENT
に設定します。 - 自動ログイン・ソフトウェア・キーストアまたはローカル自動ログイン・ソフトウェア・キーストアでは、CDBルートにいる場合、次の構文を使用します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE [CONTAINER = ALL | CURRENT];
- パスワードで保護されたソフトウェア・キーストアでは、CDBルート内にいる場合、次の構文を使用します。
親トピック: 統一モードでキーストアを閉じる
8.1.3.3 統一モードで外部キーストアを閉じる
外部キーストアを閉じるには、SET KEYSTORE CLOSE
句を含むADMINISTER KEY MANAGEMENT
文を使用する必要があります。
親トピック: 統一モードでキーストアを閉じる
8.1.4 統一モードでの後で使用するためのTDEマスター暗号化キーの作成
後でアクティブ化するTDEマスター暗号化キーを作成することができます。
- 後で使用するためのTDEマスター暗号化キーの作成について
ADMINISTER KEY MANAGEMENT
文のCREATE KEY
句によって、後でアクティブ化できるTDEマスター暗号化キーを作成できます。 - 統一モードでの後で使用するためのTDEマスター暗号化キーの作成
統一モードで後で使用するTDEマスター暗号化キーを作成する前に、キーストアが開かれている必要があります。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.4.1 後で使用するためのTDEマスター暗号化キーの作成について
ADMINISTER KEY MANAGEMENT
文のCREATE KEY
句によって、後でアクティブ化できるTDEマスター暗号化キーを作成できます。
その後、そのキーを同じデータベースでアクティブ化したり、別のデータベースにエクスポートしてそこでアクティブ化できます。
このTDEマスター暗号化キーの作成方法は、マルチテナント環境でTDEマスター暗号化キーを再作成する必要がある場合に便利です。CREATE KEY
句では、単一のSQL文を使用して、マルチテナント環境内のすべてのPDBに新しいTDEマスター暗号化キーを作成できます。新しいTDEマスター暗号化キーの作成時間は、現在使用中のTDEマスター暗号化キーをアクティブ化するよりも遅くなります。そのため、最新の作成済TDEマスター暗号化キーをできるだけ早くアクティブ化するようにすべてのPDBに注意を喚起するために、この作成時間を使用できます。
8.1.5 例: すべてのPDBでのマスター暗号化キーの作成
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG
文を使用して、すべてのPDBにTDEマスター暗号化キーを作成できます。
例8-1に、マルチテナント環境のすべてのPDBにマスター暗号化キーを作成する方法を示します。ここでは、CDBルートの自動ログイン・キーストアが開いている場合に、FORCE KEYSTORE
句を使用します。パスワードが外部に格納されるため、IDENTIFIED BY
句にEXTERNAL STORE
設定が使用されます。この文を実行すると、マスター暗号化キーが各PDBに作成されます。それらのキーの識別子は次のように確認できます。
-
PDBにログインして、
V$ENCRYPTION_KEYS
ビューのTAG
列を問い合せます。 -
CDBルートにログインして、
GV$ENCRYPTION_KEYS
ビューのINST_ID
およびTAG
列を問い合せます。
また、最も最近作成されたキー(この文で作成したキー)を確認するには、それらのビューのCREATION_TIME
列を確認します。キーの作成後、各PDBでキーを個々にアクティブ化できます。
例8-1 すべてのPDBのマスター暗号化キーの作成
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG 'scope:all pdbs;description:Create Key for ALL PDBS' FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE WITH BACKUP CONTAINER = ALL; keystore altered.
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.6 統一モードでのTDEマスター暗号化キーのアクティブ化
TDEマスター暗号化キーはアクティブ化すると、使用できます。
- TDEマスター暗号化キーのアクティブ化について
ADMINISTER KEY MANAGEMENT
のUSE KEY
句を使用することで、以前に作成済またはインポート済のTDEマスター暗号化キーをアクティブ化できます。 - 統一モードでのTDEマスター暗号化キーのアクティブ化
統一モードでTDEマスター暗号化キーをアクティブ化するには、キーストアを開き、USE KEY
句を含むADMINISTER KEY MANAGEMENT
を使用する必要があります。 - 例: TDEマスター暗号化キーのアクティブ化
ADMINISTER KEY MANAGEMENT SQL文を使用して、TDEマスター暗号化キーをアクティブ化できます。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.6.1 TDEマスター暗号化キーのアクティブ化について
ADMINISTER KEY MANAGEMENT
のUSE KEY
句を使用することで、以前に作成済またはインポート済のTDEマスター暗号化キーをアクティブ化できます。
マスター暗号化キーをアクティブ化すると、データベース内のすべてのデータ暗号化キーを暗号化するために使用されます。キーを使用して、すべての列のキーとすべての表領域暗号化キーを保護できます。ロジカル・スタンバイ・データベースをデプロイしている場合、TDEマスター暗号化キーを再作成後にエクスポートしてから、スタンバイ・データベースにインポートする必要があります。プライマリ・データベースとスタンバイ・データベースの両方でTDEマスター暗号化キーを使用するように選択できます。これを行うには、TDEマスター暗号化キーを、ロジカル・スタンバイ・データベースへのインポート後にアクティブ化する必要があります。
親トピック: 統一モードでのTDEマスター暗号化キーのアクティブ化
8.1.6.2 統一モードでのTDEマスター暗号化キーのアクティブ化
統一モードでTDEマスター暗号化キーをアクティブ化するには、キーストアを開き、USE KEY
句を含むADMINISTER KEY MANAGEMENT
を使用する必要があります。
親トピック: 統一モードでのTDEマスター暗号化キーのアクティブ化
8.1.6.3 例: TDEマスター暗号化キーのアクティブ化
ADMINISTER KEY MANAGEMENT SQL文を使用して、TDEマスター暗号化キーをアクティブ化できます。
例8-2に、以前にインポート済のTDEマスター暗号化キーをアクティブ化してそのタグを更新する方法を示します。このキーは、現在のデータベースのタイムスタンプとタイムゾーンでアクティブ化されます。
例8-2 TDEマスター暗号化キーのアクティブ化
ADMINISTER KEY MANAGEMENT USE KEY
'ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
USING TAG 'quarter:second;description:Activate Key on standby'
IDENTIFIED BY password WITH BACKUP;
keystore altered.
次の同じ操作のバージョンでは、自動ログイン・キーストアが使用されているか、キーストアが閉じている場合に、FORCE KEYSTORE
句が追加されます。キーストアのパスワードが外部に格納されるため、IDENTIFIED BY
句にEXTERNAL STORE
設定が使用されます。
ADMINISTER KEY MANAGEMENT USE KEY 'ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' USING TAG 'quarter:second;description:Activate Key on standby' FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE WITH BACKUP; keystore altered.
親トピック: 統一モードでのTDEマスター暗号化キーのアクティブ化
8.1.7 ユーザー定義のTDEマスター暗号化キーの作成
TDEマスター暗号化キーIDを生成して、データベースの外部でユーザー定義のTDEマスター暗号化キーを作成できます。
- ユーザー定義のTDEマスター暗号化キーについて
データベースの外部にあるTDEマスター暗号化キーには、TDEマスター暗号化キーの使用を追跡するための固有のユーザー生成IDがあります。 - 統一モードでのユーザー定義のTDEマスター暗号化キーの作成
ユーザー定義のTDEマスター暗号化キーを作成するには、SET | CREATE [ENCRYPTION] KEY
句を指定して、ADMINISTER KEY MANAGEMENT
文を使用します。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.7.1 ユーザー定義のTDEマスター暗号化キーについて
データベースの外部にあるTDEマスター暗号化キーには、TDEマスター暗号化キーの使用を追跡するための固有のユーザー生成IDがあります。
ADMINISTER KEY MANAGEMENT
を使用して、ユーザー定義のTDEマスター暗号化キーIDを作成および設定できます。TDEマスター暗号化キーを生成した後で、このキーをデータベースに格納できます。オプションで、様々なADMINISTER KEY MANAGEMENT
文でTDEマスター暗号化キーIDを指定できます。
このタイプの構成を使用すると、サイトの要件に準拠するTDEマスター暗号化キーを生成できるため、Oracle Fusion SaaS Cloud環境で役立ちます。生成されるこのキーは、最新の暗号化アルゴリズムをサポートしており、ソフトウェア・キーストアのために使用できます。
TDEマスター暗号化キーIDを生成した後で、通常の方法でデータを暗号化できます。
TDEマスター暗号化キーとそれに対応するIDは、監査ログによって取得されません。
親トピック: ユーザー定義のTDEマスター暗号化キーの作成
8.1.7.2 統一モードでのユーザー定義のTDEマスター暗号化キーの作成
ユーザー定義のTDEマスター暗号化キーを作成するには、SET | CREATE [ENCRYPTION] KEY
句を含むADMINISTER KEY MANAGEMENT
文を使用します。
親トピック: ユーザー定義のTDEマスター暗号化キーの作成
8.1.8 統一モードでのTDEマスター暗号化キーのキー更新
SET KEY
句を含むADMINISTER KEY MANAGEMENT
文を使用して、TDEマスター暗号化キーをキー更新できます。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.9 統一モードで使用中のTDEマスター暗号化キーの確認
使用中のTDEマスター暗号化キーは、データベースで一番最近アクティブ化されたキーです。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.10 統一モードでのカスタム属性タグの作成
統一モードでカスタム属性タグを作成するには、ADMINISTER KEY MANAGEMENT
文のSET TAG
句を使用する必要があります。
関連項目
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.11 統一モードでの新しいキーストアへのTDEマスター暗号化キーの移動
既存のTDEマスター暗号化キーを、パスワードで保護された既存のキーストアから新しいキーストアに移動できます。
- 新しいキーストアへのTDEマスター暗号化キーの移動について
使用されていない(正常にアーカイブ済の)TDEマスター暗号化キーを新しいキーストアに移動できます。 - 統一モードでの新しいキーストアへのTDEマスター暗号化キーの移動
統一モードでは、既存のソフトウェア・パスワード・キーストアから新しいキーストアに既存のTDEマスター暗号化キーを移動できます。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.11.1 新しいキーストアへのTDEマスター暗号化キーの移動について
使用されていない(正常にアーカイブ済の)TDEマスター暗号化キーを新しいキーストアに移動できます。
ADMINISTER KEY MANAGEMENT MOVE KEYS
を実行する場合は十分に注意してください。この文ではアクティブなマスター暗号化キーは移動されませんが、それでも、一連のデータベース機能に必要となるキーに影響がある可能性があります。キーを削除した場合は、これらの機能を使用するための、そのキーによって暗号化されたデータへのアクセスは不可能になります(データの削除と同等)。キーストアの削除によって影響を受ける機能の詳細は、このトピックの最後にある「関連項目」を参照してください。
そのため、キーストアを移動する前に、それを正常にアーカイブすることが重要です。一定期間が経過し、キーストアが確実に不要になった場合にのみ、キーストアを削除するようにしてください。
TDEマスター暗号化キーを新しいキーストアに移動するには、ADMINISTER KEY MANAGEMENT MOVE KEYS
文を使用します。この文では、アクティブなTDEマスター暗号化キー(つまり、ADMINISTER KEY MANAGEMENT MOVE KEYS
が発行された時点で使用中だったキー)は移動されません。
新しいTDEキーストアを構成するとき(たとえば、TDEキーストア構成においてソフトウェア・キーストアの配置場所をオペレーティング・システムのファイル・システムからOracle Automatic Storage Management (Oracle ASM)に変更する場合)に、誤ってADMINISTER KEY MANAGEMENT MERGE KEYSTORE
ではなくADMINISTER KEY MANAGEMENT MOVE KEYS
文を使用した場合には、次の現象の発生により、間違ったキー管理コマンドの使用によってTDEの構成が正しくなくなっていることを判断できます。
- 前の
ADMINISTER KEY MANAGEMENT MOVE KEYS
操作のターゲットであったTDEキーストアを開いたときに、ORA-28374: 「入力したマスター・キーがウォレットに見つかりません」
というエラーが表示されます。これは、アクティブなTDEマスター暗号化キーがそのキーストアに移動されていないためです。 - 新しいキーストアを開いた後、
V$ENCRYPTION_WALLET
ビューのSTATUS
列にOPEN_NO_MASTER_KEY
という値が表示されています。誤ってADMINISTER KEY MANAGEMENT MOVE KEYS
文によって移入された新しいTDEキーストアにはアクティブなTDEマスター暗号化キーが含まれていないため、想定ではOPEN_NO_MASTER_KEY
ステータスになります。
8.1.12 統一モードでの非アクティブなTDEマスター暗号化キーの自動削除
統一モードでは、REMOVE_INACTIVE_STANDBY_TDE_MASTER_KEY
初期化パラメータにより、非アクティブなTDEマスター暗号化キーの自動削除を構成できます。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.1.13 プラガブル・データベース・キーストアの分離
PDBのキーストアを分離すると、マスター暗号化キーが、CDBルートのキーストアから、PDB内の分離モードのキーストアに移されます。
ADMINISTER KEY MANAGEMENT
権限をローカルに付与された管理者は、キーストアを管理できます。
親トピック: 統一モードでのキーストアおよびマスター暗号化キーの管理
8.2 統一モードでの透過的データ暗号化の管理
統一モードで透過的データ暗号化を使用して一般的な管理タスクを実行できます。
- 統一モードでのあるCDBから別のCDBへのPDBの移動
暗号化されたPDBを同じコンテナ・データベース内またはコンテナ・データベース間でクローニングまたは再配置できます。 - 統一モードでの暗号化データを含むPDBのCDBに対するアンプラグとプラグイン
統一モードでは、暗号化データを含むPDBをCDBにプラグインできます。反対に、このPDBをCDBからアンプラグすることもできます。 - 統一モードでの暗号化データを含むクローニングされたPDBの管理
統一モードでは、CDBで暗号化されたデータのあるPDBをクローニングできます。 - 統一モードでのキーストアの開閉操作の機能
統一モードでキーストアの開閉操作がどのように機能するのかを知っておく必要があります。 - 統一モードでのすべてのPDBのキーストア・ステータスの確認
V$ENCRYPTION_WALLET
ビューを使用する簡易関数を作成して、CDBにおけるすべてのPDBのキーストアのステータスを確認できます。
親トピック: 統一モードの管理
8.2.1 統一モードでのあるCDBから別のCDBへのPDBの移動
暗号化されたPDBを同じコンテナ・データベース内またはコンテナ・データベース間でクローニングまたは再配置できます。
SYSTEM
、SYSAUX
、UNDO
またはTEMP
表領域が暗号化されている非CDBまたはPDBを移動し、キーの手動エクスポートまたはインポートを使用する場合は、まずPDBを作成する前に、ターゲット・データベースのCDB$ROOT
にある非CDBまたはPDBのキーをインポートする必要があります。キーをPDBに関連付けるには、PDB内でキーのインポートが再度必要です。
親トピック: 統一モードでの透過的データ暗号化の管理
8.2.2 統一モードでの暗号化データを含むPDBのCDBに対するアンプラグとプラグイン
統一モードでは、暗号化データを含むPDBをCDBにプラグインできます。反対に、このPDBをCDBからアンプラグすることもできます。
- 統一モードでの暗号化データを含むPDBのアンプラグ
統一モードでは、暗号化データを含むPDBをアンプラグして、XMLファイルまたはアーカイブ・ファイルにエクスポートできます。 - 統一モードでの暗号化データを含むPDBのCDBへのプラグイン
暗号化データを含むPDBをCDBにプラグインするには、まずPDBにプラグインしてから、そのPDBのマスター暗号化キーを作成します。 - 統一モードで外部キーストアにマスター暗号化キーが格納されたPDBのアンプラグ
外部キーストアを使用するように構成されたCDBからPDBをアンプラグした後、外部キーストアを使用するように構成された別のCDBにプラグインできます。 - 統一モードで外部キーストアに格納されたマスター暗号化キーを含むPDBのプラグイン
ADMINISTER KEY MANAGEMENT
文を使用すると、外部キーストアから他のCDBに移されたPDBにTDEマスター暗号化キーをインポートできます。
親トピック: 統一モードでの透過的データ暗号化の管理
8.2.2.1 統一モードでの暗号化データを含むPDBのアンプラグ
統一モードでは、暗号化データを含むPDBをアンプラグして、XMLファイルまたはアーカイブ・ファイルにエクスポートできます。
DBA_PDBS
データ・ディクショナリ・ビューのSTATUS
列を問い合せることで、PDBがアンプラグされたかどうかを確認できます。
8.2.2.2 統一モードでの暗号化データを含むPDBのCDBへのプラグイン
暗号化データを含むPDBをCDBにプラグインするには、まずPDBにプラグインしてから、そのPDBのマスター暗号化キーを作成します。
0
に設定されます。キー・バージョンは、V$ENCRYPTED_TABLESPACES
動的ビューのKEY_VERSION
を問い合せて確認できます。同様に、制御ファイルが失われ再作成された場合、以前のキーの履歴は0
にリセットされます。DBA_PDBS
データ・ディクショナリ・ビューのSTATUS
列を問い合せることで、PDBがすでにプラグインされているかどうかを確認できます。
8.2.2.3 統一モードでの外部キーストアにマスター暗号化キーが格納されたPDBのアンプラグ
外部キーストアを使用するように構成されたCDBからPDBをアンプラグした後、それを同様に外部キーストアを使用するように構成された別のCDBにプラグインできます。
8.2.3 統一モードでの暗号化データを含むクローニングされたPDBの管理
統一モードでは、暗号化データを含むPDBをCDBでクローニングできます。
- 統一モードでの暗号化データを含むクローニングされたPDBの管理について
PDBをクローニングする際、ソースPDBのマスター・キーをクローニングされたPDBが使用できるようにしておく必要があります。 - 統一モードでの暗号化データを含むPDBのCDBへのクローニング
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文によって、暗号化データを含むPDBをクローニングできます。 - 統一モードでの暗号化されたPDBのリモートからのクローニング
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文は、暗号化されたデータを含むPDBをリモートからクローニングできます。 - 統一モードでの暗号化されたPDBの再配置
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文によって、暗号化されたデータを含むPDBをCDB間で再配置できます。
親トピック: 統一モードでの透過的データ暗号化の管理
8.2.3.1 統一モードでの暗号化データを含むクローニングされたPDBの管理について
PDBをクローニングする際、ソースPDBのマスター暗号化キーをクローニングされたPDBが使用できるようにしておく必要があります。
これにより、クローニングされたPDBが暗号化データに対して操作を行うことができます。クローニングされたPDBがリモートのCDBにある場合であっても、Oracle Databaseがキーを転送するため、クローニングを実行するためにキーをエクスポートまたはインポートする必要はありません。ただし、クローンを作成するCDBのキーストア・パスワードは指定する必要があります。
PDBに暗号化されたデータがある場合は、CDB間でPDBのリモート・クローニング操作を実行し、CDB間でPDBを再配置できます。
8.2.3.2 統一モードでの暗号化データを含むPDBのCDBへのクローニング
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文によって、暗号化データを含むPDBをクローニングできます。
8.2.3.3 統一モードでの暗号化されたPDBのリモートからのクローニング
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文によって、暗号化データを含むPDBをリモートからクローニングできます。
8.2.4 統一モードでのキーストアの開閉操作の機能
統一モードでキーストアの開閉操作がどのように機能するかを知っておく必要があります。
統一モードの各PDBに関して、透過的データ暗号化の操作が続行できるように、PDBでパスワード保護されたソフトウェア・キーストアまたは外部キーストアを明示的に開く必要があります。(自動ログイン・ソフトウェア・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアは自動的に開きます。)PDBのキーストアを閉じることによって、PDBのすべての透過的データ暗号化操作がブロックされます。
PDBにおけるキーストアの開閉操作は、CDBルートにおけるキーストアの開閉ステータスに依存します。
次の点に注意してください。
-
統一モードの各PDBについて個別のキーストアのパスワードを作成できます。
-
個々のPDBでパスワード保護されたソフトウェアまたは外部キーストアを手動で開く前に、CDBルートでキーストアを開く必要があります。
-
自動ログイン・キーストアが使用されているか、キーストアが閉じている場合は、キーストアを開くときに、
ADMINISTER KEY MANAGEMENT
文にFORCE KEYSTORE
句を含めます。 -
キーストアがパスワード用に外部ストアを使用するパスワード保護されたソフトウェア・キーストアである場合は、
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に属するキーと、それらがいつ作成されたかを迅速かつ容易に識別できます。 -
(自動ログイン・ソフトウェア・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアは自動的に開きます。)これらを最初にCDBルートからまたはPDBから、手動で開く必要はありません。
-
CDBルートでキーストアを閉じると、これに依存するPDBのキーストアも閉じます。rootにおいてキーストアを閉じる操作は、
CONTAINER
句がALL
に設定されていてキーストアを閉じる操作を実行することと同等です。 -
CDBルートで
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN
文を実行し、CONTAINER
句をALL
に設定した場合、キーストアは、統一モードで構成されている各オープンPDBでのみ開くことになります。分離モードで構成されているPDBのキーストアはオープンされません。
親トピック: 統一モードでの透過的データ暗号化の管理
8.2.5 統一モードでのすべてのPDBのキーストア・ステータスの確認
V$ENCRYPTION_WALLET
ビューを使用する便利なファンクションを作成して、CDBにおけるすべてのPDBのキーストアのステータスを確認できます。
V$ENCRYPTION_WALLET
ビューでは、PDBのキーストアのステータス(開いているか、閉じているか、ソフトウェアまたは外部キーストアを使用しているかなど)が表示されます。
-
V$ENCRYPTION_WALLET
ビューを使用してキーストアのステータスを検出するファンクションを作成するには、CREATE PROCEDURE
PL/SQL文を使用します。
例8-3では、このファンクションを作成する方法を示しています。
例8-3 CDBにおけるすべてのPDBに関するキーストアのステータスを確認するファンクション
CREATE OR REPLACE PROCEDURE all_pdb_v$encryption_wallet IS err_occ BOOLEAN; curr_pdb VARCHAR2(30); pdb_name VARCHAR2(30); wrl_type VARCHAR2(20); status VARCHAR2(30); wallet_type VARCHAR2(20); wallet_order VARCHAR2(12); fully_backed_up VARCHAR2(15); wrl_parameter VARCHAR2(4000); cursor sel_pdbs IS SELECT NAME FROM V$CONTAINERS WHERE NAME <> 'PDB$SEED' order by con_id desc; BEGIN -- Store the original PDB name SELECT sys_context('userenv', 'con_name') INTO curr_pdb FROM DUAL; IF curr_pdb <> 'CDB$ROOT' THEN dbms_output.put_line('Operation valid in ROOT only'); END IF; err_occ := FALSE; dbms_output.put_line('---'); dbms_output.put_line('PDB_NAME WRL_TYPE STATUS '); dbms_output.put_line('------------------------------ -------- ------------------------------'); dbms_output.put_line('WALLET_TYPE WALLET_ORDER FULLY_BACKED_UP'); dbms_output.put_line('-------------------- ------------ ---------------'); dbms_output.put_line('WRL_PARAMETER'); dbms_output.put_line('--------------------------------------------------------------------------'); FOR pdbinfo IN sel_pdbs LOOP pdb_name := DBMS_ASSERT.ENQUOTE_NAME(pdbinfo.name, FALSE); EXECUTE IMMEDIATE 'ALTER SESSION SET CONTAINER = ' || pdb_name; BEGIN pdb_name := rpad(substr(pdb_name,1,30), 30, ' '); EXECUTE IMMEDIATE 'SELECT wrl_type from V$ENCRYPTION_WALLET' into wrl_type; wrl_type := rpad(substr(wrl_type,1,8), 8, ' '); EXECUTE IMMEDIATE 'SELECT status from V$ENCRYPTION_WALLET' into status; status := rpad(substr(status,1,30), 30, ' '); EXECUTE IMMEDIATE 'SELECT wallet_type from V$ENCRYPTION_WALLET' into wallet_type; wallet_type := rpad(substr(wallet_type,1,20), 20, ' '); EXECUTE IMMEDIATE 'SELECT wallet_order from V$ENCRYPTION_WALLET' into wallet_order; wallet_order := rpad(substr(wallet_order,1,9), 12, ' '); EXECUTE IMMEDIATE 'SELECT fully_backed_up from V$ENCRYPTION_WALLET' into fully_backed_up; fully_backed_up := rpad(substr(fully_backed_up,1,9), 15, ' '); EXECUTE IMMEDIATE 'SELECT wrl_parameter from V$ENCRYPTION_WALLET' into wrl_parameter; wrl_parameter := rpad(substr(wrl_parameter,1,79), 79, ' '); dbms_output.put_line(pdb_name || ' ' || wrl_type || ' ' || status); dbms_output.put_line(wallet_type || ' ' || wallet_order || ' ' || fully_backed_up); dbms_output.put_line(wrl_parameter); EXCEPTION WHEN OTHERS THEN err_occ := TRUE; END; END LOOP; IF err_occ = TRUE THEN dbms_output.put_line('One or more PDB resulted in an error'); END IF; END; . / set serveroutput on exec all_pdb_v$encryption_wallet;
親トピック: 統一モードでの透過的データ暗号化の管理