3 統一モードの構成

統一モードでは、CDB、およびキーストアが統一モードになっているPDBの共通のキーストアを作成できます。

CDBおよびPDBのキーは共通キーストアに格納されます。

統一モードの構成について

統一モードでは、同じキーストアに格納されるCDBおよびPDBのキーストアおよびTDEマスター暗号化キーを作成します。

統一モードのキーストアを持つPDBのキーは、CDBルートまたはPDBから作成できます。

この設計により、1つのキーストアでCDB環境全体を管理し、PDBでそのキーストアを共有できますが、個々の統一モードのPDBでこのキーストアの動作をカスタマイズできます。たとえば、統一モードのPDBでは、CDBルートで作成した統合キーストア内のPDB用のTDEマスター暗号化キーを構成し、キーストアをローカルで開き、キーストアをローカルで閉じることができます。これらのアクションを実行するには、CDBルートのキーストアが開いている必要があります。

統一モードまたは分離モードを使用するように環境を構成する前は、CDB環境内のすべてのPDBは、統一モードであるとみなされます。

統一モードを使用するには、次の一般的なステップに従う必要があります。

  1. CDBルートで、WALLET_ROOTパラメータとTDE_CONFIGURATIONパラメータを設定することで、統一モードを使用するようにデータベースを構成します。

    WALLET_ROOTパラメータは、ウォレット・ディレクトリの場所を設定し、TDE_CONFIGURATIONパラメータは、使用するキーストアのタイプを設定します。

  2. これらの設定を有効にするために、データベースを再起動します。

  3. CDBルートで、キーストアを作成し、キーストアを開き、TDEマスター暗号化キーを作成します。

  4. 統一モードの各PDBで、統一モードのPDBでローカルにキーストアを開いたり、PDBのTDEマスター暗号化キーを作成したりするなど、必要に応じてTDEマスター暗号化キーのタスクを実行します。キーストアはCDBルートで管理されますが、PDBでTDEを使用できるようにするには、PDB固有のTDEマスター暗号化キーがキーストアに含まれている必要があることに注意してください。

CDBルートから統一モードでADMINISTER KEY MANAGEMENT文を実行すると、文でCONTAINER句が受け入れられ、それをALLに設定した場合、その文は、CDBルートおよびそれに関連付けられた統一モードのPDBにのみ適用されます。分離モードのPDBはすべて影響を受けません。

統一モードで許可される操作

CDBルートで実行される多くのADMINISTER KEY MANAGEMENT操作は、統一モードのPDBのキーストアおよび暗号化キーに適用されます。

CDBルートで使用可能な統一モード関連の操作

表3-1では、CDBルートで実行できるADMINISTER KEY MANAGEMENT操作について説明します。

表3-1 CDBルートでのADMINISTER KEY MANAGEMENT統一モード操作

操作 構文 統一モードの注意

キーストアの作成

ADMINISTER KEY MANAGEMENT
CREATE KEYSTORE 
['keystore_location']
IDENTIFIED BY keystore_password;

CDBルートでキーストアを作成した後、デフォルトで、そのキーストアは、統一モードのPDBで使用できます。CONTAINER句を含めないでください。

キーストアを開く

ADMINISTER KEY MANAGEMENT 
SET KEYSTORE OPEN
IDENTIFIED BY
[EXTERNAL STORE | keystore_password]
[CONTAINER = ALL | CURRENT];

この操作のEXTERNAL STORE句では、PDBごとのWALLET_ROOTの場所のtde_sepsディレクトリにあるSSOウォレット内のパスワードが使用されます。

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

ADMINISTER KEY MANAGEMENT 
ALTER KEYSTORE PASSWORD
IDENTIFIED BY old_keystore_password
SET new_keystore_passwordWITH BACKUP 
[USING 'backup_identifier'];

CONTAINER句を含めないでください。

キーストアのバックアップ

ADMINISTER KEY MANAGEMENT
BACKUP KEYSTORE 
[USING 'backup_identifier']
[FORCE KEYSTORE]
IDENTIFIED BY [EXTERNAL STORE | keystore_password]
[TO 'keystore_location'];

CONTAINER句を含めないでください。

強制せずにキーストアを閉じる

ADMINISTER KEY MANAGEMENT 
SET KEYSTORE CLOSE
[IDENTIFIED BY [EXTERNAL STORE | keystore_password]]
[CONTAINER = ALL | CURRENT];

分離モードのPDBキーストアが開いている場合は、この文によって「ORA-46692 ウォレットをクローズできません」エラーが発生します。

強制的にキーストアを閉じる

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]

-

今すぐ(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 | keystore_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'];

CONTAINER句を含めないでください。

TDEマスター暗号化キーのタグ付け

ADMINISTER KEY MANAGEMENT 
SET TAG 'tag' FOR 'key_id'
IDENTIFIED BY [EXTERNAL STORE | keystore_password ]
WITH BACKUP 
[USING 'backup_identifier'];

CONTAINER句を含めないでください。

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のキーストアに移動することはできず、その逆もできません。

CONTAINER句を含めないでください。

統一モードのPDBで使用可能な操作

表3-2では、統一モードのPDBで実行できるADMINISTER KEY MANAGEMENT操作について説明します。

表3-2 ADMINISTER KEY MANAGEMENT統一モードPDB操作

操作 構文 統一モードの注意

キーストアを開く

ADMINISTER KEY MANAGEMENT 
SET KEYSTORE OPEN
IDENTIFIED BY
[EXTERNAL STORE | keystore_password]
[CONTAINER = CURRENT];

この操作のEXTERNAL_STORE句では、Secure Sockets Layer(SSL)ウォレット内のパスワードが使用されます。このウォレットは、WALLET_ROOTの場所のtde_sepsディレクトリにあります。

強制せずにキーストアを閉じる

ADMINISTER KEY MANAGEMENT 
SET KEYSTORE CLOSE
[IDENTIFIED BY 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];

-

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

ADMINISTER KEY MANAGEMENT SET | CREATE [ENCRYPTION] KEY
'mkid:mk | mk' 
[USING ALGORITHM 'algorithm'] 
[FORCE KEYSTORE]
IDENTIFIED BY [EXTERNAL STORE | keystore_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']];

CONTAINER句を含めないでください。

TDEマスター暗号化キーのタグ付け

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

CONTAINER句を含めないでください。

暗号化キーを新しいキーストアに移動する

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

CONTAINER句を含めないでください。

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

CONTAINER句を含めないでください。

PDBのクローンが分離されているTDEマスター暗号化キーを使用している場合にFORCE句を使用し、CDBルート内のキーストアのTDEマスター暗号化キーをPDBの分離モードのキーストアに(移動するのではなく)コピーする

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

-

統一モードのPDBで許可されない操作

統一モードのPDBで許可されないADMINISTER KEY MANAGEMENT操作は、CDBルートで実行できます。

操作は次のとおりです。

  • キーストアの操作:

    • キーストアでのマージ操作の実行

    • キーストアのエクスポート

    • キーストアのインポート

    • キーストアの移行

    • キーストアの逆移行

    • PDBのキーストアへのCDBルートにあるキーストアのキーの移動

    • CDBルートにある統一モードのキーストアへのPDBにあるキーの移動

  • 暗号化キーの操作:

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

  • クライアント・シークレットの操作:

    • クライアント・シークレットの追加

    • クライアント・シークレットの更新

    • クライアント・シークレットの削除

統一モードのキーストアの場所とタイプの構成

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

ソフトウェア・キーストアの場所の構成について

ソフトウェア・キーストアとは、TDEマスター暗号化キーを格納するコンテナです。

キーストアを構成する前に、最初にinit.oraファイルのWALLET_ROOTパラメータを設定して、キーストアの場所を定義する必要があります。Oracle Databaseは、最初にWALLET_ROOT設定をチェックして、このキーストアを探します。この設定が作成されていない場合、Oracle Databaseは、sqlnet.oraファイルをチェックします。必要に応じて、キーストアのコピーなどの他のキーストアを作成したり、キーが含まれているファイルをエクスポートすることができます。WALLET_ROOTの場所で構成したキーストアを除去または削除する必要がある場合は、このキーストア内のTDEマスター暗号化キーを別のキーストアに移動した後で行う必要があります。次に、キーストアの新しい場所を指すようにWALLET_ROOTを再設定する必要があります。

WALLET_ROOTパラメータを使用してソフトウェア・キーストアの場所を構成したら、PDBまたはCDBにログインしてキーストアを作成して開き、次にTDEマスター暗号化キーを設定できます。これらのステップを完了したら、データの暗号化を開始できます。

初期化パラメータ・ファイルの編集による統一モードの構成

初期化パラメータ・ファイル内のWALLET_ROOTパラメータとTDE_CONFIGURATIONパラメータの両方を設定することにより、統一モードを構成できます。

  1. OracleデータベースのCDBルートが存在するサーバーにログインします。
  2. 必要に応じて、ウォレット・ディレクトリを作成します。
    通常、ウォレット・ディレクトリは$ORACLE_BASE/admin/db_unique_nameディレクトリにあり、walletという名前が付いています。このディレクトリは空であると理想的です。
  3. デフォルトでは$ORACLE_HOME/dbsディレクトリにある初期化パラメータ・ファイルを編集して、次のパラメータを含めます。
    • WALLET_ROOT。ウォレット・ディレクトリの場所を指すようにします。

      たとえば、orclという名前のデータベースの場合、次のようになります。

      wallet_root=$ORACLE_BASE/admin/orcl/wallet
    • TDE_CONFIGURATION。次のキーストア・タイプのいずれかを指定します。
      • FILEは、ソフトウェア・キーストアを示します。

      • OKVは、Oracle Key Vaultキーストアを示します。

      • HSMは、ハードウェア・セキュリティ・モジュール(HSM)のキーストアを示します。

      たとえば、TDEキーストア・タイプを指定するために、次のようにします。

      tde_configuration="keystore_configuration=file"
  4. ADMINISTER KEY MANAGEMENT権限またはSYSKM権限が付与されたユーザーとして、CDBルートにログインします。
    例:
    sqlplus c##sec_admin as syskm
    Enter password: password
  5. 構成の設定を確認します。
    • WALLET_ROOTパラメータ:
      SHOW PARAMETER WALLET_ROOT

      出力のVALUE列に、walletディレクトリの絶対パスの場所が示されるはずです。

    • TDE_CONFIGURATIONパラメータ:
      SHOW PARAMETER TDE_CONFIGURATION

      VALUE列に、KEYSTORE_CONFIGURATION=が前に付加されたキーストア・タイプが示されるはずです。

    値が表示されない場合は、これらの設定を追加した初期化パラメータ・ファイルの場所を指して、STARTUPコマンドでデータベースを再起動してください。例:
    STARTUP PFILE = /u01/oracle/dbs/init.ora
  6. TDE_CONFIGURATIONパラメータが正しく設定されていることを確認します。
    SELECT CON_ID, KEYSTORE_MODE FROM V$ENCRYPTION_WALLET;
    出力は次のようになります。
        CON_ID KEYSTORE
    ---------- --------
             1 NONE
             2 UNITED
             3 UNITED
             4 UNITED
             5 UNITED
    
    CDBルート(CON_ID 1)は常にNONE状態になり、この段階で、残りのCON_IDUNITEDに設定されているはずです。PDBは、どのように構成したのかに応じて、UNITEDまたはISOLATEDのいずれかです。V$ENCRYPTION_WALLETビューを問い合せると、「ORA-46691: KEYSTORE_CONFIGURATION属性の値が無効です。」エラーが表示された場合は、この設定を追加した初期化パラメータ・ファイルを確認してください。
統一モードを構成した後、キーストアとマスター暗号化キーを作成でき、それらが構成されている場合、データを暗号化できます。

初期化パラメータ・ファイルおよびALTER SYSTEMを使用した統一モードの構成

環境がサーバー・パラメータ・ファイル(spfile)またはパラメータ・ファイル(pfile)に依存している場合は、SCOPEを指定したALTER SYSTEMを使用して、TDE_CONFIGURATIONを設定できます。

この方法でも、初期化パラメータ・ファイル内のWALLET_ROOT静的初期化パラメータを設定します。
  1. OracleデータベースのCDBルートが存在するサーバーにログインします。
  2. 必要に応じて、ウォレット・ディレクトリを作成します。
    通常、ウォレット・ディレクトリは$ORACLE_BASE/admin/db_unique_nameディレクトリにあり、walletという名前が付いています。このディレクトリは空であると理想的です。
  3. 初期化パラメータ・ファイルを編集して、ウォレット・ディレクトリのWALLET_ROOT静的初期化パラメータを含めます。
    デフォルトでは、初期化パラメータ・ファイルは、$ORACLE_HOME/dbsディレクトリにあります。
    たとえば、orclという名前のデータベース・インスタンスの場合は、次のとおりです。
    wallet_root=$ORACLE_BASE/admin/orcl/wallet
  4. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与された一般ユーザーとして、CDBルートに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM
    Enter password: password
  5. CDBを再起動します。
    SHUTDOWN IMMEDIATE
    STARTUP

    WALLET_ROOT設定を追加した初期化ファイルの場所を指すことによってデータベースを起動するには、次のようなSTARTUPコマンドを発行します。

    STARTUP PFILE = /u01/oracle/dbs/init.ora
  6. WALLET_ROOT設定を確認します。
    SHOW PARAMETER WALLET_ROOT

    出力のVALUE列に、walletディレクトリの絶対パスの場所が示されるはずです。

  7. 次の構文を使用して、TDE_CONFIGURATION動的初期化パラメータを設定してキーストアのタイプを指定します。
    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=keystore_type" 
    SCOPE=scope_type;

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

    • keystore_typeには、統一モードの次の設定のいずれかを指定できます。

      • FILE。TDEキーストアを構成します。

      • OKV。Oracle Key Vaultキーストアを構成します。

      • HSM。ハードウェア・セキュリティ・モジュール(HSM)キーストアを構成します。

    • scope_typeには、スコープのタイプ(たとえば、bothmemoryspfilepfile)を設定します。

    たとえば、パラメータ・ファイル(pfile)を使用している場合にTDEキーストアを構成するには、scopememoryに設定します。

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

    サーバー・パラメータ・ファイル(spfile)を使用している場合にTDEキーストアを構成するには、scopeをbothに設定します。

    ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE" 
    SCOPE=both;
  8. TDE_CONFIGURATIONパラメータの設定を確認します。
    SHOW PARAMETER TDE_CONFIGURATION
    

    VALUE列に、KEYSTORE_CONFIGURATION=が前に付加されたキーストア・タイプが示されるはずです。

  9. TDE_CONFIGURATIONパラメータが正しく設定されていることを確認します。
    SELECT CON_ID, KEYSTORE_MODE FROM V$ENCRYPTION_WALLET;
    出力は次のようになります。
        CON_ID KEYSTORE
    ---------- --------
             1 NONE
             2 UNITED
             3 UNITED
             4 UNITED
             5 UNITED
    
    CDBルート(CON_ID 1)は常にNONE状態になり、この段階で、残りのCON_IDUNITEDに設定されているはずです。PDBは、どのように構成したのかに応じて、UNITEDまたはISOLATEDのいずれかです。V$ENCRYPTION_WALLETビューを問い合せると、「ORA-46691: KEYSTORE_CONFIGURATION属性の値が無効です。」エラーが表示された場合は、この設定を追加した初期化パラメータ・ファイルを確認してください。
統一モードを構成した後、キーストアとマスター暗号化キーを作成でき、それらが構成されている場合、データを暗号化できます。

統一モードで使用するためのソフトウェア・キーストアの構成

統一モードでは、ソフトウェア・キーストアは、CDBルート内に存在しますが、このキーストアのマスター・キーは、統一モードのキーストアを持つPDBで使用可能です。

統一モードでのソフトウェア・キーストアの構成について

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

ステップ1: ソフトウェア・キーストアの作成

ソフトウェア・キーストアのディレクトリの場所を指定したら、キーストアを作成できます。

ソフトウェア・キーストアを作成することについて

3つの異なるタイプのソフトウェア・キーストアがあります。

パスワード保護されたソフトウェア・キーストア、自動ログイン・ソフトウェア・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアを作成できます。

問合せSELECT * FROM V$ENCRYPTION_WALLETを実行すると、自動ログイン・ソフトウェア・キーストアが自動的に開くため、注意してください。たとえば、パスワード保護されたキーストアと自動ログイン・キーストアがあるとします。パスワード保護されたキーストアが開いているときに、このパスワード保護されたキーストアを閉じて、V$ENCRYPTION_WALLETビューを問い合せると、出力にキーストアが開いていることが示されます。ところが、これはV$ENCRYPTION_WALLETが自動ログイン・ソフトウェア・キーストアを開いて、自動ログイン・キーストアのステータスを表示したことによるものです。

パスワード保護されたソフトウェア・キーストアの作成

統一モードでは、CDBルート内にキーストアを作成する必要があります。

CDBルートでキーストアを作成すると、そのキーストアは、すべての統一モードのPDBで使用可能になりますが、いずれの分離モードのPDBでも使用可能になりません。
  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与された一般ユーザーとして、CDBルートに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM
    Enter password: password
  2. 次の構文を使用して、ADMINISTER KEY MANAGEMENT SQL文を実行してキーストアを作成します。
    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 
    ['keystore_location'] 
    IDENTIFIED BY software_keystore_password;
    

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

    • keystore_locationは、自動ログイン・キーストアを作成するパスワード保護されたキーストアのキーストア・ディレクトリの場所に対するパスです。WALLET_ROOTパラメータで設定されているパスを使用する場合は、keystore_location設定を省略できます。

      keystore_locationを指定する場合は、一重引用符(' ')で囲んでください。デフォルトの場所を見つけるには、V$ENCRYPTION_WALLETビューのWRL_PARAMETER列を問い合せます。(キーストアがデフォルトの場所に作成されていない場合、V$ENCRYPTION_WALLETビューのSTATUS列はNOT_AVAILABLEになります。)

    • software_keystore_passwordは、セキュリティ管理者が作成するキーストアのパスワードです。

    たとえば、WALLET_ROOTが設定されていることを前提として、デフォルトの場所にキーストアを作成するには、次のようにします。

    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 
    IDENTIFIED BY password;
    
    keystore altered.
    
これらのステップを実行すると、キーストアを含むewallet.p12ファイルが、指定したキーストアの場所に生成されます。たとえば、WALLET_ROOTパラメータを$ORACLE_BASE/walletに設定し、TDE_CONFIGURATIONパラメータをFILE (TDEの場合、ウォレットのルートの場所にtdeディレクトリが作成されます)に設定した場合、キーストアは、$ORACLE_BASE/wallet/tdeディレクトリに作成されます。キーストアの名前は、ewallet.p12です。
自動ログイン・ソフトウェア・キーストアまたはローカル自動ログイン・ソフトウェア・キーストアの作成

パスワード保護されたキーストアに代わる方法として、自動ログイン・ソフトウェア・キーストアまたはローカル自動ログイン・ソフトウェア・キーストアのいずれかを作成できます。

これらのキーストアの両方は、システム生成パスワードを持っています。これらは、PKCS#12ベースのファイルでもあります。自動ログイン・ソフトウェア・キーストアは、このキーストアがあるコンピュータとは違うコンピュータから開くことができますが、ローカル自動ログイン・ソフトウェア・キーストアは、このキーストアが作成されたコンピュータからしか開けません。自動ログイン・キーストアとローカル自動ログイン・キーストアの両方は、パスワード保護されたソフトウェア・キーストアから作成されます。
  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与された一般ユーザーとして、CDBルートに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM
    Enter password: password

    SQL*Plusがすでに開かれていて、この間にinit.oraファイルを変更してWALLET_ROOTパラメータを設定した場合、SQL*Plusに再接続します。データベース・セッションはinit.oraの変更が有効になる前に変更される必要があります。

  2. パスワード保護されたソフトウェア・キーストアを作成します。
    例:
    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/etc/ORACLE/WALLETS/orcl' 
    IDENTIFIED BY keystore_password;
  3. 次の構文を使用して、自動ログイン・キーストアまたはローカル自動ログイン・キーストアを作成します。
    ADMINISTER KEY MANAGEMENT CREATE [LOCAL] AUTO_LOGIN KEYSTORE 
    FROM KEYSTORE 'keystore_location' 
    IDENTIFIED BY software_keystore_password;
    

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

    • LOCALでは、ローカル自動ログイン・ソフトウェア・キーストアを作成できます。そうでない場合、キーストアに他のコンピュータからアクセスできるようにするときは、この句を省略します。

    • keystore_locationは、自動ログイン・キーストアを作成するパスワード保護されたキーストアのディレクトリの場所に対するパスです(/etc/ORACLE/WALLETS/orclなど)。この設定は、一重引用符(' ')で囲みます。この場所を確認するには、V$ENCRYPTION_WALLETビューのWRL_PARAMETER列を問い合せます。

    • software_keystore_passwordは、自動ログイン・キーストアを作成するパスワード保護されたキーストアです。

    たとえば、パスワード保護されたキーストアの自動ログイン・ソフトウェア・キーストアを/etc/ORACLE/WALLETS/orclディレクトリに作成するには、次のようにします。

    ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE 
    FROM KEYSTORE '/etc/ORACLE/WALLETS/orcl' 
    IDENTIFIED BY password;
    
    keystore altered.
    

    この文を実行した後、cwallet.ssoファイルがキーストアの場所に表示されます。ewallet.p12ファイルがパスワード保護されたウォレットです。

次のガイドラインに従ってください。

  • 自動ログイン・キーストア(.ssoファイル)の作成後は、PKCS#12ウォレット(ewallet.p12ファイル)は削除しないでください。将来、TDEマスター暗号化キーを再生成またはキー更新するには、PKCS#12ウォレットが必要です。デフォルトでは、このファイルは$ORACLE_BASEまたは$ORACLE_HOMEの場所のadmin/db_unique_name/walletディレクトリにあります。
  • 透過的データ暗号化が自動ログイン・キーストアを使用するのは、このキーストアが正しい場所(WALLET_ROOTWALLET_LOCATIONENCRYPTION_WALLET_LOCATIONまたはデフォルトのキーストアの場所)にあり、かつ、暗号化されたキーストアを開くためのSQLがまだ実行されていない場合のみであることに留意してください。自動ログイン・キーストアにはシステム生成のパスワードがあり、暗号化されていることに注意してください。ENCRYPTION_WALLET_LOCATIONパラメータが設定されている場合、このパラメータは非推奨となったことに注意してください。かわりに、WALLET_ROOT静的初期化パラメータおよびTDE_CONFIGURATION動的初期化パラメータを使用することをお薦めします。

ステップ2: ソフトウェア・キーストアを開く

作成したキーストアの種類に応じて、使用する前にキーストアを手動で開く必要があります。

ソフトウェア・キーストアを開くことについて

キーストアにおいてTDEマスター暗号化キーを作成またはアクセスする前に、パスワード保護されたソフトウェア・キーストアが開いている必要があります。

透過的データ暗号化の多くの操作では、ソフトウェア・キーストアが開いている必要があります。ソフトウェア・キーストアを開くことができる方法は2つあります。

  • ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN文を発行して、キーストアを手動で開きます。その後、操作を実行できます。

  • 操作を実行するために使用されるADMINISTER KEY MANAGEMENT文にFORCE KEYSTORE句を含めます。FORCE KEYSTOREは操作中にキーストアを一時的に開き、操作が完了すると、キーストアは再度閉じられます。FORCE KEYSTOREは、データベースの負荷が高い場合に役に立ちます。このシナリオでは、データベース内の暗号化されたオブジェクトへの同時アクセスにより、自動ログイン・キーストアは、閉じられた直後でユーザーがパスワードベースのキーストアを開く機会を持つ前に開かれ続けます。

キーストアには、開いている、閉じている、開いていてもマスター暗号化キーがない、開いていても不明なマスター暗号化キーがある、定義されていない、または使用できない(つまりWALLET_ROOTの場所にない)というステータスがあります。

キーストアを手動で開くと、手動で閉じるまでキーストアは開いたままになります。PDBまたはCDBを再起動するたびに、パスワード・キーストアを手動で開いて暗号化と復号化の操作を再有効化する必要があります。

キーストアが開いているか、開いていないかのステータスは、V$ENCRYPTION_WALLETビューのSTATUS列を問い合せて確認できます。

統一モードのPDBでソフトウェア・キーストアを開く

統一モードでソフトウェア・キーストアを開くには、SET KEYSTORE OPEN句を含むADMINISTER KEY MANAGEMENT文を使用する必要があります。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与された一般ユーザーとして、CDBルートに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM
    Enter password: password
  2. CDBルートのキーストアを開きます。
    例:
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    IDENTIFIED BY password;
    
    keystore altered.

    CDBがEXTERNAL_KEYSTORE_CREDENTIAL_LOCATIONインスタンス初期化パラメータを使用して構成されていて、パスワードで保護されたキーストアの資格証明を含むキーストアがその場所にある場合、自動ログイン・キーストアの使用から、これらの資格証明が含まれているパスワードで保護されたキーストアの使用に切り替えるには、次のように、ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN文でFORCE KEYSTORE句およびIDENTIFIED BY EXTERNAL STORE句を含める必要があります。

    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    FORCE KEYSTORE 
    IDENTIFIED BY EXTERNAL STORE;
    
    keystore altered.

    WALLET_ROOTパラメータが設定されている場合、Oracle Databaseでは、CDBルート内のパスWALLET_ROOT/tde_sepsを検索することによって、外部ストアを検索します。

  3. キーストアを開くPDBが、READ WRITEモードになっていることを確認してください。
    例:
    SHOW PDBS
    
    CON_ID CON_NAME   OPEN MODE    RESTRICTED
    ------ ---------- ------------ -----------
    2      PDB$SEED   READ ONLY    NO
    3      CDB1_PDB1  READ WRITE   NO

    いずれかのPDBに、READ WRITEとは異なるOPEN MODE値が設定されている場合、次の文を実行してPDBを開くと、READ WRITEモードに設定されます。

    ALTER PLUGGABLE DATABASE CDB1_PDB1 OPEN;

    これで、キーストアをCDBルートとPDBの両方で開くことができるようになりました。

  4. PDBに接続します。
  5. ADMINISTER KEY MANAGEMENT文を実行してキーストアを開きます。
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    IDENTIFIED BY password;
    keystore altered.

    自動ログイン・キーストアが構成されており、現在開いている場合、パスワード保護されたソフトウェア・キーストアを開くように切り替えるには、FORCE KEYSTORE句を次のように指定します。

    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    FORCE KEYSTORE 
    IDENTIFIED BY EXTERNAL STORE;
    keystore altered.

    FORCE KEYSTOREは、負荷が高いデータベースにも役立ちます。キーストア資格証明が外部ストアに存在するため、IDENTIFIED BY EXTERNAL STORE句が文に含まれています。これにより、文自体の中でキーストア・パスワードを指定せずに、パスワード保護されたキーストアを開くことができます。

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

  6. キーストアが開いていることを確認します。
    SELECT STATUS FROM V$ENCRYPTION_WALLET;
キーストアが開いていても、TDEマスター暗号化キーをまだ作成していない場合は、V$ENCRYPTION_WALLETビューのSTATUS列によってOPEN_NO_MASTER_KEYステータスが知らされます。

ステップ3: ソフトウェア・キーストアのTDEマスター暗号化キーの設定

キーストアが開いたら、それに対してTDEマスター暗号化キーを設定できます。

ソフトウェア・キーストアのTDEマスター暗号化キーの設定について

TDEマスター暗号化キーはキーストアに格納されます。

TDEマスター暗号化キーは、TDE表キーおよび表領域暗号化キーを保護します。デフォルトでは、TDEマスター暗号化キーは、TDEによって生成されるキーです。V$ENCRYPTION_WALLETビューのSTATUS列を問い合せることで、キーストアに、設定されているTDEマスター暗号化キーがないかどうか、または不明なTDEマスター暗号化キーがないかどうかを確認できます。

データベースの外部でマスター暗号化IDを手動で作成できます。これはCloud環境で役立ちます。また、後で使用するためにTDEマスター暗号化キーを作成でき、その後それらを手動で有効にできます。

統一モードでのソフトウェア・キーストアのTDEマスター暗号化キーの設定

PDBが統一モードに設定されている場合にキーストアのTDEマスター暗号化キーを設定するには、SET KEY句を指定して、ADMINISTER KEY MANAGEMENT文を使用します。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与された一般ユーザーとして、CDBルートに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM
    Enter password: password
  2. CDBがREAD WRITEモードでオープンしていることを確認します。
    OPEN_MODEREAD WRITEに設定されている場合、TDEマスター暗号化キーを設定できます。ステータスを検索するには、V$DATABASE動的ビューのOPEN_MODE列を問い合せます。(このビューにアクセスできない場合は、SYSDBAとして接続し、問合せを再試行します。このタイプの問合せに対してSYSKMとして接続するには、これに対するパスワード・ファイルを作成する必要があります。)
  3. ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY文を実行して、キーストアのTDEマスター暗号化キーを設定します。
    次の構文を使用します。
    ADMINISTER KEY MANAGEMENT SET KEY 
    [USING TAG 'tag'] 
    [FORCE KEYSTORE] 
    IDENTIFIED BY [EXTERNAL STORE] | keystore_password 
    [WITH BACKUP [USING 'backup_identifier']];
    

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

    • tagは、定義する関連の属性および情報です。この設定は、一重引用符(' ')で囲みます。
    • キーストアが閉じている場合は、FORCE KEYSTOREを含める必要があります。これにより、TDEマスター暗号化キーを設定する前に、キーストアが自動的に開きます。また、FORCE KEYSTORE句は、自動ログイン・キーストアが構成されており、現在開いている場合に、パスワード保護されたソフトウェア・キーストアを開くように切り替えます。

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

    • WITH BACKUPを使用すると、キーストアのバックアップが作成されます。パスワード保護されたキーストアの場合、このオプションを使用する必要があります。オプションでUSING句を使用し、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(たとえば、emp_key_backupがバックアップ識別子になっているewallet_time_stamp_emp_key_backup.p12)。オペレーティング・システムで使用されているファイル命名規則に従ってください。

    たとえば、キーストアがパスワードで保護されていて、開いている場合に、現在のコンテナでTDEマスター暗号化キーを設定するには、次のようにします。

    ADMINISTER KEY MANAGEMENT SET KEY 
    IDENTIFIED BY keystore_password 
    WITH BACKUP USING 'emp_key_backup';
    
    keystore altered.

    キーストアが閉じている場合は、次のように指定します。

    ADMINISTER KEY MANAGEMENT SET KEY 
    [USING TAG 'tag']
    FORCE KEYSTORE
    IDENTIFIED BY keystore_password 
    WITH BACKUP USING 'emp_key_backup';
    
    keystore altered.
  4. TDEマスター暗号化キーが設定されていることを確認します。
    SELECT MASTERKEY_ACTIVATED FROM V$DATABASE_KEY_INFO;

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

ステップ4: 統一モードでのデータの暗号化

キーストアの構成が完了し、PDBが統一モードで構成されているので、PDBでのデータの暗号化を開始できます。

統一モードでのハードウェア・キーストアの構成

統一モードでは、ハードウェア・キーストアは、暗号化キーを保存するために設計された、ハードウェア・セキュリティ・モジュール(HSM)内にあります。

ハードウェア(外部)キーストアの構成について

外部キーストアとも呼ばれるハードウェア・キーストアは、暗号化キーのために安全な記憶域を提供する独立したサーバーまたはデバイスです。

外部キーストアはOracleデータベースの外部にあります。Oracleデータベースは外部キーストアとのインタフェースをとることができますが、Oracleインタフェースの外部でそれらを操作することはできません。Oracleデータベースは外部キーストアにキーの作成をリクエストできますが、このキーが外部データベースに格納される方法を定義することはできません。(反対に、TDEを使用して作成されるソフトウェア・キーストアの場合は、Oracleデータベースが完全な制御権限を持ちます。つまり、SQL文を使用してこのタイプのキーストアを操作できます。)外部キーストアの例は、ハードウェア・セキュリティ・モジュールまたはOracle Key Vaultキーストアです。Oracle Key Vaultなどを使用して、複数のデータベース間の外部キーストアを一元管理できます。

ハードウェア・セキュリティ・モジュール(ハードウェア・キーストア)のキーストアを構成するには、まずTDE_CONFIGURATIONパラメータ設定にキーストア・タイプを含め、ハードウェア・キーストアを構成して開き、ハードウェア・キーストアTDEマスター暗号化キーを設定します。要するに、1つのデータベース当たり1つのハードウェア・キーストアがあり、データベースは、TDE_CONFIGURATIONパラメータで定義したキーストア・タイプを確認することで、このキーストアを探します。

ADMINISTER KEY MANAGEMENT文を実行するときにIDENTIFIED BY句を指定する方法は、ハードウェア・キーストアのタイプによって異なります。多くの場合、そしてこのガイド内の例でも、ハードウェア・セキュリティ・モジュール(HSM)またはクラウド・キー管理サービス(KMS)キーストアに対しては、次の構文を使用します。

IDENTIFIED BY "user_name:password"

ただし、サイトのHSMの構成によっては、資格証明の構文は"password:user_name"となる場合があります。

Oracle Key Vaultキーストアの場合は、user_nameとコロンを省略できますが、次のように引用符を含める必要があります。

IDENTIFIED BY "password"

ハードウェア・キーストアを構成すると、データの暗号化を開始する準備ができます。

統一モードでのハードウェア・キーストアの構成について

分離モードを使用しているPDBでハードウェア・キーストアを作成する必要がありますが、他のタスクは統一モードで実行できます。

分離モードのPDBのハードウェア・キーストアを構成するには、まずWALLET_ROOTパラメータを設定する必要があります。これが必要な理由は2つあります。1つは、将来ソフトウェア・キーストアに移行できるようにするため、もう1つは、Oracle Key Vaultの構成ファイルがWALLET_ROOTの下の場所から取得されるためです。次に、TDE_CONFIGURATIONパラメータのKEYSTORE_CONFIGURATION属性をHSMまたはOKVに設定し、構成したハードウェア・キーストアを開いて、PDBのTDEマスター暗号化キーを設定する必要があります。これらのタスクを完了すると、PDB内のデータを暗号化できるようになります。

ステップ1: 統一モードのハードウェア・セキュリティ・モジュールの構成

サード・パーティのハードウェア・セキュリティ・モジュールを構成するには、PKCS#11ライブラリを正しい場所にコピーして、ベンダーの指示に従う必要があります

Oracle Key Vaultを使用する場合には、この項は省略できます。
  1. PKCS#11ライブラリを正しいパスにコピーします。
    ハードウェア・キーストア・ベンダーから関連のPKCS#11ライブラリが提供されているはずです。一度にサポートされるのは、1つのPKCS#11ライブラリのみです。新しいベンダーのハードウェア・キーストアを使用する場合は、PKCS#11ライブラリを以前のベンダーのものから新しいベンダーのものに置き換える必要があります。定期的に、更新がある場合はこのライブラリをリロードする必要があります。
    このライブラリを適切な場所にコピーして、Oracle Databaseがこのライブラリを見つけられるようにします。
    • UNIXシステム: 次の構文を使用して、このディレクトリにライブラリをコピーします。

      /opt/oracle/extapi/[32,64]/hsm/{VENDOR}/{VERSION}/libapiname.so
      
    • Windowsシステム: 次の構文を使用して、このディレクトリにライブラリをコピーします。

      %SYSTEM_DRIVE%\oracle\extapi\[32,64]\hsm\{VENDOR}\{VERSION}\libapiname.dll
      

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

    • [32,64]には、提供されるバイナリが32ビットか64ビットかを指定します。

    • VENDORは、ライブラリを提供しているベンダー名を表します。

    • VERSIONは、ライブラリのバージョンを表します。なるべく、number.number.numberの形式を使用してください。

    • apinameには、特に決まった形式はありません。ただし、構文に示すように、apinameの前にはlibという語を付ける必要があります。

  2. ベンダーの指示に従ってハードウェア・キーストアを設定します。
    ハードウェア・キーストア管理インタフェース、およびHSMベンダーが提供する指示に従って、ハードウェア・キーストアを設定します。ハードウェア・キーストアと相互作用するためにデータベースが使用する必要があるユーザー・アカウントおよびパスワードを作成します。このプロセスは、Oracle Databaseと通信するハードウェア・キーストアを作成および構成します。

ステップ2: ハードウェア・キーストアを開く

ハードウェア・セキュリティ・モジュールを構成したら、使用する前にハードウェア・キーストアを開く必要があります。

ハードウェア・キーストアを開くことについて

暗号化または復号化を実行する前に、ハードウェア・キーストアがデータベースにアクセスできるようにするために、ハードウェア・キーストアを開く必要があります。

データベースにリカバリ操作が必要な場合(データベースが正常に停止しておらず、リカバリが必要な暗号化された表領域がある場合など)、データベース自体をオープンする前にハードウェア・キーストアをオープンする必要があります。

ハードウェア・キーストアを開くことができる方法には、次の2つがあります。

  • ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN文を発行して、キーストアを手動で開きます。その後、操作を実行できます。

  • ADMINISTER KEY MANAGEMENT文にFORCE KEYSTORE句を含めます。FORCE KEYSTOREは操作中にキーストアを一時的に開き、操作が完了すると、キーストアは再度閉じられます。FORCE KEYSTOREは、データベースの負荷が高い場合に役に立ちます。このシナリオでは、データベース内の暗号化されたオブジェクトへの同時アクセスにより、自動ログイン・キーストアは、閉じられた直後でユーザーがパスワードベースのキーストアを開く機会を持つ前に開かれ続けます。

キーストアのステータスを確認するには、V$ENCRYPTION_WALLETビューのSTATUS列を問い合せます。キーストアには、CLOSEDNOT_AVAILABLE(つまりWALLET_ROOTの場所にない)、OPENOPEN_NO_MASTER_KEYOPEN_UNKNOWN_MASTER_KEY_STATUSというステータスがあります。

ハードウェア・キーストアで、データベースがマウント状態の場合、データ・ディクショナリが使用できないため、マスター・キーが設定されているかどうかを確認できないことに注意してください。この場合、ステータスはOPEN_UNKNOWN_MASTER_KEY_STATUSになります。

統一モードのPDBでハードウェア・キーストアを開く

統一モードでハードウェア・キーストアを開くには、SET KEYSTORE OPEN句を含むADMINISTER KEY MANAGEMENT文を使用する必要があります。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与された一般ユーザーとして、CDBルートに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM
    Enter password: password
  2. 次の構文を使用して、CDBルートのキーストアを開きます。
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    [FORCE KEYSTORE]
    IDENTIFIED BY "hardware_keystore_credentials";
    

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

    • FORCE KEYSTOREは、キーストアが閉じている場合に、キーストア操作を有効にします。

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

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

      • hardware_keystore_credentialsは、HSMまたはOracle Key Vaultのいずれかのハードウェア・キーストアの資格証明を参照します。HSMの場合は、user_name:passwordの形式を使用して資格証明を指定します。二重引用符で囲み、コンポーネントをコロンで区切ります。ここで、user_nameはHSMを作成したユーザーであり、passwordはこのユーザーのパスワードです。Oracle Key Vaultの場合は、データベース・エンドポイントをOracle Key Vaultに登録したときに使用されたパスワードのみを入力します。このパスワードは引用符で囲みます。

    ハードウェア・キーストアのタイプによって、ハードウェア・キーストアのパスワードを指定する方法が異なります。ハードウェア・セキュリティ・モジュールの場合は、user_name:passwordという構文を使用する必要があります。例:

    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    IDENTIFIED BY "psmith:password";
    
    keystore altered.

    Oracle Key Vaultキーストアの場合は、パスワードを入力するだけで済みます。IDENTIFIED BY句でユーザー名を指定することはできません。パスワードは二重引用符で囲みます。

    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    IDENTIFIED BY "password";
  3. キーストアを開くPDBが、READ WRITEモードになっていることを確認してください。
    例:
    SHOW PDBS
    
    CON_ID CON_NAME   OPEN MODE    RESTRICTED
    ------ ---------- ------------ -----------
    2      PDB$SEED   READ ONLY    NO
    3      CDB1_PDB1  READ WRITE   NO

    いずれかのPDBに、READ WRITEとは異なるOPEN MODE値が設定されている場合、次の文を実行してPDBを開くと、READ WRITEモードに設定されます。

    ALTER PLUGGABLE DATABASE CDB1_PDB1 OPEN;

    これで、キーストアをCDBルートとPDBの両方で開くことができるようになりました。

  4. PDBに接続し、ADMINISTER KEY MANAGEMENT文を実行してキーストアを開きます。
    たとえば、HSMの場合は、次のとおりです。
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN 
    IDENTIFIED BY "psmith:password";
    
    keystore altered.

    CDBルート・キーストアが閉じられているか、データベースの負荷が高い場合は、FORCE KEYSTORE句を含めることができます。

  5. キーストアが開いていることを確認します。
    SELECT STATUS FROM V$ENCRYPTION_WALLET;
  6. PDBを再起動するたびにこの手順を繰り返します。

ステップ3: ハードウェア・キーストアのTDEマスター暗号化キーの設定

ハードウェア・キーストアを開いた後で、ハードウェア・キーストアのTDEマスター暗号化キーを設定できます。

ハードウェア・キーストアのTDEマスター暗号化キーの設定について

ハードウェア・キーストア内に格納されたTDEマスター暗号化キーを作成する必要があります。

Oracle Databaseは、マスター暗号化キーを使用して、ハードウェア・セキュリティ・モジュール内部のTDE表キーまたは表領域暗号化キーの暗号化または復号化を行います。

TDE用にソフトウェア・キーストアをまだ構成していない場合は、マスター暗号化キーを設定する必要があります。TDEのソフトウェア・キーストアをすでに構成した場合は、ハードウェア・セキュリティ・モジュールに移行する必要があります。

現在のマスター暗号化キーとともに、Oracleウォレットでは、マスター暗号化キーを更新するキーの更新操作のたびに生成される履歴マスター暗号化キーを保持します。これらの履歴マスター・キーにより、履歴マスター暗号化キーのいずれかを使用して、以前に作成されたOracleデータベースのバックアップをリストアできます。

統一モードでのハードウェア・キーストアのTDEマスター暗号化キーの設定

PDBが統一モードに設定されている場合にキーストアのTDEマスター暗号化キーを設定するには、SET KEY句を指定して、ADMINISTER KEY MANAGEMENT文を使用します。

  1. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与された一般ユーザーとして、CDBルートに接続します。
    例:
    CONNECT c##sec_admin AS SYSKM
    Enter password: password
  2. データベースがREAD WRITEモードでオープンしていることを確認します。

    OPEN_MODEREAD WRITEに設定されている場合、マスター暗号化キーを設定できます。マルチテナント環境以外の環境に関するステータスを検索するには、V$DATABASE動的ビューのOPEN_MODE列を問い合せます。マルチテナント環境の場合は、show_pdbsコマンドを実行します。

  3. ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY文を実行して、キーストアのTDEマスター暗号化キーを設定します。
    ADMINISTER KEY MANAGEMENT SET KEY 
    [USING TAG 'tag'] 
    [FORCE KEYSTORE] 
    IDENTIFIED BY [EXTERNAL STORE | "hardware_keystore_credentials"];
    

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

    • tagは、定義する関連の属性および情報です。この設定は、一重引用符(' ')で囲みます。

    • FORCE KEYSTOREはこの操作のためにパスワード保護されたキーストアを一時的に開きます。この操作のためにはキーストアを開く必要があります。

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

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

      • hardware_keystore_credentialsは、HSMまたはOracle Key Vaultのいずれかのハードウェア・キーストアの資格証明を参照します。HSMの場合は、user_name:passwordの形式を使用して資格証明を指定します。二重引用符で囲み、コンポーネントをコロンで区切ります。ここで、user_nameはHSMを作成したユーザーであり、passwordはこのユーザーのパスワードです。Oracle Key Vaultの場合は、データベース・エンドポイントをOracle Key Vaultに登録したときに使用されたパスワードのみを入力します。このパスワードは引用符で囲みます。

    例:

    ADMINISTER KEY MANAGEMENT SET KEY 
    FORCE KEYSTORE 
    IDENTIFIED BY "psmith:password";
    
    keystore altered.
  4. TDEマスター暗号化キーが設定されていることを確認します。
    SELECT MASTERKEY_ACTIVATED FROM V$DATABASE_KEY_INFO;

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

前に構成したTDEマスター暗号化キーの移行

ソフトウェア・キーストアを以前に構成した場合は、前に構成したTDEマスター暗号化キーを移行する必要があります。

Oracle Data PumpやOracle Recovery Managerなどのツールでは、ソフトウェア・キーストアを使用してエクスポートまたはバックアップされたデータに対して復号化と暗号化の操作を実行するために、古いソフトウェア・キーストアにアクセスする必要があります。ソフトウェア・キーストアからハードウェア・キーストアに移行できます。

現在のマスター暗号化キーともに、Oracleキーストアでは、マスター暗号化キーをローテーションするキーの更新操作のたびに生成される履歴マスター暗号化キーを保持します。これらの履歴マスター暗号化キーにより、履歴マスター暗号化キーのいずれかを使用して、以前に作成されたOracleデータベースのバックアップをリストアできます。

ステップ4: 統一モードでのデータの暗号化

ハードウェア・キーストアまたはOracle Key Vaultキーストアの構成が完了したので、データの暗号化を開始できます。