7 分離モードでのキーストアおよびTDEマスター暗号化キーの管理
分離モードでは、各プラガブル・データベース(PDB)のキーストアを作成できます。
- 分離モードの構成について
分離モードでは、プラガブル・データベース(PDB)に固有のキーストアおよびキーストアのパスワードがあるため、キーストアおよびTDEマスター暗号化キーの管理をPDBからのみ行います。 - 分離モードで実行可能な操作
分離モードでは、ADMINISTER KEY MANAGEMENT
の多くの操作を実行できます。 - 分離モードのPDBで実行できない操作
ADMINISTER KEY MANAGEMENT
の操作の中には、分離モードのPDBで実行できないものがいくつかあります。 - 分離モードでのキーストアの場所とタイプの構成
分離モードでは、キーストアの場所とタイプを、パラメータのみ、またはパラメータとALTER SYSTEM
文の組合せを使用して構成できます。 - 分離モードでのTDEウォレットおよびTDEマスター暗号化キーの構成
分離モードではTDEウォレットがPDBに関連付けられます。 - 分離モードのPDBによるコンテナ・データベースのOracle Key Vault用の構成
分離されたPDBは、それぞれがOracle Key Vault内に専用の仮想ウォレットを保持し、それらには独自のパスワードがあります。 - 分離モードでのキーストアおよびTDEマスター暗号化キーの管理
分離モードでキーストアとTDEマスター暗号化キーを作成した後は、暗号化キーのキー更新やタグ付けなどの管理タスクを実行できます。 - 分離モードでの透過的データ暗号化の管理
分離モードでは、透過的データ暗号化に対する一般的な管理タスクをいくつか実行できます。
親トピック: 透過的データ暗号化の使用
7.1 分離モードの構成について
分離モードでは、プラガブル・データベース(PDB)が独自のキーストアとキーストアのパスワードを持つため、そのPDBからのみキーストアとTDEマスター暗号化キーを管理します。
分離モードのPDBは、パッチ32235513を適用したOracle Databaseリリース19.11以降のすべてのオンプレミス・デプロイメントで使用可能になりました。(リリース19.14以降ではパッチは必要ありません。)
統一モードと同様に、まずWALLET_ROOT
パラメータとTDE_CONFIGURATION
パラメータを設定することで、分離モードを使用するようにPDBを構成する必要があります。これらのパラメータを設定すると、PDBからキーストアを作成および管理できるようになります。この方法では、次のシナリオが考えられます。
-
統一モードのPDBは、ルート・コンテナからTDE構成を継承します。たとえば、CDBルートで作成したキーストアが、そのルートに関連付けられた統一モードのPDBによって使用されます。
-
分離モードで構成されているPDBでは、独自のキーストアの作成および管理を個別に行うことができます。分離モードのPDBには、CDBルートのキーストアとは別に、独自のキーストアを作成できます。
このシナリオは、多くのPDBでは1つのタイプのキーストアを使用する必要があるが、異なるタイプのキーストアを使用する必要があるPDBもいくつか含まれている場合に便利です。異なるタイプのキーストアとは、TDEウォレットかOracleがサポートするいずれかの外部キーストア(Oracle Key Vault、クラウド・キー管理サービスなど)を指します。Oracleサーバーは単一のPKCS#11ベンダー・ライブラリしかロードできないため、1つのCDB環境に異なる外部キーストアのタイプを混在させることはできません。必要に応じ、これらのPDBを分離モードで構成して、各PDBが独自のキーストアを使用できるようにすることができます。
ノート:
Oracle Cloud Infrastructure (OCI)クラウド・ツールでは分離モードのPDBはサポートされていません。このサポート対象外は、Oracle Base Database Service (BaseDB)、ExaDB-D、ExaDB-D@Azure、ExaDB-C@C、ADB-C@Cに対して、これらのデータベース・デプロイメントのキー管理をOracle Key Vaultが提供している場合でも適用されます。7.2 分離モードで実行可能な操作
分離モードでは、ADMINISTER KEY MANAGEMENT
の多くの操作を実行できます。
これらの操作には、キーストアの作成、バックアップ、オープンや、キーストアのパスワード変更、マージ、クローズなどが含まれます。また、暗号化キーの作成、アクティブ化、タグ付け、移動、エクスポート、インポート、移行や、クライアント・シークレットの追加、更新、削除も実行できます。
表7-1は、分離モードのPDBで実行できるADMINISTER KEY MANAGEMENT
の操作を示しています。
表7-1 分離モードでのADMINISTER KEY MANAGEMENTの操作
操作 | 構文 | 分離モードでのノート |
---|---|---|
キーストアの作成 |
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE
IDENTIFIED BY isolated_PDB_keystore_password; |
分離モードのPDBでは、パスワード保護されたキーストア、ローカル自動ログイン・キーストアおよび自動ログイン・キーストアを作成できます。 |
自動ログイン・キーストアの作成 |
ADMINISTER KEY MANAGEMENT
CREATE [LOCAL] AUTO_LOGIN KEYSTORE
FROM KEYSTORE IDENTIFIED BY isolated_PDB_keystore_password; |
分離されたPDBは、パスワードで保護されたウォレットと(ローカル)自動オープン・ウォレットの両方のキーストアの場所を |
キーストアを開く |
ADMINISTER KEY MANAGEMENT
SET KEYSTORE OPEN
[FORCE KEYSTORE]
IDENTIFIED BY EXTERNAL STORE | isolated_PDB_keystore_password; |
|
キーストア・パスワードの変更 |
ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD IDENTIFIED BY old_isolated_PDB_keystore_password SET new_isolated_PDB_keystore_password WITH BACKUP [USING 'backup_identifier']; |
- |
TDEウォレットのバックアップ |
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE [USING 'backup_identifier'] IDENTIFIED BY EXTERNAL STORE | TDE_wallet_password] [TO 'TDE_wallet_backup_location']; |
- |
キーストアの内容を既存のキーストアにマージする |
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'keystore1_location' [IDENTIFIED BY TDE_wallet1_password] INTO EXISTING KEYSTORE 'keystore2_location' IDENTIFIED BY TDE_wallet2_password WITH BACKUP [USING 'backup_identifier']; |
- |
2つのキーストアの内容をマージして3番目のキーストアを作成する |
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'keystore1_location' [IDENTIFIED BY TDE_wallet1_password] AND KEYSTORE 'keystore2_password' [IDENTIFIED BY TDE_wallet2_password] INTO NEW KEYSTORE 'keystore3_location' IDENTIFIED BY TDE_wallet3_password; |
- |
キーストアを閉じる |
ADMINISTER KEY MANAGEMENT
SET KEYSTORE CLOSE
[IDENTIFIED BY [EXTERNAL STORE | keystore_password]]; |
- |
分離モードのPDBのキーストアが開いているときにCDBルートのキーストアを閉じる |
ADMINISTER KEY MANAGEMENT
FORCE KEYSTORE CLOSE
[IDENTIFIED BY [EXTERNAL STORE | keystore_password]]; |
|
新しいTDEマスター暗号化キーの作成およびアクティブ化(キー更新) |
ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY [USING TAG 'tag_name'] [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | keystore_password ]WITH BACKUP [USING 'backup_identifier']; |
- |
今すぐ( |
ADMINISTER KEY MANAGEMENT SET | CREATE [ENCRYPTION] KEY 'mkid:mk | mk' [USING ALGORITHM 'algorithm'] [FORCE KEYSTORE] [USING TAG 'tag_name'] IDENTIFIED BY EXTERNAL STORE | TDE_wallet_password WITH BACKUP [USING 'backup_identifier'] [CONTAINER = CURRENT]; |
- |
既存のTDEマスター暗号化キーのアクティブ化 |
ADMINISTER KEY MANAGEMENT USE [ENCRYPTION] KEY 'key_id' [USING TAG 'tag'] IDENTIFIED BY [EXTERNAL STORE | keystore_password] WITH BACKUP [USING 'backup_identifier']; |
- |
TDEマスター暗号化キーのタグ付け |
ADMINISTER KEY MANAGEMENT SET TAG 'tag' FOR 'key_id' IDENTIFIED BY [EXTERNAL STORE | keystore_password] WITH BACKUP [USING 'backup_identifier']; |
- |
TDEマスター暗号化キーのエクスポート |
ADMINISTER KEY MANAGEMENT EXPORT [ENCRYPTION] KEYS WITH SECRET secret TO 'filename' IDENTIFIED BY TDE_wallet_password [WITH IDENTIFIER IN { 'key_id' [, 'key_id' ]... | ( subquery ) }]; |
- |
TDEマスター暗号化キーのインポート |
ADMINISTER KEY MANAGEMENT IMPORT [ENCRYPTION] KEYS WITH SECRET secret FROM 'filename' IDENTIFIED BY TDE_wallet_password WITH BACKUP [USING 'backup_identifier']; |
- |
暗号化データベースのTDEウォレットからOracle Key Vaultへの移行 |
ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY IDENTIFIED BY Oracle_Key_Vault_password [FORCE KEYSTORE] MIGRATE USING TDE_wallet_password; |
- |
暗号化されたデータベースの外部キーストアからTDEウォレットへの逆移行 |
ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY IDENTIFIED BY TDE_wallet_password REVERSE MIGRATE USING Oracle_Key_Vault_password; |
- |
クライアント・シークレットの追加 |
ADMINISTER KEY MANAGEMENT ADD SECRET 'secret' FOR CLIENT 'client_identifier' [USING TAG 'tag_name' ] IDENTIFIED BY [EXTERNAL STORE | isolated_PDB_keystore_password] WITH BACKUP [USING 'backup_identifier']; |
- |
クライアント・シークレットの更新 |
ADMINISTER KEY MANAGEMENT UPDATE SECRET 'secret' FOR CLIENT 'client_identifier' [USING TAG 'tag_name' ] IDENTIFIED BY [EXTERNAL STORE | keystore_password] WITH BACKUP [USING 'backup_identifier']; |
- |
クライアント・シークレットの削除 |
ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT 'client_identifier' IDENTIFIED BY [EXTERNAL STORE | keystore_password] WITH BACKUP [USING 'backup_identifier']; |
- |
PDBの分離 |
ADMINISTER KEY MANAGEMENT ISOLATE KEYSTORE IDENTIFIED BY isolated_keystore_password FROM ROOT KEYSTORE [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | united_keystore_password] WITH BACKUP [USING backup_id]; |
この操作では2つのアクションが実行されます。まず、PDBの |
7.3 分離モードのPDBで実行できない操作
分離モードのPDBで実行できないADMINISTER KEY MANAGEMENT
の操作がいくつかあります。
これには次の操作が含まれます。
-
CONTAINER = ALL
句を使用して、各プラガブル・データベース(PDB)で後から使用するための新しいTDEマスター暗号化キーを作成する -
暗号化キーをCDBルートのキーストアから分離モードで構成されているPDBのキーストアに移動する
7.4 分離モードでのキーストアの場所とタイプの構成
分離モードでは、キーストアの場所とタイプを、パラメータのみ、またはパラメータとALTER SYSTEM
文の組合せを使用して構成できます。
- 分離モードのCDBのキーストアの場所およびキーストア・タイプの構成
分離モードを構成するには、CDBルートの初期化パラメータ・ファイルのWALLET_ROOT
、および分離するPDBのTDE_CONFIGURATION
を設定します。 - 例: 古いバージョンの制御ファイルのリストア
リストアが必要な古いバージョンの制御ファイルがあり、分離モードで構成されているPDBの数が少ない場合は、TDE_CONFIGURATION
を設定できます。 - 例: 制御ファイル紛失の問題への対処
制御ファイルを紛失した場合は、ALTER SYSTEM
文を使用してこの問題に対処できます。 - 例: Oracle Real Application Clusters環境での分離モードの構成
Oracle Real Application Clusters (Oracle RAC)環境で分離モードを構成するには、ALTER SYSTEM
を使用します。
7.4.1 分離モードのCDBのキーストアの場所およびキーストア・タイプの構成
分離モードを構成するには、CDBルートにある初期化パラメータ・ファイルのWALLET_ROOT
と、分離するPDBのTDE_CONFIGURATION
を設定します。
KEYSTORE_CONFIGURATION
パラメータがFILE
(PDBがTDEウォレットを使用するように構成されていることを示す)であった場合、そのPDBに対して構成されるキーストアの場所は、WALLET_ROOT/PDB-GUID/tde
です。キーストアがその場所に存在し、TDEマスター暗号化キーが含まれている場合、そのキーはこのPDBのみが使用可能で、他のPDBは使用できません。その場所にキーストアが存在しない場合は、この時点でTDEウォレットを作成して、TDEマスター暗号化キーを設定する手順に進むことができます。分離モードのPDBを、後から統一モードのPDBに戻すことにした場合は、ADMINISTER KEY MANAGEMENT UNITE KEYSTORE
文を使用できます。ADMINISTER KEY MANAGEMENT UNITE KEYSTORE
を実行すると、PDBのキーストアからCDBルートのキーストアにキーが移されますが、クライアント・シークレットは元の場所に残ります。このため、元の場所にクライアント・シークレットがなかった場合、PDBのキーストアは実質的に「空」のままになります。これで、バックアップして削除できる状態になります。キーストアを削除する場合は、キーストアが空であっても、必ず事前にバックアップを行ってください。
7.4.2 例: 古いバージョンの制御ファイルのリストア
リストアが必要な古いバージョンの制御ファイルがあり、分離モードで構成されているPDBの数が少ない場合は、TDE_CONFIGURATION
を設定できます。
CDBルートとPDBの両方がマウント状態である場合は、CDBルートからPDBのキーストア構成のみを変更できます。
-
SYSDBA
管理権限を付与されたユーザーとしてCDBルートにログインします。 -
変更する各PDBに対して、次の構文を使用します。
ALTER SYSTEM SET TDE_CONFIGURATION="CONTAINER=pdb_name;KEYSTORE_CONFIGURATION=keystore_type" SCOPE=memory;
たとえば、キーストア・タイプとして
FILE
(TDEウォレット)を使用するhrpdb
とsalespdb
のPDBを構成する場合は、次の構文を使用します:ALTER SYSTEM SET TDE_CONFIGURATION="CONTAINER=hrpdb;KEYSTORE_CONFIGURATION=FILE" SCOPE=memory; ALTER SYSTEM SET TDE_CONFIGURATION="CONTAINER=salespdb;KEYSTORE_CONFIGURATION=FILE" SCOPE=memory;
-
各PDBの
TDE_CONFIGURATION
パラメータを設定したら、CDBルートにログインして、CDBルート自体のTDE_CONFIGURATION
を設定します。ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
この段階で、CDBルートはマウント状態になっています。
CONTAINER
属性を含むALTER SYSTEM
を使用して設定されたTDE_CONFIGURATION
パラメータの値は、CDBルートのメモリー内にのみ存在します。構成が各PDBに正しく適用されるようにするには、PDBを閉じてから再オープンする必要があります。分離モードのPDBが開かれると、CDBルートで発行されたALTER SYSTEM
文によって設定された構成が制御ファイルから読み取られ、その後、自動的にPDBに適用されます。 -
各PDBに接続し、PDBを閉じて再オープンします。
ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE; ALTER PLUGGABLE DATABASE pdb_name OPEN;
親トピック: 分離モードでのキーストアの場所とタイプの構成
7.4.3 例: 制御ファイル紛失の問題への対処
制御ファイルを紛失した場合は、ALTER SYSTEM
文を使用してこの問題に対処できます。
SCOPE
をメモリーに設定してこれらの文を実行すると、CONTAINER
の値がメモリーに格納されます。分離モードのPDBを開くと、そのPDBに対するこの構成が自動的に更新されます。
Oracle Data Guard環境を使用している場合は、制御ファイルを修正するために、プライマリ・データベースとスタンバイ・データベースの両方で次の文を実行します。
-
SYSDBA
管理権限を付与されたユーザーとしてCDBルートにログインします。 -
システムの正確な状態が不明な場合は、
RESET
を指定してALTER SYSTEM
を実行する必要があります。たとえば:
ALTER SYSTEM RESET TDE_CONFIGURATION SCOPE=memory;
-
変更する各PDBに対して、次の構文を使用します。
ALTER SYSTEM SET TDE_CONFIGURATION="CONTAINER=pdb_name;KEYSTORE_CONFIGURATION=FILE" SCOPE=memory;
たとえば、キーストア・タイプとして
FILE
(TDEウォレット)を使用してhrpdb
とsalespdb
のPDBを構成する場合は、次の構文を使用します:ALTER SYSTEM SET TDE_CONFIGURATION="CONTAINER=hrpdb;KEYSTORE_CONFIGURATION=FILE" SCOPE=memory; ALTER SYSTEM SET TDE_CONFIGURATION="CONTAINER=salespdb;KEYSTORE_CONFIGURATION=FILE" SCOPE=memory;
-
各PDBの
TDE_CONFIGURATION
パラメータを設定したら、CDBルートにログインして、CDBルート自体のTDE_CONFIGURATION
を設定します。ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
この段階で、CDBルートはマウント状態になっています。
CONTAINER
属性を含むALTER SYSTEM
を使用して設定されたTDE_CONFIGURATION
パラメータの値は、CDBルートのメモリー内にのみ存在します。構成が各PDBに正しく適用されるようにするには、PDBを閉じてから再オープンする必要があります。分離モードのPDBが開かれると、CDBルートで発行されたALTER SYSTEM
文によって設定された構成が制御ファイルから読み取られ、その後、自動的にPDBに適用されます。 -
各PDBに接続し、PDBを閉じて再オープンします。
ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE; ALTER PLUGGABLE DATABASE pdb_name OPEN;
親トピック: 分離モードでのキーストアの場所とタイプの構成
7.4.4 例: Oracle Real Application Clusters環境での分離モードの構成
ALTER SYSTEM
を使用して、Oracle Real Application Clusters (Oracle RAC)環境で分離モードを構成できます。
-
ALTER SYSTEM
文の結果が各Oracle RACノードに確実に適用されるようにするには、ALTER SYSTEM
文のSID
句に、ワイルドカード(*
)を次のように指定します。この文は、CDBルートまたはPDBのどちらからでも実行できます。ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=keystore_type" SID='*';
親トピック: 分離モードでのキーストアの場所とタイプの構成
7.5 分離モードでのTDEウォレットおよびTDEマスター暗号化キーの構成
分離モードでは、TDEウォレットがPDBに関連付けられます。
- 分離モードでのTDEウォレットの構成について
分離モードでは、すべてのタイプのTDEウォレット(パスワード保護、資格証明が外部ストアから提供されるパスワード保護、自動ログイン、ローカル自動ログイン)を作成できます。 - ステップ1: 分離モードで構成されたPDBでのTDEウォレットの作成
パスワードで保護されたTDEウォレットには、キーストア・キーと資格証明を保護するためのパスワードが必要です。 - ステップ2: 分離モードのPDBでTDEウォレットを開く
分離モードでTDEウォレットを開くには、ADMINISTER KEY MANAGEMENT
文とともにSET KEYSTORE OPEN
句を使用する必要があります。 - ステップ3: 分離モードのPDBのTDEウォレットでのTDEマスター暗号化キーの設定
分離モードのPDBのTDEウォレットでTDEマスター暗号化キーを設定するには、ADMINISTER KEY MANAGEMENT
文とともにSET KEY
句を使用します。 - ステップ4: 分離モードでのデータの暗号化
構成が完了した時点で、PDB内のデータの暗号化を開始できます。
7.5.1 分離モードでのTDEウォレットの構成について
分離モードでは、すべてのタイプのTDEウォレット(パスワード保護、資格証明が外部ストアから提供されるパスワード保護、自動ログイン、ローカル自動ログイン)を作成できます。
KEYSTORE_CONFIGURATION
属性をFILE
(TDEウォレットを使用)に設定してPDBを分離モードで構成した後に、そのPDBで暗号化を有効にするには、TDEウォレットを作成して、そのTDEウォレットを開き、そのTDEウォレット内でTDEマスター暗号化キーを設定する必要があります。この操作の完了後に、PDB内のアクセス可能な表および表領域のデータを暗号化できるようになります。
マルチテナント環境では、TDEウォレットの資格証明を保管するための安全な外部ストアを作成できます。この機能を使用すると、キーストア・パスワードを隠すことができます。つまり、ユーザーの操作なしにデータベースにアクセスできるスクリプトやツール(夜間に実行されるバッチ・スクリプトなど)に、ウォレット・パスワードを保存する必要がなくなります。WALLET_ROOT
パラメータが指定されているときの外部ストアの場所は、CDBルートの場合はWALLET_ROOT/tde_seps
、PDBの場合はWALLET_ROOT/pdb_guid/tde_seps
になります。WALLET_ROOT
パラメータを設定すると、単一の一元的外部ストアがなくなるため、キーストア・パスワードが更新された場合は、対応する外部ストアも更新する必要があります。WALLET_ROOT
パラメータが指定されていない場合は、CDBルートとすべてのPDBの両方について、外部ストアの場所が同じになります。この場合、外部ストアの場所は、EXTERNAL_KEYSTORE_CREDENTIAL_LOCATION
初期化パラメータで設定する必要があります。WALLET_ROOT
パラメータが指定されていない場合は、単一の一元的外部ストアが存在するため、キーストア・パスワードを更新した場合に、EXTERNAL_KEYSTORE_CREDENTIAL_LOCATION
にある一元的外部ストアを更新するだけで済みます。
マルチテナント環境では、ADMINISTER KEY MANAGEMENT
文をIDENTIFIED BY EXTERNAL STORE
句を使用して実行すると、様々なPDBがこの外部ストアの場所にアクセスできます。このように、パスワードをまとめて配置すると、パスワードの更新は外部ストアで一度のみで済みます。
関連トピック
7.5.2 ステップ1: 分離モードで構成されたPDBでTDEウォレットを作成する
パスワードで保護されたTDEウォレットには、キーストアのキーおよび資格証明を保護するためのパスワードが必要になります。
ewallet.p12
ファイルがウォレットの場所に生成されます。
7.5.3 ステップ2: 分離モードのPDBでTDEウォレットを開く
分離モードでTDEウォレットを開くには、ADMINISTER KEY MANAGEMENT
文とともにSET KEYSTORE OPEN
句を使用する必要があります。
関連トピック
7.5.4 ステップ3: 分離モードのPDBのTDEウォレットでTDEマスター暗号化キーを設定する
分離モードのPDBのTDEウォレットでTDEマスター暗号化キーを設定するには、ADMINISTER KEY MANAGEMENT
文とともにSET KEY
句を使用します。
関連トピック
7.6 分離モードのPDBによるコンテナ・データベースのOracle Key Vault用の構成
分離されたPDBは、それぞれがOracle Key Vault内に専用の仮想ウォレットを保持し、それらには独自のパスワードがあります。
- 分離モードでの外部キーストアの構成について
PDBが分離モードで構成されている場合に、PDBの外部キーストアを構成できます。 - ステップ1: Oracle Key Vaultの分離PDBの構成
TDE_CONFIGURATION
パラメータを設定することで、Oracle Key Vaultの分離モードPDBを構成できます。 - ステップ2: 分離モードのPDBで外部キーストアを開く
分離PDBに外部キーストアへの自動オープン接続がない場合、PDBを開く前に手動で開く必要があります。 - ステップ3: 外部キーストアでの最初のTDEマスター暗号化キーの設定
分離モードのPDBで外部キーストアを開くと、そのPDBのTDEマスター暗号化キーを設定できるようになります。 - ステップ4: 分離モードでのデータの暗号化
構成が完了した時点で、PDB内のデータの暗号化を開始できます。
7.6.1 分離モードでの外部キーストアの構成について
PDBが分離モードで構成されている場合に、PDBの外部キーストアを構成できます。
分離モードのPDBの外部キーストアを構成するには、まずWALLET_ROOT
パラメータを設定する必要があります。これが必要な理由は2つあります。1つは、将来TDEウォレットに移行できるようにするため、もう1つは、Oracle Key Vaultの構成ファイルがWALLET_ROOT
の下の場所から取得されるためです。次に、TDE_CONFIGURATION
パラメータのKEYSTORE_CONFIGURATION
属性をOKV
に設定し、構成した外部キーストアを開いて、PDBのTDEマスター暗号化キーを設定する必要があります。これらのタスクを完了すると、データベース内のデータを暗号化できるようになります。
ADMINISTER KEY MANAGEMENT
文を実行するときにIDENTIFIED BY
句を指定する方法は、外部キーストアのタイプによって異なります。次の構文を使用します。
IDENTIFIED BY EXTERNAL STORE|Oracle_Key_Vault_password
Oracle Key Vaultクライアントのインストール時に指定したOracle Key Vaultのパスワードを入力します。その時点でパスワードが指定されていない場合、ADMINISTER KEY MANAGEMENT
文のパスワードはNULL
になります。
7.6.2 ステップ1: Oracle Key Vaultの分離PDBを構成する
TDE_CONFIGURATION
パラメータを設定することで、Oracle Key Vaultの分離モードPDBを構成できます。
7.6.4 ステップ3: 外部キーストアで最初のTDEマスター暗号化キーを設定する
分離モードのPDBで外部キーストアを開くと、PDBのTDEマスター暗号化キーを設定できるようになります。
- 分離モードの外部キーストアでのTDEマスター暗号化キーの設定
透過的データ暗号化用に外部キーストアをまだ構成していない場合は、この手順を完了する必要があります。 - 分離モードでの以前に構成した暗号化キーの移行
以前にTDEウォレットを構成している場合は、以前に構成したマスター暗号化キーを移行する必要があります。
7.7 分離モードでのキーストアおよびTDEマスター暗号化キーの管理
分離モードでキーストアおよびTDEマスター暗号化キーを作成すると、暗号化キーに対してキー更新やタグ付けなどの管理タスクを実行できるようになります。
外部キーストアのパスワードを変更するには、外部キーストアの管理インタフェースを使用する必要があります。ADMINISTER KEY MANAGEMENT
文を使用して、この操作を実行することはできません。
- 分離モードでのキーストア・パスワードの変更
PDBが分離モードの場合に、TDEウォレットのパスワードを変更できます。 - 分離モードでのパスワードで保護されたTDEウォレットのバックアップ
ADMINISTER KEY MANAGEMENT
文のBACKUP KEYSTORE
句は、パスワードで保護されたTDEウォレットをバックアップします。 - 分離モードでのTDEウォレットのマージ
分離モードでは、TDEウォレットをマージできます。 - 分離モードでキーストアを閉じる
システム表領域が暗号化されていないかぎり、分離モードでソフトウェア・キーストアと外部キーストアの両方を閉じることができます。 - 分離モードでのユーザー定義のTDEマスター暗号化キーの作成
ユーザー定義のTDEマスター暗号化キーを作成するには、SET | CREATE [ENCRYPTION] KEY
句を含むADMINISTER KEY MANAGEMENT
文を使用します。 - 分離モードでの後で使用するためのTDEマスター暗号化キーの作成
分離モードで、後で使用するTDEマスター暗号化キーを作成するには、事前にキーストアが開かれている必要があります。 - 分離モードでのTDEマスター暗号化キーのアクティブ化
分離モードでTDEマスター暗号化キーをアクティブ化するには、キーストアを開き、USE KEY
句を含むADMINISTER KEY MANAGEMENT
を使用する必要があります。 - 分離モードでのTDEマスター暗号化キーのキー更新
SET KEY
句を含むADMINISTER KEY MANAGEMENT
文を使用して、TDEマスター暗号化キーをキー更新できます。 - 分離モードでの新しいキーストアへのTDEマスター暗号化キーの移動
分離モードでは、既存のパスワードTDEウォレットから既存のTDEマスター暗号化キーを新しいTDEウォレットに移動できます。 - 分離モードでのカスタム属性タグの作成
分離モードでカスタム属性タグを作成するには、ADMINISTER KEY MANAGEMENT
文のSET TAG
句を使用する必要があります。 - 分離モードでのTDEマスター暗号化キーのエクスポートおよびインポート
分離モードでは、様々な方法でTDEマスター暗号化キーをエクスポートおよびインポートできます。 - 分離モードでのOracle Databaseシークレットの保管
シークレットとは、Oracle GoldenGateなどの外部クライアントをデータベースに統合するOracle Databaseの内部機能をサポートするデータです。 - 分離モードでのキーストアの移行
分離モードで、ソフトウェア・キーストアと外部キーストア間の移行操作と逆移行操作を実行できます。 - プラガブル・データベースのキーストアの統合
PDBキーストアを統合すると、TDEマスター暗号化キーがPDBキーストアからCDBルートのキーストアに移されます。これにより、CDBルートのキーストアの管理者がキーを管理できるようになります。 - PDBクローズ時のキーストアの作成
閉じているPDBでキーストアを作成すると、新しいキーストアは空になり、PDBが分離モードに変換されます。
7.7.1 分離モードでのキーストア・パスワードの変更
PDBが分離モードの場合に、TDEウォレットのパスワードを変更できます。
外部キーストアのパスワードを変更するには、外部キーストアの管理インタフェースを使用する必要があります。ADMINISTER KEY MANAGEMENT
文を使用して、この操作を実行することはできません。
- 分離モードでのパスワードで保護されたTDEウォレットのパスワードの変更
分離モードでパスワードで保護されたTDEウォレットのパスワードを変更するには、ADMINISTER KEY MANAGEMENT
文を使用する必要があります。 - 分離モードでの外部キーストアのパスワードの変更
外部キーストアのパスワードを変更するには、外部キーストアを閉じた後、外部キーストアの管理インタフェースからパスワードを変更する必要があります。
7.7.1.1 分離モードでのパスワードで保護されたTDEウォレット・パスワードの変更
分離モードで、パスワードで保護されたTDEウォレットのパスワードを変更するには、ADMINISTER KEY MANAGEMENT
文を使用する必要があります。
WITH BACKUP
句を指定する必要があるため、常に現在のTDEウォレットのバックアップが作成されます。パスワードの変更操作中、暗号化や復号化などの透過的データ暗号化操作は正常に動作し続けます。このパスワードはいつでも変更できます。このパスワードは、安全性が損なわれた可能性があると思われる場合には変更することをお薦めします。
関連トピック
親トピック: 分離モードでのキーストア・パスワードの変更
7.7.1.2 分離モードでの外部キーストアのパスワードの変更
外部キーストアのパスワードを変更するには、外部キーストアを閉じた後、外部キーストアの管理インタフェースからパスワードを変更する必要があります。
関連トピック
親トピック: 分離モードでのキーストア・パスワードの変更
7.7.2 分離モードでのパスワードで保護されたTDEウォレットのバックアップ
ADMINISTER KEY MANAGEMENT
文のBACKUP KEYSTORE
句は、パスワードで保護されたTDEウォレットをバックアップします。
7.7.3 分離モードでのTDEウォレットのマージ
分離モードでは、TDEウォレットをマージできます。
- 分離モードでの1つのTDEウォレットの既存のTDEウォレットへのマージ
分離モードでは、ADMINISTER KEY MANAGEMENT
文とともにMERGE KEYSTORE
句を使用すると、1つのTDEウォレットを既存の別のTDEウォレットにマージできます。 - 分離モードでの2つのTDEウォレットの3番目の新しいTDEウォレットへのマージ
分離モードでは、2つのTDEウォレットを3番目の新しいTDEウォレットにマージして、既存の2つのTDEウォレットを変更せずに、新しいTDEウォレットに両方のソースTDEウォレットのキーを格納できます。
7.7.3.1 分離モードでの1つのTDEウォレットの既存のTDEウォレットへのマージ
分離モードでは、ADMINISTER KEY MANAGEMENT
文をMERGE KEYSTORE
句とともに使用すると、1つのTDEウォレットを既存の別のTDEウォレットにマージできます。
TDE_wallet2
)は、TDEウォレットのマージ操作後もパスワードで保護されたTDEウォレットに残ります。
関連トピック
親トピック: 分離モードでのTDEウォレットのマージ
7.7.3.2 分離モードでの2つのTDEウォレットの3番目の新しいTDEウォレットへのマージ
分離モードでは、2つのTDEウォレットを3番目の新しいTDEウォレットにマージして、既存の2つのTDEウォレットを変更せずに、新しいTDEウォレットに両方のソースTDEウォレットのキーを格納できます。
関連トピック
親トピック: 分離モードでのTDEウォレットのマージ
7.7.4 分離モードでキーストアを閉じる
システム表領域が暗号化されていないかぎり、分離モードでソフトウェア・キーストアと外部キーストアの両方を閉じることができます。
- 分離モードでのTDEウォレットのクローズ
分離モードでは、パスワードで保護されたTDEウォレット、自動ログインTDEウォレットおよびローカル自動ログインTDEウォレットを閉じることができます。 - 分離モードで外部キーストアを閉じる
外部キーストアを閉じるには、SET KEYSTORE CLOSE
句を含むADMINISTER KEY MANAGEMENT
文を使用する必要があります。
7.7.4.1 分離モードでのTDEウォレットのクローズ
分離モードでは、パスワードで保護されたTDEウォレット、自動ログインTDEウォレットおよびローカル自動ログインTDEウォレットを閉じることができます。
関連トピック
親トピック: 分離モードでキーストアを閉じる
7.7.4.2 分離モードで外部キーストアを閉じる
外部キーストアを閉じるには、SET KEYSTORE CLOSE
句を含むADMINISTER KEY MANAGEMENT
文を使用する必要があります。
IDENTIFIED BY
句でユーザー名を指定することはできません。パスワードは二重引用符で囲みます。
関連トピック
親トピック: 分離モードでキーストアを閉じる
7.7.5 分離モードでのユーザー定義のTDEマスター暗号化キーの作成
ユーザー定義のTDEマスター暗号化キーを作成するには、SET | CREATE [ENCRYPTION] KEY
句を含むADMINISTER KEY MANAGEMENT
文を使用します。
関連トピック
7.7.6 分離モードでの後で使用するためのTDEマスター暗号化キーの作成
分離モードで、後で使用するTDEマスター暗号化キーを作成するには、事前にキーストアが開かれている必要があります。
関連トピック
7.7.7 分離モードでのTDEマスター暗号化キーのアクティブ化
分離モードでTDEマスター暗号化キーをアクティブ化するには、キーストアを開き、USE KEY
句を含むADMINISTER KEY MANAGEMENT
を使用する必要があります。
-
ADMINISTER KEY MANAGEMENT
権限またはSYSKM
権限が付与されたユーザーとして、分離モードのPDBにログインします。 -
V$ENCRYPTION_KEYS
ビューのKEY_ID
列を問い合せて、キーの識別子を確認します。たとえば:
SELECT KEY_ID FROM V$ENCRYPTION_KEYS; KEY_ID ---------------------------------------------------- ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-
このキー識別子を使用して、次の構文を使用してTDEマスター暗号化キーをアクティブ化します。
ADMINISTER KEY MANAGEMENT USE KEY 'key_identifier_from_V$ENCRYPTION_KEYS' [USING TAG 'tag'] [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
-
FORCE KEYSTORE
は、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。
たとえば:
ADMINISTER KEY MANAGEMENT USE KEY 'ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' FORCE KEYSTORE IDENTIFIED BY keystore_password WITH BACKUP;
-
関連トピック
7.7.8 分離モードでのTDEマスター暗号化キーのキー更新
SET KEY
句を含むADMINISTER KEY MANAGEMENT
文を使用して、TDEマスター暗号化キーをキー更新できます。
関連トピック
7.7.9 分離モードでのTDEマスター暗号化キーの新しいキーストアへの移動
分離モードでは、既存のTDEマスター暗号化キーを既存のパスワードTDEウォレットから新しいTDEウォレットに移動できます。
7.7.10 分離モードでのカスタム属性タグの作成
分離モードでカスタム属性タグを作成するには、ADMINISTER KEY MANAGEMENT
文のSET TAG
句を使用する必要があります。
-
ADMINISTER KEY MANAGEMENT
権限またはSYSKM
権限が付与されたユーザーとして、分離モードのPDBにログインします。 -
必要に応じて、
V$ENCRYPTION_KEY
動的ビューのTAG
列を問い合せて、TDEマスター暗号化キーの既存のタグのリストを確認します。TDEマスター暗号化キーの新しいタグを作成すると、そのTDEマスター暗号化キーの既存のタグは上書きされます。
-
次の構文を使用して、カスタム属性タグを作成します。
ADMINISTER KEY MANAGEMENT SET TAG 'tag' FOR 'master_key_identifier' [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
-
tag
は、定義する関連の属性または情報です。この情報は一重引用符(' '
)で囲みます。 -
master_key_identifier
は、tag
が設定されるTDEマスター暗号化キーを識別します。TDEマスター暗号化キー識別子のリストを確認するには、V$ENCRYPTION_KEYS
動的ビューのKEY_ID
列を問い合せます。 -
FORCE KEYSTORE
は、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。 -
IDENTIFIED BY
は次のいずれかの設定にできます。-
EXTERNAL STORE
は、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。 -
keystore_password
は、このキーストア用に作成されたパスワードです。 -
backup_identifier
は、タグの値を定義します。この設定は一重引用符(' ')
で囲み、それぞれの値をコロンで区切ります。
-
たとえば、2つの値(1番目は特定のセッションID、2番目は特定の端末IDを取得)を使用するタグを作成するには、次のようにします。
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY USING TAG 'sessionid=3205062574:terminal=xcvt' IDENTIFIED BY keystore_password WITH BACKUP; keystore altered.
セッションID (
3205062574
)と端末ID (xcvt
)はどちらも、SYS_CONTEXT
関数でUSERENV
ネームスペースを使用するか、USERENV
関数を使用することで、値を導出できます。 -
関連トピック
7.7.11 分離モードでのTDEマスター暗号化キーのエクスポートおよびインポート
分離モードでは、様々な方法でTDEマスター暗号化キーをエクスポートおよびインポートできます。
- 分離モードでのTDEマスター暗号化キーのエクスポート
分離モードで、ADMINISTER KEY MANAGEMENT
文を使用して、TDEマスター暗号化キーをエクスポートできます。 - 分離モードでのTDEマスター暗号化キーのインポート
IMPORT [ENCRYPTION] KEYS WITH SECRET
句を含むADMINISTER KEY MANAGEMENT
文を使用して、TDEマスター暗号化キーをインポートできます。
7.7.11.1 分離モードでのTDEマスター暗号化キーのエクスポート
分離モードで、ADMINISTER KEY MANAGEMENT
文を使用して、TDEマスター暗号化キーをエクスポートできます。
-
ADMINISTER KEY MANAGEMENT
権限またはSYSKM
権限が付与されたユーザーとして、分離モードのPDBにログインします。 -
次の構文を使用して、TDEマスター暗号化のキーストアをエクスポートします。
ADMINISTER KEY MANAGEMENT EXPORT [ENCRYPTION] KEYS WITH SECRET "export_secret" TO 'file_path' [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH IDENTIFIER IN 'key_id1', 'key_id2', 'key_idn' | (SQL_query)];
ここでは次のように指定します。
-
export_secret
は、エクスポートするキーが含まれるエクスポート・ファイルを暗号化するために指定できるパスワードです。このシークレットを二重引用符(" "
)で囲むか、シークレットにスペースが使用されていない場合は引用符を省略できます。 -
file_path
は、キーのエクスポート先ファイルの完全パスと名前です。このパスは、一重引用符(' '
)で囲みます。標準ファイル・システムにのみエクスポートできます。 -
FORCE KEYSTORE
は、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。この操作のためには、TDEウォレットを開く必要があります。 -
key_id1
、key_id2
、key_idn
は、エクスポートするTDEマスター暗号化キーの1つ以上のTDEマスター暗号化キー識別子の文字列です。各キー識別子はカンマで区切り、それぞれのキー識別子を一重引用符(' '
)で囲みます。TDEマスター暗号化キーの識別子を確認するには、V$ENCRYPTION_KEYS
動的ビューのKEY_ID
列を問い合せます。 -
SQL_query
は、TDEマスター暗号化キー識別子のリストをフェッチする問合せです。これによって、通常はTDEマスター暗号化キーの識別子が含まれる1つの列のみが返されます。この問合せは、現在のユーザー権限で実行されます。
-
7.7.12 分離モードでのOracle Databaseシークレットの保管
シークレットとは、Oracle GoldenGateなどの外部クライアントをデータベースに統合するOracle Databaseの内部機能をサポートするデータです。
- 分離モードでのTDEウォレットへのOracle Databaseシークレットの保管
ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET
文を使用して、TDEウォレットでのシークレットの追加、シークレットの更新、およびシークレットの削除を行うことができます。 - 分離モードでの外部キーストアへのOracle Databaseシークレットの保管
ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET
文を使用して、シークレットの追加、シークレットの更新、およびキーストアからのシークレットの削除を実行できます。
7.7.12.1 分離モードでのTDEウォレットへのOracle Databaseシークレットの格納
ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET
文を使用して、TDEウォレットでのシークレットの追加、シークレットの更新、およびシークレットの削除を行うことができます。
関連トピック
7.7.13 分離モードでのキーストアの移行
分離モードでは、ソフトウェア・キーストアと外部キーストア間の移行操作と逆移行操作を実行できます。
- Oracle Key VaultからTDEウォレットへの分離されたPDBの逆移行
分離されたPDBには個別のキーストア(TDEウォレットまたはOracle Key Vault外部キーストア)があり、TDEウォレットからOracle Key Vaultに個別に移行することも、Oracle Key VaultからTDEウォレットに個別に逆移行することもできます。 - 分離モードでの外部キーストアからパスワードで保護されたTDEウォレットへの移行
分離モードでは、外部キーストアからパスワードで保護されたTDEウォレットに移行できます。
7.7.13.1 Oracle Key VaultからTDEウォレットへの分離されたPDBの逆移行
分離されたPDBには個別のキーストア(TDEウォレットまたはOracle Key Vault外部キーストア)があり、TDEウォレットからOracle Key Vaultに個別に移行したり、Oracle Key VaultからTDEウォレットに個別に逆移行することが可能です。
親トピック: 分離モードでのキーストアの移行
7.7.13.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;
7.7.14 プラガブル・データベースのキーストアの統合
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;
関連トピック
7.7.15 PDBクローズ時のキーストアの作成
閉じているPDBでキーストアを作成すると、新しいキーストアは空になり、PDBが分離モードに変換されます。
- PDBクローズ時のキーストアの作成について
閉じているPDBでキーストアを作成すると、キー更新操作で誤って問題が発生する可能性がありますが、このキーストアの作成は元に戻すことができます。 - PDBクローズ時のキーストア作成操作を元に戻す
PDBで誤ってキーストアを作成した(それによってPDBが分離モードで構成された)場合は、キーストアの作成操作を元に戻す必要があります。
7.7.15.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のキーストアに移されます。
関連トピック
親トピック: PDBクローズ時のキーストアの作成
7.7.15.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
キーストア・ファイルを見つけてバックアップします。- 誤って作成された空のキーストア・ファイルを削除します。
親トピック: PDBクローズ時のキーストアの作成
7.8 分離モードでの透過的データ暗号化の管理
分離モードでは、透過的データ暗号化に対する一般的な管理タスクをいくつか実行できます。
- 分離モードでの暗号化されたPDBのクローニングまたは再配置
暗号化されたPDBを同じコンテナ・データベース内またはコンテナ・データベース間でクローニングまたは再配置できます。 - 分離モードでの暗号化データを含むPDBのCDBに対するアンプラグとプラグイン
分離モードで、暗号化データを含むPDBをCDBにプラグインできます。反対に、このPDBをCDBからアンプラグすることもできます。 - 分離モードでの暗号化データを含むPDBのCDBへのクローニング
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文によって、暗号化データを含むPDBをクローニングできます。 - 分離モードで、暗号化されたデータを含むPDBのリモート・クローニングを2つのCDB間で実行する
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文は、暗号化されたデータを含むPDBをリモートからクローニングできます。 - 分離モードでの暗号化PDBの再配置
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文は、暗号化データを含むクローニングされたPDBをCDB間で再配置できます。 - 分離モードでのキーストアの開閉操作の機能
分離モードでのキーストア(TDEウォレットまたは外部キーストア)の開閉操作がどのように機能するかを知っておく必要があります。 - 分離モードでのPDBのマスター暗号化キーのエクスポートおよびインポート
分離モードで、ADMINISTER KEY MANAGEMENT EXPORT
のEXPORT
句およびIMPORT
句を使用して、PDBのマスター暗号化キーをエクスポートまたはインポートできます。
7.8.1 分離モードでの暗号化されたPDBのクローニングまたは再配置
暗号化されたPDBを同じコンテナ・データベース内またはコンテナ・データベース間でクローニングまたは再配置できます。
SYSTEM
、SYSAUX
、UNDO
またはTEMP
表領域が暗号化されているPDBを移動し、キーの手動エクスポートまたはインポートを使用する場合は、まずPDBを作成する前に、ターゲット・データベースのCDB$ROOT
にあるPDBのキーをインポートする必要があります。キーをPDBに関連付けるには、PDB内でキーのインポートが再度必要です。
関連トピック
親トピック: 分離モードでの透過的データ暗号化の管理
7.8.2 分離モードでの暗号化データを含むPDBのCDBに対するアンプラグとプラグイン
分離モードで、暗号化データを含むPDBをCDBにプラグインできます。反対に、このPDBをCDBからアンプラグすることもできます。
- 分離モードでの暗号化データを含むPDBのアンプラグ
(暗号化データを含む)PDBを、あるCDBからアンプラグし、必要に応じて別のCDBにプラグインできます。 - 分離モードでの暗号化データを含むPDBのCDBへのプラグイン
暗号化データを含むPDBをCDBにプラグインすると、そのPDB内で暗号化キーを設定できます。 - 分離モードで外部キーストアにマスター暗号化キーが格納されたPDBのアンプラグ
外部キーストアを使用するように構成されたCDBからPDBをアンプラグした後、外部キーストアを使用するように構成された別のCDBにプラグインできます。 - 分離モードで外部キーストアにマスター暗号化キーが格納されたPDBのプラグイン
ADMINISTER KEY MANAGEMENT
文を使用すると、外部キーストアのマスター暗号化キーを、別のCDBに移されたPDBにインポートできます。
親トピック: 分離モードでの透過的データ暗号化の管理
7.8.2.1 分離モードでの暗号化データを含むPDBのアンプラグ
(暗号化データを含む)PDBを、あるCDBからアンプラグし、必要に応じて別のCDBにプラグインできます。
ALTER PLUGGABLE DATABASE
文でENCRYPT
句を指定する必要はありません。アンプラグされるデータベースには、データ・ファイルおよび他の関連ファイルが含まれています。各PDBには独自の一意のキーストアがあるため、アンプラグするPDBのTDEマスター暗号化キーをエクスポートする必要はありません。PDBがすでにアンプラグされているかどうかを確認するには、DBA_PDBS
データ・ディクショナリ・ビューのSTATUS
列を問い合せます。
7.8.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';
7.8.2.3 分離モードでの外部キーストアにマスター暗号化キーが格納されたPDBのアンプラグ
外部キーストアを使用するように構成されたCDBからPDBをアンプラグした後、それを同様に外部キーストアを使用するように構成された別のCDBにプラグインできます。
7.8.3 分離モードでの暗号化データを含むPDBのCDBへのクローニング
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文によって、暗号化データを含むPDBをクローニングできます。
親トピック: 分離モードでの透過的データ暗号化の管理
7.8.4 分離モードで、暗号化されたデータを含むPDBのリモート・クローニングを2つのCDB間で実行する
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文によって、暗号化データを含むPDBをリモートからクローニングできます。
7.8.5 分離モードでの暗号化されたPDBの再配置
KEYSTORE IDENTIFIED BY
句を含むCREATE PLUGGABLE DATABASE
文によって、暗号化データを含むクローニングされたPDBをCDB間で再配置できます。
7.8.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のキーストアはオープンされません。
親トピック: 分離モードでの透過的データ暗号化の管理
7.8.7 分離モードでのPDBのマスター暗号化キーのエクスポートおよびインポート
分離モードでは、ADMINISTER KEY MANAGEMENT EXPORT
のEXPORT
句およびIMPORT
句を使用して、PDBのマスター暗号化キーをエクスポートまたはインポートできます。
- 分離モードでのPDBのマスター暗号化キーのエクスポートおよびインポートについて
分離モードでは、CDB以外のデータベースでこのキーをエクスポートおよびインポートする場合と同じ方法で、CDBルートからマスター暗号化キーをエクスポートおよびインポートできます。 - 分離モードでのPDBのマスター暗号化キーのエクスポートまたはインポート
分離モードでは、ADMINISTER KEY MANAGEMENT
文を使用して、PDBのマスター暗号化キーをエクスポートまたはインポートできます。 - 例: 分離モードでのPDBからのマスター暗号化キーのエクスポート
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS
文によって、PDBのマスター暗号化キーをエクスポートできます。 - 例: 分離モードでのPDBへのマスター暗号化キーのインポート
ADMINISTER KEY MANAGEMENT IMPORT ENCRYPTION KEYS
文によって、PDBにマスター暗号化キーをインポートできます。
親トピック: 分離モードでの透過的データ暗号化の管理
7.8.7.1 分離モードでのPDBのマスター暗号化キーのエクスポートおよびインポートについて
分離モードでは、CDB以外のデータベースでこのキーをエクスポートおよびインポートする場合と同じ方法で、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へのPDBのプラグインをサポートするため、インポートでは、WITH IDENTIFIER
句なしでエクスポートされたCDB以外のマスター暗号化キーを含むエクスポート・ファイルからもマスター暗号化キーがインポートされます。PDB名やデータベースIDなどのPDB固有の詳細は、CDBごとに変化する可能性があるため、PDB固有の情報は、更新されたPDB情報を反映するようにインポート時に変更されます。
ノート:
PDB内では、PDB全体のキーのみエクスポートできます。問合せまたは識別子に基づいた選択的なエクスポート機能はrootに制限されています。
7.8.7.2 分離モードでのPDBのマスター暗号化キーのエクスポートまたはインポート
分離モードでは、ADMINISTER KEY MANAGEMENT
文によって、PDBのマスター暗号化キーをエクスポートまたはインポートできます。
-
分離モードのPDBに、
ADMINISTER KEY MANAGEMENT
権限またはSYSKM
権限を付与されたユーザーとしてログインします。 -
エクスポートまたはインポート操作を実行します。
たとえば:
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "hr_secret" TO '/tmp/export.p12' FORCE KEYSTORE IDENTIFIED BY password;
この操作を行うにはキーストアが開いている必要があるため、
FORCE KEYSTORE
句が含まれていることを確認してください。
7.8.7.3 例: 分離モードでのPDBからのマスター暗号化キーのエクスポート
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS
文によって、PDBのマスター暗号化キーをエクスポートできます。
例7-1に、PDB hrpdb
からマスター暗号化キーをエクスポートする方法を示します。この例では、自動ログイン・キーストアが使用されているか、キーストアが閉じている場合のために、FORCE KEYSTORE
句が含められています。
例7-1 PDBからのマスター暗号化キーのエクスポート
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS
WITH SECRET "my_secret" TO '/tmp/export.p12'
FORCE KEYSTORE
IDENTIFIED BY password;
7.8.7.4 例: 分離モードでのPDBへのマスター暗号化キーのインポート
ADMINISTER KEY MANAGEMENT IMPORT ENCRYPTION KEYS
文によって、PDBにマスター暗号化キーをインポートできます。
例7-2に、PDB hrpdb
にマスター暗号化キーをインポートする方法を示します。
例7-2 PDBへのマスター暗号化キーのインポート
ADMINISTER KEY MANAGEMENT IMPORT ENCRYPTION KEYS
WITH SECRET "my_secret"
FROM '/tmp/export.p12'
FORCE KEYSTORE
IDENTIFIED BY password
WITH BACKUP;