4 分離モードの構成

分離モードでは、各プラガブル・データベース(PDB)のキーストアを作成できます。

4.1 分離モードの構成について

分離モードでは、プラガブル・データベース(PDB)が独自のキーストアとキーストアのパスワードを持つため、そのPDBからのみキーストアとTDEマスター暗号化キーを管理します。

統一モードと同様に、まず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)、Oracle Exadata Database Service on Dedicated Infrastructure (ExaDB-D)、ADB-D、ExaDB-D@Azure、Oracle Exadata Database Service on Cloud@Customer (ExaDB-C@C)、Oracle Autonomous Database on Dedicated Exadata Infrastructure (ADB-C@C)であり、Oracle Key Vaultでそれらのデータベース・デプロイメントのキー管理が提供されている場合でもサポートされません。

4.2 分離モードで実行可能な操作

分離モードでは、ADMINISTER KEY MANAGEMENTの多くの操作を実行できます。

これらの操作には、キーストアの作成、バックアップ、オープンや、キーストアのパスワード変更、マージ、クローズなどが含まれます。また、暗号化キーの作成、アクティブ化、タグ付け、移動、エクスポート、インポート、移行や、クライアント・シークレットの追加、更新、削除も実行できます。

表4-1は、分離モードのPDBで実行できるADMINISTER KEY MANAGEMENTの操作を示しています。

表4-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は、パスワードで保護されたウォレットと(ローカル)自動オープン・ウォレットの両方のキーストアの場所をWALLET_ROOT/pdb_guid/tdeから認識します。

キーストアを開く

ADMINISTER KEY MANAGEMENT
SET KEYSTORE OPEN
[FORCE KEYSTORE]
IDENTIFIED BY EXTERNAL STORE | isolated_PDB_keystore_password;

EXTERNAL_STORE句は、WALLET_ROOT/PDB-GUIDの場所にあるtde_sepsディレクトリのウォレットから分離モードのPDBキーストア・パスワードを取得します。

キーストア・パスワードの変更

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]];

FORCE句を使用すると、分離モードのPDBのキーストアが開いていても、CDBルート内のキーストアを閉じることができます。

新しいTDEマスター暗号化キーの作成およびアクティブ化(キー更新)

ADMINISTER KEY MANAGEMENT 
SET [ENCRYPTION] KEY 
[USING TAG 'tag_name']
[FORCE KEYSTORE]
IDENTIFIED BY [EXTERNAL STORE | keystore_password
]WITH BACKUP [USING 'backup_identifier'];

-

今すぐ(SET)または後から(CREATE)ユーザー定義のTDEマスター暗号化キーを作成する

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 | 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のTDE_CONFIGURATIONを変更して分離モードにします。次に、PDBの現在および以前のアクティブTDEマスター暗号化キーをルート・キーストアからPDBの新しく作成した分離キーストアに移動します。このキーストアは、独自の分離キーストア・パスワードを持ち、そのPDBが独自のキーを管理できるようになります。

4.3 分離モードのPDBで実行できない操作

分離モードのPDBで実行できないADMINISTER KEY MANAGEMENTの操作がいくつかあります。

これには次の操作が含まれます。

  • CONTAINER = ALL句を使用して、各プラガブル・データベース(PDB)で後から使用するための新しいTDEマスター暗号化キーを作成する

  • 暗号化キーをCDBルートのキーストアから分離モードで構成されているPDBのキーストアに移動する

4.4 分離モードでのキーストアの場所とタイプの構成

分離モードでは、キーストアの場所とタイプを、パラメータのみ、またはパラメータとALTER SYSTEM文の組合せを使用して構成できます。

4.4.1 分離モードでのキーストアの場所とタイプの構成について

CDB環境のWALLET_ROOTおよびTDE_CONFIGURATIONパラメータの構成は、統一モードで使用する手順と同様です。

違いは、ALTER SYSTEM文のRESET句を使用するのではなく、SET句を使用する点です。この構成を行うには、初期化パラメータ・ファイルにWALLET_ROOTパラメータとTDE_CONFIGURATIONパラメータを追加します。PDBを分離モードで構成するには、PDBのTDE_CONFIGURATIONパラメータに値を設定します。この操作は、ALTER SYSTEM文を使用するか、ADMINISTER KEY MANAGEMENT ISOLATE KEYSTORE文を発行することによって行います。この項では、ALTER SYSTEM文を使用する方法について説明します。

PDBのTDE_CONFIGURATIONパラメータの値を設定するときに、システムでpfileとspfileのどちらが使用されているかに応じて、ALTER SYSTEM文のSCOPE句を適切な値に設定する必要があります。TDE_CONFIGURATIONパラメータの値は、属性と値のペアのリストであり、キーストアのタイプを指定するのは、KEYSTORE_CONFIGURATION属性の値です。その内容は次のとおりです。

  • FILEは、TDEウォレットを指定します。

  • OKVは、Oracle Key Vaultを示します。

  • FILE|OKVは、OKVキーストア・タイプからFILEキーストア・タイプへの逆移行が発生しことを示します。

  • FILE|HSMは、HSMキーストア・タイプからFILEキーストア・タイプへの逆移行が発生したことを示します。

  • OKV|FILEは、FILEキーストア・タイプからOKVキーストア・タイプへの移行が発生したことを示します。キーストア・タイプには2つの意味があります。FILEからOKVに移行しているという意味か、OKVの使用時に構成が開始されたが現在は自動ログインOKV構成が使用されている(この場合、OKVパスワードはWALLET_ROOT/pdb_guid/tdeディレクトリのcwallet.ssoファイルにある)という意味です。

ALTER SYSTEMを使用して、選択したPDBのTDE_CONFIGURATION値を構成すると、CDB環境内のPDBが分離モードになります。この手順のステップでは、個々のPDBを分離モードに構成して、独自のキーストア・タイプを使用できるようにする方法を詳しく説明します。

4.4.2 分離モードのPDBのキーストアの場所およびキーストア・タイプの構成

分離モードを構成するには、CDBルートにある初期化パラメータ・ファイルのWALLET_ROOTと、分離するPDBのTDE_CONFIGURATIONを設定します。

  1. ルートで、WALLET_ROOTパラメータが正しく設定されていることを確認します。
    たとえば:
    SHOW PARAMETER WALLET_ROOT
  2. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限を持つユーザーとして、次の文をPDBで実行します:
    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY "iso_PDB_TDE_wallet_password";
    この文は次の処理を実行します:
    • 分離されたPDBのTDE_CONFIGURATIONFILEに設定します。
    • WALLET_ROOTの下に、ディレクトリpdb_guid/tdeを作成します。
    • 新しいTDEウォレットを独自のパスワードで作成します(このパスワードはCDB管理者に認識されない場合があります)。
  3. 構成を確認します。
    • 分離されたPDBのTDE_CONFIGURATIONパラメータの設定を確認するには、次のように指定します。
      SHOW PARAMETER TDE_CONFIGURATION
      

      出力には、現在のPDBに対して設定したキーストア構成が反映されている必要があります。異なるキーストア構成が表示される場合(OKVに設定したがFILEと表示される場合など)は、その設定が統一モードでCDBルートに対して設定されたキーストア構成を示している可能性があります。

    • キーストアのモードを確認するには、次のように指定します。
      SELECT KEYSTORE_MODE FROM V$ENCRYPTION_WALLET;

      出力はISOLATEDとなっている必要があります。

分離モードを構成すると、PDBが統一モードであったときに使用可能であったCDBルートのキーストアが、このPDBで使用できなくなります。この段階で、PDBは固有のキーストアを使用するように構成されます。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のキーストアは実質的に「空」のままになります。これで、バックアップして削除できる状態になります。キーストアを削除する場合は、キーストアが空であっても、必ず事前にバックアップを行ってください。

4.4.3 例: 古いバージョンの制御ファイルのリストア

リストアが必要な古いバージョンの制御ファイルがあり、分離モードで構成されているPDBの数が少ない場合は、TDE_CONFIGURATIONを設定できます。

CDBルートとPDBの両方がマウント状態である場合は、CDBルートからPDBのキーストア構成のみを変更できます。

  1. SYSDBA管理権限を付与されたユーザーとしてCDBルートにログインします。

  2. 変更する各PDBに対して、次の構文を使用します。

    ALTER SYSTEM SET TDE_CONFIGURATION="CONTAINER=pdb_name;KEYSTORE_CONFIGURATION=keystore_type" SCOPE=memory;
    

    たとえば、キーストア・タイプとしてFILE (TDEウォレット)を使用するhrpdbsalespdbの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;
    
  3. 各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に適用されます。

  4. 各PDBに接続し、PDBを閉じて再オープンします。

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

4.4.4 例: 制御ファイル紛失の問題への対処

制御ファイルを紛失した場合は、ALTER SYSTEM文を使用してこの問題に対処できます。

SCOPEをメモリーに設定してこれらの文を実行すると、CONTAINERの値がメモリーに格納されます。分離モードのPDBを開くと、そのPDBに対するこの構成が自動的に更新されます。

Oracle Data Guard環境を使用している場合は、制御ファイルを修正するために、プライマリ・データベースとスタンバイ・データベースの両方で次の文を実行します。

  1. SYSDBA管理権限を付与されたユーザーとしてCDBルートにログインします。

  2. システムの正確な状態が不明な場合は、RESETを指定してALTER SYSTEMを実行する必要があります。

    たとえば:

    ALTER SYSTEM RESET TDE_CONFIGURATION SCOPE=memory;
  3. 変更する各PDBに対して、次の構文を使用します。

    ALTER SYSTEM SET TDE_CONFIGURATION="CONTAINER=pdb_name;KEYSTORE_CONFIGURATION=FILE" SCOPE=memory; 
    

    たとえば、キーストア・タイプとしてFILE (TDEウォレット)を使用してhrpdbsalespdbの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; 
    
  4. 各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に適用されます。

  5. 各PDBに接続し、PDBを閉じて再オープンします。

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

4.4.5 例: 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='*';

4.5 分離モードでのTDEウォレットおよびTDEマスター暗号化キーの構成

分離モードでは、TDEウォレットがPDBに関連付けられます。

4.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がこの外部ストアの場所にアクセスできます。このように、パスワードをまとめて配置すると、パスワードの更新は外部ストアで一度のみで済みます。

4.5.2 ステップ1: 分離モードで構成されたPDBでのTDEウォレットの作成

パスワードで保護されたTDEウォレットには、キーストアのキーおよび資格証明を保護するためのパスワードが必要になります。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、分離モードのPDBに接続します。
  2. SHOW PARAMETERコマンドを使用して、WALLET_ROOTが設定され、TDE_CONFIGURATIONKEYSTORE_CONFIGURATION=FILEに設定されていることを確認します。
  3. 次の構文を使用して、ADMINISTER KEY MANAGEMENT SQL文を実行してTDEウォレットを作成します:
    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY TDE_wallet_password;
    

    このコマンドは、WALLET_ROOT/pdb_guidの下に/tdeディレクトリを作成し(まだ存在しない場合)、このディレクトリにパスワードで保護されたTDEウォレットを作成します。WALLET_ROOTがASMの共有ディレクトリ(+DATA/DB_UNIQUE_NAME)を指している場合は、CREATE KEYSTORE文によってpdb_guid/tdeサブディレクトリとTDEウォレットが自動作成されます。

    この指定では、TDE_wallet_passwordは、セキュリティ管理者が作成するTDEウォレットのパスワードです。

    たとえば、WALLET_ROOT/pdb_guid/tdeディレクトリにTDEウォレットを作成するには、次のようにします:

    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY password;
    
    keystore altered.
    
これらのステップを実行すると、TDEウォレットであるewallet.p12ファイルがTDEウォレットの場所に生成されます。

4.5.3 ステップ2: 分離モードのPDBでTDEウォレットを開く

分離モードでTDEウォレットを開くには、ADMINISTER KEY MANAGEMENT文とともにSET KEYSTORE OPEN句を使用する必要があります。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、分離モードのPDBに接続します。
  2. ADMINISTER KEY MANAGEMENT文を実行してTDEウォレットを開きます。
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    IDENTIFIED BY TDE_wallet_password | EXTERNAL STORE;
    
    Keystore altered.

    自動ログイン・ウォレットが構成済で現時点で開いているときに、パスワードで保護されたTDEウォレットを開くように切り替えるには、次のようにFORCE KEYSTORE句を指定します。

    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    FORCE KEYSTORE 
    IDENTIFIED BY TDE_wallet_password | EXTERNAL STORE;
    
    Keystore altered.

    ここでは、ウォレット資格証明が外部ストアに存在するため、この文にIDENTIFIED BY EXTERNAL STORE句が含まれています。これにより、この文自体にTDEウォレットのパスワードを指定することなく、パスワードで保護されたTDEウォレットを開くことができます。

    WALLET_ROOTパラメータが設定されている場合、Oracle Databaseは、パスWALLET_ROOT/pdb_guid/tde_sepsを検索して、外部ストアを探します。

  3. TDEウォレットが開いていることを確認します。
    SELECT STATUS FROM V$ENCRYPTION_WALLET;

4.5.4 ステップ3: 分離モードのPDBのTDEウォレットでのTDEマスター暗号化キーの設定

分離モードのPDBのTDEウォレットでTDEマスター暗号化キーを設定するには、ADMINISTER KEY MANAGEMENT文とともにSET KEY句を使用します。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、分離モードのPDBに接続します。
  2. データベースがREAD WRITEモードでオープンしていることを確認します。
    ステータスを確認するには、show pdbsコマンドを実行します。
  3. ADMINISTER KEY MANAGEMENT SQL文を実行してTDEウォレット内にキーを設定します。
    たとえば、PDBのTDEウォレットがパスワードで保護されており、PDBが開いていて、PDBのTDEウォレットも開いている場合は、次のように指定します:
    ADMINISTER KEY MANAGEMENT SET KEY 
    IDENTIFIED BY TDE_wallet_password 
    WITH BACKUP USING 'emp_key_backup';
    
    keystore altered.

    TDEウォレットが閉じている場合:は、次のように指定します:

    ADMINISTER KEY MANAGEMENT SET KEY 
    FORCE KEYSTORE 
    IDENTIFIED BY TDE_wallet_password 
    WITH BACKUP USING 'emp_key_backup';
    
    keystore altered.

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

    • TDEウォレットが閉じている場合は、FORCE KEYSTOREを含める必要があります。これにより、TDEマスター暗号化キーを設定する前に、TDEウォレットが自動的に開きます。また、FORCE KEYSTORE句は、自動ログインTDEウォレットが構成されていて現時点で開いているときには、パスワードで保護されたTDEウォレットを開くように切り替えます。

    • IDENTIFIED BYでは、TDEウォレットのパスワードを指定します。また、TDEウォレットのパスワードが外部ストアにある場合は、IDENTIFIED BY EXTERNAL STORE句を使用できます。

  4. TDEマスター暗号化キーが設定されていることを確認します。
    SELECT MASTERKEY_ACTIVATED FROM V$DATABASE_KEY_INFO;

    出力はYESとなっている必要があります。

4.5.5 ステップ4: 分離モードでのデータの暗号化

この時点で構成が完了しているため、PDB内のデータの暗号化を開始できます。

4.6 分離モードのPDBによるコンテナ・データベースのOracle Key Vault用の構成

分離されたPDBは、それぞれがOracle Key Vault内に専用の仮想ウォレットを保持し、それらには独自のパスワードがあります。

4.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になります。

4.6.2 ステップ1: Oracle Key Vaultの分離PDBの構成

TDE_CONFIGURATIONパラメータを設定することで、Oracle Key Vaultの分離モードPDBを構成できます。

  1. WALLET_ROOTパラメータが設定されている場合は、Oracle Key Vaultクライアント・ソフトウェアをWALLET_ROOT/pdb_guid/okvディレクトリにインストールします。
  2. ALTER SYSTEM管理権限が付与されたユーザーとして、データベース・インスタンスにログインします。
  3. TDE_CONFIGURATION動的初期化パラメータを設定して、次の構文を使用してキーストア・タイプを指定します。
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=keystore_type" SCOPE=BOTH SID = '*';

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

    • パスワードで保護されたOracle Key Vaultのキーストアを構成するにはOKV、Oracle Key Vaultの自動オープン接続にはOKV|TDEを、keystore_typeに指定できます。

    たとえば、Oracle Key Vaultを使用するようにデータベースを構成するには、次のようにします。

    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=OKV" SCOPE=BOTH SID = '*';

4.6.3 ステップ2: 分離モードのPDBの外部キーストアを開く

分離PDBに外部キーストアへの自動オープン接続がない場合、PDBを開く前に手動で開く必要があります。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、分離モードのPDBに接続します。
  2. パスワードを二重引用符で囲んで、外部キーストアを次のように開きます。
    たとえば:
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    IDENTIFIED BY "Oracle_Key_Vault_password" | EXTERNAL STORE;
  3. データベース・インスタンスを再起動するたびにこの手順を繰り返します。
    CDBルートのキーストアを最初に開く必要があります。

4.6.4 ステップ3: 外部キーストアでの最初のTDEマスター暗号化キーの設定

分離モードのPDBで外部キーストアを開くと、PDBのTDEマスター暗号化キーを設定できるようになります。

4.6.4.1 分離モードの外部キーストアでのTDEマスター暗号化キーの設定

透過的データ暗号化用に外部キーストアをまだ構成していない場合は、この手順を完了する必要があります。

  1. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、分離モードのPDBに接続します。
  2. データベースがREAD WRITEモードでオープンしていることを確認します。
    OPEN_MODEREAD WRITEに設定されている場合、TDEマスター暗号化キーを設定できます。ステータスを確認するには、show pdbsコマンドを実行します。
  3. ハートビート・バッチ・サイズを構成するには、HEARTBEAT_BATCH_SIZE初期化パラメータを設定します。
    HEARTBEAT_BATCH_SIZEパラメータは、ハートビート期間ごとに外部キー・マネージャに送信される「ハートビートのバッチ」のサイズを構成します。2 (ゼロ)から100の値を入力します。デフォルト値は5です。ハートビート期間のデフォルトの期間は3秒です。ハートビート・バッチ・サイズを設定することで、PDBのバッチ間でハートビートをずらして、ハートビート期間中にバッチ内の各PDBに対してバッチごとにハートビートを完了できるようにしたり、PDBのTDEマスター暗号化キーをOracle Key Vaultサーバーから確実にフェッチしてOracle Key Vault永続キャッシュにキャッシュできるようにすることができます。(HEARTBEAT_BATCH_SIZEの動作の詳細は、外部キーストアのハートビート・バッチ・サイズを参照してください。)
    ALTER SYSTEM SET HEARTBEAT_BATCH_SIZE=30 SCOPE=BOTH SID='*';
  4. 次の構文を使用して、TDEマスター暗号化キーを設定します。
    ADMINISTER KEY MANAGEMENT SET KEY 
    [USING TAG 'tag'] 
    [FORCE KEYSTORE] 
    IDENTIFIED BY EXTERNAL STORE|Oracle_Key_Vault_password;

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

    • FORCE KEYSTOREは、TDEウォレットが閉じている場合、自動ログインTDEウォレットが構成済で現在開いている場合、またはパスワードで保護されたTDEウォレットが構成済で現在閉じている場合に、この操作のためにパスワードで保護されたTDEウォレットを一時的に開きます。

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

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

      • Oracle_Key_Vault_passwordは、Oracle Key Vaultクライアントのインストール時に指定したパスワードです。その時点でパスワードが指定されていない場合、ADMINISTER KEY MANAGEMENT文のパスワードはNULLになります。

    たとえば:

    ADMINISTER KEY MANAGEMENT SET KEY 
    USING TAG 'sessionid=3205062574:terminal=xcvt' 
    FORCE KEYSTORE 
    IDENTIFIED BY EXTERNAL STORE;
    
    keystore altered.
  5. TDEマスター暗号化キーが設定されていることを確認します。
    SELECT MASTERKEY_ACTIVATED FROM V$DATABASE_KEY_INFO;

    出力はYESとなっている必要があります。

4.6.4.2 分離モードでの以前に構成した暗号化キーの移行

TDEウォレットを以前に構成している場合は、以前に構成したマスター暗号化キーを移行する必要があります。

4.6.5 ステップ4: 分離モードでのデータの暗号化

キーストアの構成が完了し、PDBが分離モードで構成されると、PDB内のデータを暗号化できるようになります。