5 統一モードでのキーストアおよびTDEマスター暗号化キーの管理
統一モードでは、CDB、およびキーストアが統一モードになっているPDBの共通のキーストアを作成できます。
CDBおよびPDBのキーは共通キーストアに格納されます。
- 統一モードでのキーストアおよびTDEマスター暗号化キーの管理について
統一モードでは、同じキーストアに格納されるCDBおよびPDBのキーストアおよびTDEマスター暗号化キーを作成します。 - 統一モードで許可される操作
CDBルートで実行される多くのADMINISTER KEY MANAGEMENT操作は、統一モードのPDBのキーストアおよび暗号化キーに適用されます。 - 統一モードのPDBで許可されない操作
統一モードのPDBで許可されないADMINISTER KEY MANAGEMENT操作は、CDBルートで実行できます。 - 統一モードでのキーストアの場所とタイプの構成
統一モードでは、パラメータのみ、またはパラメータとALTER SYSTEM文の組合せを使用して、キーストアの場所とタイプを構成できます。 - 統一モードで使用するためのソフトウェア・キーストアの構成
統一モードでは、ソフトウェア・キーストアは、CDBルート内に存在しますが、このキーストアのマスター・キーは、統一モードのキーストアを持つPDBで使用可能です。 - 統一モードでの外部キーストアの構成
統一モードでは、外部キーストアは暗号化キーを保存するために設計された外部キー・マネージャ内にあります。 - 統一モードでのキーストアおよびTDEマスター暗号化キーの管理
統一モードで使用するためのキーストアとマスター暗号化キーを構成した後、TDEマスター暗号化キーのキー更新などのタスクを実行できます。 - 統一モードでの透過的データ暗号化の管理
統一モードで透過的データ暗号化を使用した一般的な管理タスクを実行できます。
親トピック: 透過的データ暗号化の使用
5.1 統一モードでのキーストアおよびTDEマスター暗号化キーの管理について
統一モードでは、同じキーストアに格納されるCDBおよびPDBのキーストアおよびTDEマスター暗号化キーを作成します。
統一モードのキーストアを持つPDBのキーは、CDBルートまたはPDBから作成できます。
この設計により、1つのキーストアでCDB環境全体を管理し、PDBでそのキーストアを共有できますが、個々の統一モードのPDBでこのキーストアの動作をカスタマイズできます。たとえば、統一モードのPDBでは、CDBルートで作成した統合キーストア内のPDB用のTDEマスター暗号化キーを構成し、キーストアをローカルで開き、キーストアをローカルで閉じることができます。これらのアクションを実行するには、CDBルートのキーストアが開いている必要があります。
統一モードまたは分離モードを使用するように環境を構成する前は、CDB環境内のすべてのPDBは、統一モードであるとみなされます。
統一モードを使用するには、次の一般的なステップに従う必要があります。
-
CDBルートで、
WALLET_ROOTパラメータとTDE_CONFIGURATIONパラメータを設定することで、統一モードを使用するようにデータベースを構成します。WALLET_ROOTパラメータは、ウォレット・ディレクトリの場所を設定し、TDE_CONFIGURATIONパラメータは、使用するキーストアのタイプを設定します。 -
これらの設定を有効にするために、データベースを再起動します。
-
CDBルートで、キーストアを作成し、キーストアを開き、TDEマスター暗号化キーを作成します。
-
統一モードの各PDBで、統一モードのPDBでローカルにキーストアを開いたり、PDBのTDEマスター暗号化キーを作成したりするなど、必要に応じてTDEマスター暗号化キーのタスクを実行します。キーストアはCDBルートで管理されますが、PDBでTDEを使用できるようにするには、PDB固有のTDEマスター暗号化キーがキーストアに含まれている必要があることに注意してください。
CDBルートから統一モードでADMINISTER KEY MANAGEMENT文を実行すると、文でCONTAINER句が受け入れられ、それをALLに設定した場合、その文は、CDBルートおよびそれに関連付けられた統一モードのPDBにのみ適用されます。分離モードのPDBはすべて影響を受けません。
5.2 統一モードで許可される操作
CDBルートで実行される多くのADMINISTER KEY MANAGEMENT操作は、統一モードのPDBのキーストアおよび暗号化キーに適用されます。
CDBルートで使用可能な統一モード関連の操作
表5-1では、CDBルートで実行できるADMINISTER KEY MANAGEMENT操作について説明します。
表5-1 CDBルートでのADMINISTER KEY MANAGEMENT統一モード操作
| 操作 | 構文 | 統一モードのノート |
|---|---|---|
|
キーストアの作成 |
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE ['keystore_location'] IDENTIFIED BY keystore_password; |
CDBルートでキーストアを作成した後、デフォルトで、そのキーストアは、統一モードのPDBで使用できます。 |
|
キーストアを開く |
ADMINISTER KEY MANAGEMENT
SET KEYSTORE OPEN
IDENTIFIED BY
[EXTERNAL STORE | keystore_password]
[CONTAINER = ALL | CURRENT]; |
この操作の |
|
キーストア・パスワードの変更 |
ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD IDENTIFIED BY old_keystore_password SET new_keystore_passwordWITH BACKUP [USING 'backup_identifier']; |
|
|
キーストアのバックアップ |
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE [USING 'backup_identifier'] [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [TO 'keystore_location']; |
|
|
強制せずにキーストアを閉じる |
ADMINISTER KEY MANAGEMENT
SET KEYSTORE CLOSE
[IDENTIFIED BY [EXTERNAL STORE | keystore_password]]
[CONTAINER = ALL | CURRENT]; |
分離モードのPDBキーストアが開いている場合は、この文によって「 |
|
強制的にキーストアを閉じる |
ADMINISTER KEY MANAGEMENT
FORCE KEYSTORE CLOSE
[IDENTIFIED BY [EXTERNAL STORE | keystore_password]]
[CONTAINER = ALL | CURRENT]; |
この操作を使用すると、分離したキーストアが開いているときに、CDBルートでキーストアを閉じることができます。 |
|
新しいTDEマスター暗号化キーの作成およびアクティブ化(キー更新) |
ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY [FORCE KEYSTORE] [USING TAG 'tag_name'] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']] [CONTAINER = ALL | CURRENT] |
- |
|
今すぐ( |
ADMINISTER KEY MANAGEMENT [SET | CREATE] [ENCRYPTION] KEY 'mkid:mk | mk' [USING ALGORITHM 'algorithm'] [FORCE KEYSTORE] [USING TAG 'tag_name'] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']] [CONTAINER = CURRENT]; |
- |
|
既存のTDEマスター暗号化キーのアクティブ化 |
ADMINISTER KEY MANAGEMENT USE [ENCRYPTION] KEY 'key_id' 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 MOVE [ENCRYPTION] KEYS TO NEW KEYSTORE 'keystore_location1' IDENTIFIED BY keystore1_password FROM [FORCE] KEYSTORE IDENTIFIED BY keystore_password [WITH IDENTIFIER IN { 'key_id' [, 'key_id' ]... | ( subquery ) } ] [WITH BACKUP [USING 'backup_identifier']; |
マスター暗号化キーは、同じコンテナ内のキーストアにのみ移動できます(たとえば、CDBルートのキーストア間や同じPDBのキーストア間)。CDBルートのキーストアのマスター暗号化キーをPDBのキーストアに移動することはできず、その逆もできません。
|
統一モードのPDBで使用可能な操作
表5-2では、統一モードのPDBで実行できるADMINISTER KEY MANAGEMENT操作について説明します。
表5-2 ADMINISTER KEY MANAGEMENT統一モードPDB操作
| 操作 | 構文 | 統一モードのノート |
|---|---|---|
|
キーストアを開く |
ADMINISTER KEY MANAGEMENT
SET KEYSTORE OPEN
IDENTIFIED BY
[EXTERNAL STORE | keystore_password]
[CONTAINER = CURRENT]; |
この操作では、 |
|
強制せずにキーストアを閉じる |
ADMINISTER KEY MANAGEMENT
SET KEYSTORE CLOSE
[EXTERNAL STORE | keystore_password]
[CONTAINER = CURRENT]; |
- |
|
強制的にキーストアを閉じる |
ADMINISTER KEY MANAGEMENT
FORCE KEYSTORE CLOSE
IDENTIFIED BY
[EXTERNAL STORE | keystore_password]
[CONTAINER = CURRENT]; |
- |
|
新しいTDEマスター暗号化キーを作成およびアクティブ化する(キー更新またはローテーション) |
ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY [FORCE KEYSTORE] [USING TAG 'tag_name'] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']] [CONTAINER = CURRENT]; |
- |
|
今すぐ( |
ADMINISTER KEY MANAGEMENT SET | CREATE [ENCRYPTION] KEY 'mkid:mk | mk' [USING ALGORITHM 'algorithm'] [FORCE KEYSTORE] [USING TAG 'tag'] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']] [CONTAINER = CURRENT]; |
- |
|
既存のTDEマスター暗号化キーのアクティブ化 |
ADMINISTER KEY MANAGEMENT USE [ENCRYPTION] KEY 'key_id' IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']]; |
|
|
TDEマスター暗号化キーのタグ付け |
ADMINISTER KEY MANAGEMENT SET TAG 'tag' FOR 'key_id' [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']]; |
|
|
暗号化キーを新しいキーストアに移動する |
ADMINISTER KEY MANAGEMENT MOVE [ENCRYPTION] KEYS TO NEW KEYSTORE 'keystore_location1' IDENTIFIED BY keystore1_password FROM [FORCE] KEYSTORE IDENTIFIED BY keystore_password [WITH IDENTIFIER IN { 'key_id' [, 'key_id' ]... | ( subquery ) } ] [WITH BACKUP [USING 'backup_identifier']]; |
|
|
CDBルートの統一モードのキーストアにあるキーを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]]; |
|
|
PDBのクローンが分離されているTDEマスター暗号化キーを使用している場合に |
ADMINISTER KEY MANAGEMENT FORCE ISOLATE KEYSTORE IDENTIFIED BY isolated_keystore_password FROM ROOT KEYSTORE [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | united_keystore_password] [WITH BACKUP [USING backup_id]]; |
- |
5.3 統一モードのPDBで許可されない操作
統一モードのPDBで許可されないADMINISTER KEY MANAGEMENT操作は、CDBルートで実行できます。
操作は次のとおりです。
-
キーストアの操作:
-
キーストアでのマージ操作の実行
-
キーストアのエクスポート
-
キーストアのインポート
-
キーストアの移行
-
キーストアの逆移行
-
PDBのキーストアへのCDBルートにあるキーストアのキーの移動
-
CDBルートにある統一モードのキーストアへのPDBにあるキーの移動
-
-
暗号化キーの操作:
-
CONTAINER = ALL句を使用した、各プラガブル・データベース(PDB)での後から使用する新しいTDEマスター暗号化キーの作成
-
-
クライアント・シークレットの操作:
-
クライアント・シークレットの追加
-
クライアント・シークレットの更新
-
クライアント・シークレットの削除
-
5.4 統一モードのキーストアの場所とタイプの構成
統一モードでは、パラメータのみ、またはパラメータとALTER SYSTEM文の組合せを使用して、キーストアの場所とタイプを構成できます。
- 初期化パラメータ・ファイルの編集による統一モードの構成
初期化パラメータ・ファイル内のWALLET_ROOTパラメータとTDE_CONFIGURATIONパラメータの両方を設定することにより、統一モードを構成できます。 - 初期化パラメータ・ファイルおよびALTER SYSTEMを使用した統一モードの構成
環境がサーバー・パラメータ・ファイル(spfile)に依存している場合は、SCOPEを指定したALTER SYSTEM SETを使用して、WALLET_ROOTおよびTDE_CONFIGURATIONを設定できます。
5.4.1 初期化パラメータ・ファイルの編集による統一モードの構成
初期化パラメータ・ファイル内のWALLET_ROOTパラメータとTDE_CONFIGURATIONパラメータの両方を設定することにより、統一モードを構成できます。
親トピック: 統一モードのキーストアの場所とタイプの構成
5.4.2 初期化パラメータ・ファイルおよびALTER SYSTEMを使用した統一モードの構成
環境がサーバー・パラメータ・ファイル(spfile)に依存している場合は、SCOPEを指定したALTER SYSTEM SETを使用して、WALLET_ROOTおよびTDE_CONFIGURATIONを設定できます。
親トピック: 統一モードのキーストアの場所とタイプの構成
5.5 統一モードで使用するためのソフトウェア・キーストアの構成
統一モードでは、ソフトウェア・キーストアは、CDBルート内に存在しますが、このキーストアのマスター・キーは、統一モードのキーストアを持つPDBで使用可能です。
- 統一モードでのソフトウェア・キーストアの構成について
統一モードでは、CDBルートで作成されたキーストアは、統一モードのPDBからアクセス可能になります。 - ステップ1: ソフトウェア・キーストアの作成
統一モードでは、CDBルート内にキーストアを作成する必要があります。 - ステップ2: 統一モードのPDBでソフトウェア・キーストアを開く
統一モードでソフトウェア・キーストアを開くには、SET KEYSTORE OPEN句を指定して、ADMINISTER KEY MANAGEMENT文を使用する必要があります。 - ステップ3: 統一モードでのソフトウェア・キーストアのTDEマスター暗号化キーの設定
PDBが統一モードで構成されている場合、キーストアのTDEマスター暗号化キーを設定するには、SET KEY句を指定して、ADMINISTER KEY MANAGEMENT文を使用します。 - ステップ4: 統一モードでのデータの暗号化
外部キーストアまたはOracle Key Vaultキーストアの構成が完了したので、データの暗号化を開始できます。
5.5.1 統一モードでのソフトウェア・キーストアの構成について
統一モードでは、CDBルートで作成されたキーストアは、統一モードのPDBからアクセス可能になります。
一般的に、統一モードを有効にした後、統一モードのソフトウェア・キーストアを構成するには、CDBルートでキーストアを作成して開き、そのキーストアのマスター暗号化キーを作成します。その後、CDB環境全体からアクセスできる表と表領域のデータの暗号化を開始できます。
V$ENCRYPTION_WALLET動的ビューでは、キーストアのステータスと場所が示されます。たとえば、次の問合せでは、CDBルート・キーストア(CON_ID 1)のステータス(開いている/閉じている)と場所、およびそれに関連付けられている統一モードのPDBのキーストアが示されます。WRL_PARAMETER列では、CDBルート・キーストアの場所が$ORACLE_BASE/wallet/tdeディレクトリ内にあることが示されています。
SELECT CON_ID, STATUS, WRL_PARAMETER FROM V$ENCRYPTION_WALLET;
CON_ID STATUS WRL_PARAMETER
------ ------ -----------------------------
1 OPEN /app/oracle/wallet/tde/
2 CLOSED
3 OPEN
4 OPEN
5 OPEN この出力では、このCDB内の他のPDBに対してキーストアのパスはリストされていません。それらのPDBは、CDBルート内のキーストアを使用するからです。これらのいずれかのPDBが分離されており、分離モードのPDBでキーストアを作成した場合は、この問合せを実行したときに、WRL_PARAMETER列で分離モードのPDBのキーストア・パスが示されます。
ソフトウェア・キーストア用に安全な外部ストアを作成できます。この機能では、パスワードをオペレーティング・システムから隠すことができます。それにより、終夜のバッチ・スクリプトなどのユーザーの操作なしにデータベースにアクセスできるスクリプトや他のツールにクリアテキスト・キーストア・パスワードを保存する必要がなくなります。このキーストアの場所は、EXTERNAL_KEYSTORE_CREDENTIAL_LOCATION初期化パラメータによって設定されます。マルチテナント環境では、ADMINISTER KEY MANAGEMENT文をIDENTIFIED BY EXTERNAL STORE句を使用して実行すると、様々なPDBがこの外部ストアの場所にアクセスできます。このように、パスワードをまとめて配置すると、パスワードの更新は外部ストアで一度のみで済みます。
親トピック: 統一モードで使用するためのソフトウェア・キーストアの構成
5.5.2 ステップ1: ソフトウェア・キーストアの作成
統一モードでは、CDBルート内にキーストアを作成する必要があります。
ewallet.p12ファイルが、指定したキーストアの場所に生成されます。たとえば、WALLET_ROOTパラメータを$ORACLE_BASE/walletに設定し、TDE_CONFIGURATIONパラメータをFILE (TDEの場合、ウォレットのルートの場所にtdeディレクトリが作成されます)に設定した場合、キーストアは、$ORACLE_BASE/wallet/tdeディレクトリに作成されます。キーストアの名前は、ewallet.p12です。
親トピック: 統一モードで使用するためのソフトウェア・キーストアの構成
5.5.3 ステップ2: 統一モードのPDBでソフトウェア・キーストアを開く
統一モードでソフトウェア・キーストアを開くには、SET KEYSTORE OPEN句を含むADMINISTER KEY MANAGEMENT文を使用する必要があります。
親トピック: 統一モードで使用するためのソフトウェア・キーストアの構成
5.5.4 ステップ3: 統一モードでのソフトウェア・キーストアのTDEマスター暗号化キーの設定
PDBが統一モードに設定されている場合にキーストアのTDEマスター暗号化キーを設定するには、SET KEY句を指定して、ADMINISTER KEY MANAGEMENT文を使用します。
5.5.5 ステップ4: 統一モードでのデータの暗号化
外部キーストアまたはOracle Key Vaultキーストアの構成が完了したので、データの暗号化を開始できます。
親トピック: 統一モードで使用するためのソフトウェア・キーストアの構成
5.6 統一モードでの外部キーストアの構成
統一モードでは、外部キーストアは暗号化キーを保存するために設計された外部キー・マネージャ内にあります。
- 統一モードでの外部キーストアの構成について
統一モードでは、sqlnet.ora(非推奨)を編集して外部キーストアを構成するか、パラメータWALLET_ROOTおよびTDE_CONFIGURATIONを設定できます。 - ステップ1: 統一モードの外部キーストアの構成
TDE_CONFIGURATIONパラメータを設定して、統一モードの外部キーストアを構成できます。 - ステップ2: 外部キーストアを開く
外部キーストアを構成したら、使用する前に開く必要があります。 - ステップ3: 外部キーストアでの最初のTDEマスター暗号化キーの設定
外部キーストアを開くと、最初のTDEマスター暗号化キーを設定できるようになります。 - ステップ4: 統一モードでのデータの暗号化
外部キーストアまたはOracle Key Vaultキーストアの構成が完了したので、データの暗号化を開始できます。
5.6.1 統一モードでの外部キーストアの構成について
統一モードでは、sqlnet.ora (非推奨)を編集して外部キーストアを構成するか、パラメータWALLET_ROOTおよびTDE_CONFIGURATIONを設定できます。
新しいデプロイメントにパラメータWALLET_ROOTおよびTDE_CONFIGURATIONを設定することをお薦めします。あるいは、sqlnet.ora fileの古い構成から、できるだけ早く(四半期ごとのバンドル・パッチを次に適用するときなど)、WALLET_ROOTおよびTDE_CONFIGURATIONを使用して新しい構成に移行できます。
統一モードは、Oracle Databaseリリース12.1.0.2以降でsqlnet.oraのTDE構成で使用されるデフォルトのTDE設定です。Oracle Databaseリリース18c以降では、sqlnet.oraのTDE構成は非推奨です。まず、静的初期化パラメータWALLET_ROOTを既存のディレクトリに設定する必要があります。この変更が取得されるには、データベースの再起動が必要です。再起動後、動的TDE_CONFIGURATIONパラメータのKEYSTORE_CONFIGURATION属性をOKV (Oracle Key Vaultへのパスワードで保護された接続の場合)、またはOracle Key Vaultへの自動オープン接続の場合はOKV|FILEに設定し、構成済の外部キーストアを開いてから、TDEマスター暗号化キーを設定します。これらのタスクを完了すると、データベース内のデータを暗号化できるようになります。
親トピック: 統一モードでの外部キーストアの構成
5.6.2 ステップ1: 統一モードの外部キーストアの構成
TDE_CONFIGURATIONパラメータを設定することで、統一モードの外部キーストアを構成できます。
親トピック: 統一モードでの外部キーストアの構成
5.6.3 ステップ2: 外部キーストアを開く
外部キーストアを構成したら、使用する前に開く必要があります。
- 外部キーストアを開くことについて
暗号化または復号化を実行する前に、データベースにアクセスできるように外部キーストアを開く必要があります。 - 統一モードのPDBで外部キーストアを開く
統一モードで外部キーストアを開くには、SET KEYSTORE OPEN句を指定して、ADMINISTER KEY MANAGEMENT文を使用する必要があります。
親トピック: 統一モードでの外部キーストアの構成
5.6.3.1 外部キーストアを開くことについて
暗号化または復号化を実行する前に、外部キーストアがデータベースにアクセスできるようにするために、外部キーストアを開く必要があります。
データベースにリカバリ操作が必要な場合(データベースが正常に停止しておらず、リカバリが必要な暗号化された表領域がある場合など)、データベース自体を開く前に外部キーストアを開く必要があります。
外部キーストアを開く方法としては、次の2つがあります。
-
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN文を発行して、キーストアを手動で開きます。その後、操作を実行できます。 -
ADMINISTER KEY MANAGEMENT文にFORCE KEYSTORE句を含めます。FORCE KEYSTOREは操作中にキーストアを一時的に開き、操作が完了すると、キーストアは再度閉じられます。FORCE KEYSTOREは、データベースの負荷が高い場合に役に立ちます。このシナリオでは、データベース内の暗号化されたオブジェクトへの同時アクセスにより、自動ログイン・キーストアは、閉じられた直後でユーザーがパスワードベースのキーストアを開く機会を持つ前に開かれ続けます。
キーストアのステータスを確認するには、V$ENCRYPTION_WALLETビューのSTATUS列を問い合せます。キーストアには、CLOSED、NOT_AVAILABLE(つまりWALLET_ROOTの場所にない)、OPEN、OPEN_NO_MASTER_KEY、OPEN_UNKNOWN_MASTER_KEY_STATUSというステータスがあります。
外部キーストアの場合は、データベースがマウント状態だと、データ・ディクショナリを使用できないため、マスター・キーが設定されているかどうかを確認できないということに注意してください。この場合、ステータスはOPEN_UNKNOWN_MASTER_KEY_STATUSになります。
関連項目
親トピック: ステップ2: 外部キーストアを開く
5.6.3.2 統一モードのPDBで外部キーストアを開く
統一モードで外部キーストアを開くには、SET KEYSTORE OPEN句を含むADMINISTER KEY MANAGEMENT文を使用する必要があります。
親トピック: ステップ2: 外部キーストアを開く
5.6.4 ステップ3: 外部キーストアでの最初のTDEマスター暗号化キーの設定
外部キーストアを開いたら、最初のTDEマスター暗号化キーを設定できます。
- 外部キーストアのTDEマスター暗号化キーの設定について
外部キーストア内に格納されたTDEマスター暗号化キーを作成する必要があります。 - 外部キーストアのハートビート・バッチ・サイズ
各ハートビート期間中に発行されるハートビートのバッチのサイズを制御できます。 - ステップ3: 統一モードでの外部キーストアのTDEマスター暗号化キーの設定
PDBが統一モードで構成されている場合、キーストアのTDEマスター暗号化キーを設定するには、SET KEY句を指定して、ADMINISTER KEY MANAGEMENT文を使用します。 - 前に構成したTDEマスター暗号化キーの移行
ソフトウェア・キーストアを以前に構成した場合は、前に構成したTDEマスター暗号化キーを移行する必要があります。
親トピック: 統一モードでの外部キーストアの構成
5.6.4.1 外部キーストアのTDEマスター暗号化キーの設定について
外部キーストア内に格納されたTDEマスター暗号化キーを作成する必要があります。
TDE用にソフトウェア・キーストアをまだ構成していない場合は、外部キーストアで最初のTDEマスター暗号化キーを設定できます。TDE用にソフトウェア・キーストアをすでに構成してある場合は、外部キーストアを使用するようにデータベースを移行する必要があります。
現在のマスター暗号化キーとともに、Oracleウォレットでは、マスター暗号化キーを更新するキーの更新操作のたびに生成される履歴マスター暗号化キーを保持します。これらの履歴マスター・キーにより、履歴マスター暗号化キーのいずれかを使用して、以前に作成されたOracleデータベースのバックアップをリストアできます。
5.6.4.2 外部キーストアのハートビート・バッチ・サイズ
各ハートビート期間中に発行されるハートビートのバッチのサイズを制御できます。
PDBが外部キー・マネージャを使用するように構成されている場合、GEN0バックグラウンド・プロセスは、PDBのかわりに外部キー・マネージャへのハートビート・リクエストを実行する必要があります。このバックグラウンド・プロセスにより、外部キー・マネージャが使用可能であり、PDBのTDEマスター暗号化キーが外部キー・マネージャから使用可能であり、暗号化と復号化の両方に使用できることが確認されます。GEN0バックグラウンド・プロセスは、ハートビート期間(デフォルトは3秒)内にこのリクエストを完了する必要があります。
外部キー・マネージャを使用するように非常に多数のPDB (1000など)が構成されている場合は、ハートビートをバッチ処理するようにHEARTBEAT_BATCH_SIZEデータベース・インスタンス初期化パラメータを構成することで、割り当てられたハートビート期間内に各PDBに対してハートビートを実行する時間がなかった場合に、ハング・アナライザがGEN0プロセスが停止していると誤ってフラグを設定する可能性を軽減できます。
ハートビート・バッチ・サイズを設定することで、PDBのバッチ間でハートビートをずらして、ハートビート期間中にバッチ内の各PDBに対してバッチごとにハートビートを完了できるようにしたり、PDBマスター暗号化キーをOracle Key Vaultサーバーから確実にフェッチしてOracle Key Vault永続キャッシュにキャッシュできるようにすることができます。HEARTBEAT_BATCH_SIZEパラメータは、ハートビート期間ごとに外部キー・マネージャに送信されるハートビートのバッチのサイズを構成します。値は2から100の間にする必要があり、デフォルトは5です。ハートビート期間のデフォルトの期間は3秒です。
たとえば、500個のPDBが構成されており、Oracle Key Vaultを使用している場合、GEN0が単一のPDBのかわりにハートビートを実行するのに要した通常の時間は、0.5秒未満です。また、CDB$ROOTが、Oracle Key Vault (OKV)などの外部キー・マネージャを使用するように構成されているとします。したがって、通常は、3秒のハートビート期間ごとに5つのハートビート(CDB$ROOTに1つと、4つのPDBバッチに4つ)を単一のバッチで送信できます。
HEARTBEAT_BATCH_SIZEパラメータで1つのバッチで送信されるハートビートの数を構成しても、CDB$ROOTが外部キー・マネージャを使用するように構成されている場合は、各ハートビート・バッチにCDB$ROOTのハートビートが含まれている必要があります。HEARTBEAT_BATCH_SIZEパラメータの最小値は2、最大値は100です。CDB$ROOTが外部キー・マネージャを使用するように構成されている場合、ハートビートの各バッチにはCDB$ROOT用にハートビート1つが含まれます。このため、最小バッチ・サイズは2になります。外部キー・マネージャを使用するように構成されている可能性があるため、CDB$ROOT用に1つ予約する必要があります。
たとえば、HEARTBEAT_BATCH_SIZEパラメータを次のように設定するとします。
ALTER SYSTEM SET HEARTBEAT_BATCH_SIZE=3 SCOPE=BOTH SID='*';各反復は、GEN0の3秒間のハートビート期間1つに対応します。
例1: Oracle Key Vaultを使用するように構成されたコンテナのハートビートの設定
コンテナ・リストが1 2 3 4 5 6 7 8 9 10で、すべてのコンテナがOracle Key Vault (OKV)を使用するように構成されているとします。反復は次のとおりです。
- 反復1: バッチを構成するコンテナ: 1 2 3
- 反復2: バッチを構成するコンテナ: 1 4 5
- 反復3: バッチを構成するコンテナ: 1 6 7
- 反復4: バッチを構成するコンテナ: 1 8 9
- 反復5: バッチを構成するコンテナ: 1 10
- このサイクルを繰り返します。
例2: OKVおよびFILEキーストアを持つコンテナのハートビートの設定
この例では、コンテナ・リストは1 2 3 4 5 6 7 8 9 10で、奇数のコンテナのみがOKVキーストアを使用するように構成され、偶数のコンテナはソフトウェア・キーストア(FILE)を使用するように構成されています。
- 反復1: バッチを構成するコンテナ: 1 3 5
- 反復2: バッチを構成するコンテナ: 1 7 9
- 反復3: バッチを構成するコンテナ: 1
- このサイクルを繰り返します。
例3: CDB$ROOTが外部キー・マネージャを使用するように構成されていない場合のハートビートの設定
コンテナ・リストが1 2 3 4 5 6 7 8 9 10で、偶数のコンテナ番号のみがOracle Key Vaultを使用するように構成され、偶数のコンテナがFILEを使用するように構成されているとします。次の例では、FILEを使用するように構成されているため、CDB$ROOTのハートビートはありません。
- 反復1: バッチを構成するコンテナ: 2 4 6
- 反復2: バッチを構成するコンテナ: 8 10
- このサイクルを繰り返します。
5.6.4.3 ステップ3: 統一モードでの外部キーストアのTDEマスター暗号化キーの設定
PDBが統一モードに設定されている場合にキーストアのTDEマスター暗号化キーを設定するには、SET KEY句を指定して、ADMINISTER KEY MANAGEMENT文を使用します。
5.6.4.4 前に構成したTDEマスター暗号化キーの移行
ソフトウェア・キーストアを以前に構成した場合は、前に構成したTDEマスター暗号化キーを移行する必要があります。
Oracle Data PumpやOracle Recovery Managerなどのツールでは、ソフトウェア・キーストアを使用してエクスポートまたはバックアップされたデータに対して復号化と暗号化の操作を実行するために、古いソフトウェア・キーストアにアクセスする必要があります。ソフトウェアから外部キーストアに移行できます。
現在のマスター暗号化キーともに、Oracleキーストアでは、マスター暗号化キーをローテーションするキーの更新操作のたびに生成される履歴マスター暗号化キーを保持します。これらの履歴マスター暗号化キーにより、履歴マスター暗号化キーのいずれかを使用して、以前に作成されたOracleデータベースのバックアップをリストアできます。
5.6.5 ステップ4: 統一モードでのデータの暗号化
外部キーストアまたはOracle Key Vaultキーストアの構成が完了したので、データの暗号化を開始できます。
親トピック: 統一モードでの外部キーストアの構成
5.7 統一モードでのキーストアおよびTDEマスター暗号化キーの管理
統一モードで使用するためのキーストアとマスター暗号化キーを構成した後、TDEマスター暗号化キーのキー更新などのタスクを実行できます。
- 統一モードでのキーストア・パスワードの変更
ソフトウェア・キーストアまたは外部キーストアのパスワードは、CDBルートでのみ変更できます。 - 統一モードでのパスワードで保護されたソフトウェア・キーストアのバックアップ
ADMINISTER KEY MANAGEMENT文のBACKUP KEYSTORE句により、パスワードで保護されたソフトウェア・キーストアをバックアップします。 - 統一モードでキーストアを閉じる
システム表領域が暗号化されている場合を除き、統一モードでソフトウェア・キーストアと外部キーストアの両方を閉じることができます。 - 統一モードでのユーザー定義のTDEマスター暗号化キーの作成
ユーザー定義のTDEマスター暗号化キーを作成するには、SET | CREATE [ENCRYPTION] KEY句を指定して、ADMINISTER KEY MANAGEMENT文を使用します。 - 例: すべてのPDBでのマスター暗号化キーの作成
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG文を使用して、すべてのPDBにTDEマスター暗号化キーを作成できます。 - 統一モードでの後で使用するためのTDEマスター暗号化キーの作成
統一モードで後で使用するTDEマスター暗号化キーを作成する前に、キーストアが開かれている必要があります。 - 統一モードでのTDEマスター暗号化キーのアクティブ化
統一モードでTDEマスター暗号化キーをアクティブ化するには、キーストアを開き、USE KEY句を含むADMINISTER KEY MANAGEMENTを使用する必要があります。 - 統一モードでの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の分離モードのキーストアに移動します。
5.7.1 統一モードでのキーストア・パスワードの変更
ソフトウェア・キーストアまたは外部キーストアのパスワードは、CDBルートでのみ変更できます。
- 統一モードでのパスワードで保護されたソフトウェア・キーストアのパスワードの変更
統一モードでパスワードで保護されたソフトウェア・キーストアのパスワードを変更するには、CDBルートでADMINISTER KEY MANAGEMENT文を使用する必要があります。 - 統一モードでの外部キーストアのパスワードの変更
外部キーストアのパスワードを変更するには、外部キーストアを閉じた後、外部キーストアの管理インタフェースからパスワードを変更する必要があります。
5.7.1.1 統一モードでのパスワードで保護されたソフトウェア・キーストアのパスワードの変更
統一モードでパスワードで保護されたソフトウェア・キーストアのパスワードを変更するには、CDBルートでADMINISTER KEY MANAGEMENT文を使用する必要があります。
-
ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、CDBルートにログインします。 -
次の構文を使用して、キーストアのパスワードを変更します。
ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD [FORCE KEYSTORE] IDENTIFIED BY old_keystore_password SET new_keystore_password [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
-
FORCE KEYSTOREは、キーストアが閉じている場合、自動ログイン・キーストアが構成されていて現在開いている場合、またはパスワード保護されたキーストアが構成されていて現在閉じている場合に、パスワード保護されたキーストアをこの操作用に一時的に開きます。 -
old_passwordは、変更する現在のキーストア・パスワードです。 -
new_passwordは、キーストア用に設定する新しいパスワードです。 -
パスワードはローカルでCDBルートにおいてのみ変更できるため、
CONTAINER句を含める必要はありません。
次の例では、キーストアのバックアップを作成してから、パスワードを変更します。
ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD IDENTIFIED BY old_password SET new_password WITH BACKUP USING 'pwd_change'; keystore altered.
この例では同じ操作を実行しますが、自動ログイン・ソフトウェア・キーストアが使用されている場合や、パスワード保護されたソフトウェア・キーストアが閉じている場合のために、
FORCE KEYSTORE句を使用します。ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD FORCE KEYSTORE IDENTIFIED BY old_password SET new_password WITH BACKUP USING 'pwd_change'; keystore altered.
-
5.7.1.2 統一モードでの外部キーストアのパスワードの変更
外部キーストアのパスワードを変更するには、外部キーストアを閉じた後、外部キーストアの管理インタフェースからパスワードを変更する必要があります。
親トピック: 統一モードでのキーストア・パスワードの変更
5.7.2 統一モードでのパスワードで保護されたソフトウェア・キーストアのバックアップ
ADMINISTER KEY MANAGEMENT文のBACKUP KEYSTORE句により、パスワード保護されたソフトウェア・キーストアをバックアップします。
-
ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、CDBルートにログインします。たとえば:
sqlplus c##sec_admin@hrpdb as syskm Enter password: password Connected. -
次の構文を使用して、キーストアをバックアップします。
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE [USING 'backup_identifier'] [FORCE KEYSTORE] IDENTIFIED BY [EXTERNAL STORE | software_keystore_password] [TO 'keystore_location'];
ここでは次のように指定します。
-
USINGbackup_identifierは、バックアップを識別するために指定できるオプション文字列です。この識別子は、一重引用符(' ')で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(ewallet_time-stamp_emp_key_backup.p12など)。 -
FORCE KEYSTOREはこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。 -
IDENTIFIED BYは、パスワード保護されたキーストアに対してBACKUP KEYSTORE操作を行う場合に必須です。その理由は、バックアップは既存のキーストアのコピーにすぎませんが、パスワード保護されたキーストアのTDEマスター暗号化キーのステータスをBACKED UPに設定する必要があり、この変更を行うためにキーストア・パスワードが必要になるためです。 -
keystore_locationは、バックアップ・キーストアが格納されるパスです。PDBロックダウン・プロファイルのEXTERNAL_FILE_ACCESS設定がPDBでブロックされている場合、またはPDBの作成時にPATH_PREFIX変数が設定されていない場合は、この設定がPDBに制限されます。keystore_locationを指定しない場合、バックアップは元のキーストアと同じディレクトリに作成されます。この場所は一重引用符(' ')で囲みます。 -
キーストアはローカルでCDBルートにおいてのみバックアップできるため、
CONTAINER句を含める必要はありません。
次の例は、ソフトウェア・キーストアをソース・キーストアと同じ場所にバックアップします。
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE USING 'hr.emp_keystore' FORCE KEYSTORE IDENTIFIED BY software_keystore_password ; 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など)が、キーストアのバックアップ場所に作成されます。 -
5.7.3 統一モードでキーストアを閉じる
システム表領域が暗号化されていないかぎり、統一モードでソフトウェア・キーストアと外部キーストアの両方を閉じることができます。
- 統一モードでソフトウェア・キーストアを閉じる
統一モードで、パスワード保護されたキーストア、自動ログイン・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアを閉じることができます。 - 統一モードで外部キーストアを閉じる
外部キーストアを閉じるには、SET KEYSTORE CLOSE句を含むADMINISTER KEY MANAGEMENT文を使用する必要があります。
5.7.3.1 統一モードでソフトウェア・キーストアを閉じる
統一モードで、パスワード保護されたキーストア、自動ログイン・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアを閉じることができます。
ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を付与されたユーザーとして、CDBルート、または統一モードのPDBにログインします。- ソフトウェア・キーストアを閉じます。
- パスワードで保護されたソフトウェア・キーストアでは、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ルート内にいる場合、次の構文を使用します。
関連項目
親トピック: 統一モードでキーストアを閉じる
5.7.3.2 統一モードで外部キーストアを閉じる
外部キーストアを閉じるには、SET KEYSTORE CLOSE句を含むADMINISTER KEY MANAGEMENT文を使用する必要があります。
関連項目
親トピック: 統一モードでキーストアを閉じる
5.7.4 統一モードでのユーザー定義のTDEマスター暗号化キーの作成
ユーザー定義のTDEマスター暗号化キーを作成するには、SET | CREATE [ENCRYPTION] KEY句を含むADMINISTER KEY MANAGEMENT文を使用します。
5.7.5 例: すべてのPDBでのマスター暗号化キーの作成
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG文を使用して、すべてのPDBにTDEマスター暗号化キーを作成できます。
例5-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でキーを個々にアクティブ化できます。
例5-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.
5.7.7 統一モードでのTDEマスター暗号化キーのアクティブ化
統一モードでTDEマスター暗号化キーをアクティブ化するには、キーストアを開き、USE KEY句を含むADMINISTER KEY MANAGEMENTを使用する必要があります。
-
ADMINISTER KEY MANAGEMENTまたはSYSKM権限を付与されたユーザーとして、CDBルート、または統一モードのPDBにログインします。 -
V$ENCRYPTION_KEYSビューのORIGIN列およびKEY_ID列を問い合せて、キーの識別子を確認します。たとえば:
SELECT ORIGIN, KEY_ID FROM V$ENCRYPTION_KEYS; ORIGIN KEY_ID ------ ---------------------------------------------- LOCAL 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'] [CONTAINER = ALL | CURRENT];
ここでは次のように指定します。
-
FORCE KEYSTOREはこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。 -
CONTAINER: CDBルートでは、CONTAINERをALLまたはCURRENTに設定します。PDBでは、CONTAINER句を省略します。どちらの場合も、CONTAINERを省略すると、デフォルトでCURRENTに設定されます。 -
WITH BACKUPは、WALLET_ROOT/tdeで識別される元のウォレットと同じ場所にウォレットをバックアップします。すべてのデータベース・インスタンスのキーの場所を確認するには、V$ENCRYPTION_WALLETまたはGV$ENCRYPTION_WALLETビューを問い合せます。WITH BACKUP句は、ウォレットを変更するADMINISTER KEY MANAGEMENT文すべてに必須です。オプションで、USINGbackup_identifier句を含めることで、バックアップの説明を追加できます。backup_identifierは、一重引用符(' ')で囲みます。
たとえば:
ADMINISTER KEY MANAGEMENT USE KEY 'ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE WITH BACKUP CONTAINER = ALL;
-
5.7.8 統一モードでのTDEマスター暗号化キーのキー更新
SET KEY句を含むADMINISTER KEY MANAGEMENT文を使用して、TDEマスター暗号化キーをキー更新できます。
-
ADMINISTER KEY MANAGEMENTまたはSYSKM権限を付与されたユーザーとして、CDBルート、または統一モードのPDBにログインします。 -
自動ログインを有効化したキーストアのTDEマスター暗号化キーをキー更新する場合、
.ssoファイルによって識別される自動ログイン・キーストアと.p12ファイルによって識別される暗号化キーストアの両方が存在することを確認する必要があります。これらのファイルのロケーションは、
V$ENCRYPTION_WALLETビューのWRL_PARAMETER列を問い合せることで確認できます。すべてのデータベース・インスタンスのWRL_PARAMETER値を見つけるには、GV$ENCRYPTION_WALLETビューを問い合せます。 -
次の構文を使用して、TDEマスター暗号化キーをキー更新します。
ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY [FORCE KEYSTORE] [USING TAG 'tag_name'] IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']] [CONTAINER = ALL | CURRENT];
ここでは次のように指定します。
-
tagは、定義する関連の属性および情報です。この設定は、一重引用符(' ')で囲みます。 -
FORCE KEYSTOREはこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。 -
IDENTIFIED BYは次のいずれかの設定にできます。-
EXTERNAL STOREは、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。 -
keystore_passwordは、このキーストア用に作成されたパスワードです。
-
-
CONTAINER: CDBルートでは、CONTAINERをALLまたはCURRENTに設定します。PDBでは、CURRENTに設定します。どちらの場合も、CONTAINERを省略すると、デフォルトでCURRENTに設定されます。
たとえば:
ADMINISTER KEY MANAGEMENT SET KEY FORCE KEYSTORE IDENTIFIED BY keystore_password WITH BACKUP USING 'emp_key_backup' CONTAINER = CURRENT; keystore altered. -
5.7.9 統一モードで使用中のTDEマスター暗号化キーの確認
使用中のTDEマスター暗号化キーは、データベースで一番最近アクティブ化されたキーです。
5.7.10 統一モードでのカスタム属性タグの作成
統一モードでカスタム属性タグを作成するには、ADMINISTER KEY MANAGEMENT文のSET TAG句を使用する必要があります。
-
ADMINISTER KEY MANAGEMENTまたはSYSKM権限を付与されたユーザーとして、CDBルート、または統一モードの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はこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。 -
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関数を使用することで、値を導出できます。 -
関連項目
5.7.11 統一モードでの新しいキーストアへのTDEマスター暗号化キーの移動
統一モードでは、既存のTDEマスター暗号化キーを既存のソフトウェア・パスワード・キーストアから新しいキーストアに移動できます。
関連項目
5.7.12 統一モードでの非アクティブなTDEマスター暗号化キーの自動削除
統一モードでは、REMOVE_INACTIVE_STANDBY_TDE_MASTER_KEY初期化パラメータにより、非アクティブなTDEマスター暗号化キーの自動削除を構成できます。
5.8 統一モードでの透過的データ暗号化の管理
統一モードで透過的データ暗号化を使用して一般的な管理タスクを実行できます。
- 統一モードでのあるCDBから別のCDBへのPDBの移動
暗号化されたPDBを同じコンテナ・データベース内またはコンテナ・データベース間でクローニングまたは再配置できます - 統一モードでの暗号化データを含むPDBのCDBに対するアンプラグとプラグイン
統一モードでは、暗号化データを含むPDBをCDBにプラグインできます。反対に、このPDBをCDBからアンプラグすることもできます。 - 統一モードでの暗号化データを含むクローニングされたPDBの管理
統一モードでは、CDBで暗号化されたデータのあるPDBをクローニングできます。 - 統一モードでのキーストアの開閉操作の機能
統一モードでキーストアの開閉操作がどのように機能するのかを知っておく必要があります。 - 統一モードでのすべてのPDBのキーストア・ステータスの確認
V$ENCRYPTION_WALLETビューを使用する簡易関数を作成して、CDBにおけるすべてのPDBのキーストアのステータスを確認できます。
5.8.1 統一モードでのあるCDBから別のCDBへのPDBの移動
暗号化されたPDBを同じコンテナ・データベース内またはコンテナ・データベース間でクローニングまたは再配置できます
SYSTEM、SYSAUX、UNDOまたはTEMP表領域が暗号化されている非CDBまたはPDBを移動し、キーの手動エクスポートまたはインポートを使用する場合は、まずPDBを作成する前に、ターゲット・データベースのCDB$ROOTにある非CDBまたはPDBのキーをインポートする必要があります。キーをPDBに関連付けるには、PDB内でキーのインポートが再度必要です。
親トピック: 統一モードでの透過的データ暗号化の管理
5.8.2 統一モードでの暗号化データを含むPDBのCDBに対するアンプラグとプラグイン
統一モードでは、暗号化データを含むPDBをCDBにプラグインできます。反対に、このPDBをCDBからアンプラグすることもできます。
- 統一モードでの暗号化データを含むPDBのアンプラグ
統一モードでは、暗号化データを含むPDBをアンプラグして、XMLメタデータ・ファイルまたはアーカイブ・ファイルにエクスポートできます。 - 統一モードでの暗号化データを含むPDBのCDBへのプラグイン
暗号化データを含むPDBをCDBにプラグインするには、まずPDBにプラグインしてから、そのPDBのマスター暗号化キーを作成します。 - 統一モードで外部キーストアにマスター暗号化キーが格納されたPDBのアンプラグ
HSMを使用するように構成されたCDBからPDBをアンプラグした後、外部キーストアを使用するように構成された別のCDBにプラグインできます。 - 統一モードで外部キーストアに格納されたマスター暗号化キーを含むPDBのプラグイン
ADMINISTER KEY MANAGEMENT文を使用すると、外部キーストアから他のCDBに移されたPDBにTDEマスター暗号化キーをインポートできます。
親トピック: 統一モードでの透過的データ暗号化の管理
5.8.2.1 統一モードでの暗号化データを含むPDBのアンプラグ
統一モードでは、暗号化データを含むPDBをアンプラグして、XMLメタデータ・ファイルまたはアーカイブ・ファイルにエクスポートできます。
DBA_PDBSデータ・ディクショナリ・ビューのSTATUS列を問い合せることで、PDBがアンプラグされたかどうかを確認できます。
5.8.2.2 統一モードでの暗号化データを含むPDBのCDBへのプラグイン
暗号化データを含むPDBをCDBにプラグインするには、まずPDBにプラグインしてから、そのPDBのマスター暗号化キーを作成します。
0に設定されます。キー・バージョンは、V$ENCRYPTED_TABLESPACES動的ビューのKEY_VERSIONを問い合せて確認できます。同様に、制御ファイルが失われ再作成された場合、以前のキーの履歴は0にリセットされます。DBA_PDBSデータ・ディクショナリ・ビューのSTATUS列を問い合せることで、PDBがすでにプラグインされているかどうかを確認できます。
-
CDBルートから、アンプラグされたPDBをCDBにプラグインすることで、PDBを作成します。
統一モードの場合にこの操作を実行するには、
DECRYPT USING transport_secret句を含めます。PDBのXMLまたはアーカイブ・ファイルに暗号化データが含まれている場合は、この句を使用する必要があります。それ以外の場合、「
ORA-46680: コンテナ・データベースのマスター・キーをエクスポートする必要があります」エラーが返されます。-
たとえば、PDBデータをXMLファイルにエクスポートした場合は、次のように指定します。
CREATE PLUGGABLE DATABASE CDB1_PDB2 USING '/tmp/cdb1_pdb2.xml' KEYSTORE IDENTIFIED BY EXTERNAL STORE|keystore_password DECRYPT USING transport_secret;
-
PDBをアーカイブ・ファイルにエクスポートした場合は、次のように指定します。
CREATE PLUGGABLE DATABASE CDB1_PDB2 USING '/tmp/cdb1_pdb2.pdb' KEYSTORE IDENTIFIED BY EXTERNAL STORE|keystore_password DECRYPT USING transport_secret;
プラグ操作後のPDBのオープン操作中に、Oracle DatabaseによってPDBに暗号化データが含まれるかどうかが判別されます。その場合、PDBは
RESTRICTEDモードでオープンされます。別のPDBをクローニングしてPDBを作成するか、非CDBからPDBを作成するときに、ソース・データベースに暗号化されたデータまたは設定されているTDEマスター暗号化キーがある場合、
CREATE PLUGGABLE DATABASE ... FROMSQL文のKEYSTORE IDENTIFIED BY keystore_password句を含めることによって、ターゲット・キーストアのキーストア・パスワードを提供する必要があります。このパスワードは、ターゲット・データベースが自動ログイン・ソフトウェア・キーストアを使用している場合であっても指定する必要があります。V$ENCRYPTION_KEYS動的ビューを問い合せることで、ソース・データベースに暗号化されたデータまたはキーストアで設定されているTDEマスター暗号化キーがあるかどうかを確認できます。 -
-
PDBを開きます。
たとえば:
ALTER PLUGGABLE DATABASE CDB1_PDB2 OPEN;
-
次のいずれかの方法を使用して、CDBルートのキーストアを開きます。
- CDBのソフトウェア・キーストアが開いていない場合は、次の構文を使用して、コンテナおよび開いているすべてのPDBに対して開きます。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN [FORCE KEYSTORE] IDENTIFIED BY EXTERNAL STORE|KEYSTORE_PASSWORD CONTAINER = ALL; - CDBのソフトウェア・キーストアが開いている場合は、プラグインしたPDBに接続し、次の構文を使用してキーストアを開きます。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN [FORCE KEYSTORE] IDENTIFIED BY EXTERNAL STORE|KEYSTORE_PASSWORD [CONTAINER = CURRENT];
- CDBのソフトウェア・キーストアが開いていない場合は、次の構文を使用して、コンテナおよび開いているすべてのPDBに対して開きます。
-
プラグインしたPDBで、次の構文を使用してPDBのTDEマスター暗号化キーを設定します。
ADMINISTER KEY MANAGEMENT SET KEY [FORCE KEYSTORE] IDENTIFIED BY EXTERNAL STORE|keystore_password WITH BACKUP [USING 'backup_identifier'];
5.8.2.3 統一モードでの外部キーストアにマスター暗号化キーが格納されたPDBのアンプラグ
HSMを使用するように構成されたCDBからPDBをアンプラグした後、それを同様に外部キーストアを使用するように構成された別のCDBにプラグインできます。
5.8.3 統一モードでの暗号化データを含むクローニングされたPDBの管理
統一モードでは、暗号化データを含むPDBをCDBでクローニングできます。
- 統一モードでの暗号化データを含むクローニングされたPDBの管理について
PDBをクローニングする際、ソースPDBのマスター・キーをクローニングされたPDBが使用できるようにしておく必要があります。 - 統一モードでの暗号化データを含むPDBのCDBへのクローニング
KEYSTORE IDENTIFIED BY句を含むCREATE PLUGGABLE DATABASE文によって、暗号化データを含むPDBをクローニングできます。 - 統一モードで、暗号化データを含むPDBのリモート・クローニングを2つのCDB間で実行する
KEYSTORE IDENTIFIED BY句を含むCREATE PLUGGABLE DATABASE文は、暗号化されたデータを含むPDBをリモートからクローニングできます。 - TDE Academyビデオ: 暗号化されたPDBのリモートでのクローニングおよびアップグレード
Oracle TDE Academyでは、暗号化されたプラガブル・データベース(PDB)をリモートでクローニングおよびアップグレードする方法についてのビデオを提供しています。 - 統一モードで、暗号化データを含むクローニングされたPDBをCDB間で再配置する
KEYSTORE IDENTIFIED BY句を含むCREATE PLUGGABLE DATABASE文は、暗号化されたデータを含むクローニングされたPDBをCDB間で再配置できます。
親トピック: 統一モードでの透過的データ暗号化の管理
5.8.3.1 統一モードでの暗号化データを含むクローニングされたPDBの管理について
PDBをクローニングする際、ソースPDBのマスター暗号化キーをクローニングされたPDBが使用できるようにしておく必要があります。
これにより、クローニングされたPDBが暗号化データに対して操作を行うことができます。クローニングされたPDBがリモートのCDBにある場合であっても、Oracle Databaseがキーを転送するため、クローニングを実行するためにキーをエクスポートまたはインポートする必要はありません。ただし、クローンを作成するCDBのキーストア・パスワードは指定する必要があります。
PDBに暗号化されたデータがある場合は、CDB間でPDBのリモート・クローニング操作を実行し、CDB間でPDBを再配置できます。
5.8.3.2 統一モードでの暗号化データを含むPDBのCDBへのクローニング
KEYSTORE IDENTIFIED BY句を含むCREATE PLUGGABLE DATABASE文によって、暗号化データを含むPDBをクローニングできます。
5.8.3.3 統一モードで、暗号化データを含むPDBのリモート・クローニングを2つのCDB間で実行する
KEYSTORE IDENTIFIED BY句を含むCREATE PLUGGABLE DATABASE文によって、暗号化データを含むPDBをリモートからクローニングできます。
5.8.3.4 TDE Academyビデオ: 暗号化されたPDBのリモートでのクローニングおよびアップグレード
Oracle TDE Academyでは、暗号化されたプラガブル・データベース(PDB)をリモートでクローニングおよびアップグレードする方法についてのビデオを提供しています。
5.8.4 統一モードでのキーストアの開閉操作の機能
統一モードでキーストアの開閉操作がどのように機能するかを知っておく必要があります。
統一モードの各PDBに関して、透過的データ暗号化の操作が続行できるように、PDBでパスワード保護されたソフトウェア・キーストアまたは外部キーストアを明示的に開く必要があります。(自動ログイン・ソフトウェア・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアは自動的に開きます。)PDBのキーストアを閉じることによって、PDBのすべての透過的データ暗号化操作がブロックされます。
PDBにおけるキーストアの開閉操作は、CDBルートにおけるキーストアの開閉ステータスに依存します。
次の点に注意してください。
-
統一モードの各PDBについて個別のキーストアのパスワードを作成できます。
-
個々のPDBでソフトウェア・パスワード保護されたキーストアまたは外部キーストアを手動で開く前に、CDBルートでキーストアを開く必要があります。
-
自動ログイン・キーストアが使用されているか、キーストアが閉じている場合は、キーストアを開くまたは閉じるときに、
ADMINISTER KEY MANAGEMENT文にFORCE KEYSTORE句を含めます。 -
キーストアがパスワード用に外部ストアを使用するパスワード保護されたソフトウェア・キーストアである場合は、
IDENTIFIED BY句をEXTERNAL STOREに設定します。 -
個々のPDBでTDEマスター暗号化キーを設定するには、事前にCDBルートでキーを設定する必要があります。
-
(自動ログイン・ソフトウェア・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアは自動的に開きます。)これらを最初にCDBルートからまたはPDBから、手動で開く必要はありません。
-
CDBルートでキーストアを閉じると、これに依存するPDBのキーストアも閉じます。rootにおいてキーストアを閉じる操作は、
CONTAINER句がALLに設定されていてキーストアを閉じる操作を実行することと同等です。 -
CDBルートで
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN文を実行し、CONTAINER句をALLに設定した場合、キーストアは、統一モードで構成されている各PDBでのみ開くことになり、分離モードで構成されているいずれのPDBも開かれません。
親トピック: 統一モードでの透過的データ暗号化の管理
5.8.5 統一モードでのすべてのPDBのキーストア・ステータスの確認
V$ENCRYPTION_WALLETビューを使用する便利なファンクションを作成して、CDBにおけるすべてのPDBのキーストアのステータスを確認できます。
V$ENCRYPTION_WALLETビューでは、PDBのキーストアのステータス(開いているか、閉じているか、ソフトウェアまたは外部キーストアを使用しているかなど)が表示されます。
-
V$ENCRYPTION_WALLETビューを使用してキーストアのステータスを検出するファンクションを作成するには、CREATE PROCEDUREPL/SQL文を使用します。
例5-2では、このファンクションを作成する方法を示しています。
例5-2 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;親トピック: 統一モードでの透過的データ暗号化の管理