9 他の Oracle機能で透過的データ暗号化を使用
Oracle Data Encryptionは、Oracle Data GuardやOracle Real Application ClustersなどのOracle機能とともに使用できます。
- 透過的データ暗号化とエクスポートおよびインポート操作との連携
Oracle Data Pumpによって、暗号化列を含む表をエクスポートおよびインポートしたり、ダンプ・セット全体を暗号化することができます。 - 透過的データ暗号化とOracle Data Guardとの連携
Oracle Data Guardプライマリ・データベースとセカンダリ・データベースは、TDEウォレットと外部キーストアの両方を共有できます。 - 透過的データ暗号化とOracle Real Application Clustersとの連携
Oracle Real Application Clusters (Oracle RAC)ノードでは、TDEウォレットと外部キーストアの両方を共有できます。 - 透過的データ暗号化とSecureFilesとの連携
LOBが格納されるSecureFilesには、圧縮、重複除外および暗号化の3つの機能があります。 - 透過的データ暗号化とOracle Call Interfaceとの連携
透過的データ暗号化は、Oracle Call Interface (OCI)の動作に影響しません。 - 透過的データ暗号化とエディションとの連携
透過的データ暗号化は、Oracle Databaseのエディション機能に影響しません。 - マルチデータベース環境で機能するように透過的データ暗号化を構成
同じサーバー上の各Oracle Database (同じOracleバイナリを共有しているが異なるデータ・ファイルを使用しているデータベースなど)は、それぞれ独自のTDEキーストアにアクセスする必要があります。
親トピック: 透過的データ暗号化の使用
9.1 透過的データ暗号化とエクスポートおよびインポート操作との連携
Oracle Data Pumpによって、暗号化列を含む表をエクスポートおよびインポートしたり、ダンプ・セット全体を暗号化することができます。
- 暗号化データされたデータのエクスポートおよびインポートについて
暗号化列を持つ表のエクスポートとインポートには、Oracle Data Pumpを使用できます。 - 暗号化された列のある表のエクスポートおよびインポート
ENCRYPTION=ENCRYPTED_COLUMNS_ONLY
設定を使用して、暗号化された列のある表をエクスポートおよびインポートできます。 - Oracle Data Pumpを使用してダンプ・セット全体を暗号化
Oracle Data Pumpによって、透過的データ暗号化列のみではなく、ダンプ・セット全体を暗号化できます。 - 暗号化されたデータ・ディクショナリ・データでのOracle Data Pumpの使用
Oracle Data Pumpは、暗号化されたパスワードおよびその他の暗号化されたデータの保護を提供します。
親トピック: 他の Oracle機能における透過的データ暗号化の使用
9.1.1 暗号化データされたデータのエクスポートおよびインポートについて
暗号化列を持つ表のエクスポートとインポートには、Oracle Data Pumpを使用できます。
ソフトウェア・キーストアと外部キーストアのどちらについても、暗号化された列を含む表をエクスポートする必要がある場合には次の点が重要となります。
-
転送中も機密データが解読されないように保つ必要があります。
-
権限のあるユーザーは、宛先にインポートされたデータを復号化できる必要があります。
Oracle Data Pumpを使用して暗号化列を含む表をエクスポートおよびインポートする場合、ENCRYPTION
パラメータを使用してダンプ・ファイル・セットのデータを暗号化できるようにします。ENCRYPTION
パラメータには、次の値を指定できます。
-
ENCRYPTED_COLUMNS_ONLY
: 暗号化列が暗号化された形式でダンプ・ファイル・セットに書き込まれます。 -
DATA_ONLY
: すべてのデータが暗号化された形式でダンプ・ファイル・セットに書き込まれます。 -
METADATA_ONLY
: すべてのメタデータがダンプ・ファイル・セットに暗号化された形式で書き込まれます。 -
ALL
: すべてのデータとメタデータが暗号化された形式でダンプ・ファイル・セットに書き込まれます。 -
NONE
: ダンプ・ファイル・セットに対して暗号化は使用されません。
9.1.2 暗号化された列のある表のエクスポートおよびインポート
ENCRYPTION=ENCRYPTED_COLUMNS_ONLY
設定を使用して、暗号化された列のある表をエクスポートおよびインポートできます。
-
暗号化列を含む表のエクスポートを試行する前に、キーストアが開いていることを確認します。
マルチテナント環境では、プラガブル・データベース(PDB)内のデータをエクスポートする場合、ウォレットがPDB内でオープン状態であることを確認します。rootにエクスポートする場合、ウォレットがroot内でオープン状態であることを確認します。
キーストアが開いているかどうかを確認するには、
V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せます。キーストアを開く必要がある場合は、次のSQL文を実行します。ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY software_keystore_password [CONTAINER = ALL | CURRENT];
software_keystore_password
設定は、キーストアのパスワードです。キーストアが開いている必要があるのは、暗号化列の復号化にはTDE表キーを使用する必要があり、そのためにはTDEマスター暗号化キーへのアクセスが必要なためです。列は、エクスポートされる前にパスワードを使用して再暗号化されます。 -
エクスポート・ダンプ・ファイル・セットの列データを暗号化する際に使用するパスワードを、
ENCRYPTION_PASSWORD
パラメータを使用して指定し、EXPDP
コマンドを実行します。次に、
employee_data
表をエクスポートする例を示します。ENCRYPTION_PWD_PROMPT = YES
設定によって、対話式でパスワードを求めるプロンプトの表示が可能となり、これは推奨されるセキュリティ上の措置となっています。expdp hr TABLES=employee_data DIRECTORY=dpump_dir DUMPFILE=dpcd2be1.dmp ENCRYPTION=ENCRYPTED_COLUMNS_ONLY ENCRYPTION_PWD_PROMPT = YES Password: password_for_hr
-
エクスポートされたデータをターゲット・データベースにインポートするには、
ENCRYPTION_PASSWORD
パラメータによって設定されエクスポート操作に使用したものと同じパスワードを確実に指定してください。このパスワードは、データの復号化に使用されます。データは、ターゲット・データベースに生成された新しいTDE表キーを使用して再暗号化されます。ターゲット・データベースがTDEマスター暗号化キーにアクセスするためには、キーストアが開いている必要があります。次に、
employee_data
表をインポートする例を示します。impdp hr TABLES=employee_data DIRECTORY=dpump_dir DUMPFILE=dpcd2be1.dmp ENCRYPTION_PWD_PROMPT = YES Password: password_for_hr
9.1.3 Oracle Data Pumpを使用してダンプ・セット全体を暗号化
Oracle Data Pumpによって、透過的データ暗号化列のみではなく、ダンプ・セット全体を暗号化できます。
インポートでは、パスワードまたはキーストアTDEマスター暗号化キーのいずれかを使用してデータを復号化できます。パスワードを指定しなかった場合、データの復号化にはキーストアのTDEマスター暗号化キーが使用されます。ターゲット・データベースにおいて、キーストアが存在して開いている必要があります。この開いているキーストアは、ターゲット・データベースで列暗号化データを再暗号化する際にも必要です。
ENCRYPTION_MODE=TRANSPARENT
設定を使用すると、キーストアに格納されているTDEマスター暗号化キーを使用してダンプ・ファイル・セットを透過的に暗号化できます。この場合、パスワードは不要です。キーストアは、ターゲット・データベースに存在して開かれている必要があり、インポート操作中に列暗号化メタデータを正常に復号化するためにソース・データベースのTDEマスター暗号化キーを含んでいる必要があります。
この開いているキーストアは、ターゲット・データベースで列暗号化メタデータを再暗号化する際にも必要です。キーストアがすでにターゲット・データベースに存在している場合には、ソース・データベースのキーストアから現在のTDEマスター暗号化キーをエクスポートし、ターゲット・データベースのキーストアにインポートできます。
-
ENCRYPTION_MODE
パラメータを使用して、暗号化モードを指定します。ENCRYPTION_MODE=DUAL
によって、キーストアに格納されているTDEマスター暗号化キーと指定したパスワードを使用してダンプ・セットが暗号化されます。
たとえば、二重暗号化モードを使用して、暗号化されたデータをエクスポートする場合、次のようにします。
expdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr_enc.dmp ENCRYPTION=all ENCRYPTION_PASSWORD=encryption_password ENCRYPTION_PWD_PROMPT=yes ENCRYPTION_ALGORITHM=AES256 ENCRYPTION_MODE=dual Password: password_for_hr Encryption Password: password_for_encryption
9.1.4 暗号化されたデータ・ディクショナリ・データでのOracle Data Pumpの使用
Oracle Data Pumpの操作では、暗号化されたパスワードおよびその他の暗号化されたデータが保護されます。
ソース・データベースでの固定ユーザー・データベース・パスワードの暗号化を有効にすると、Oracle Data Pumpエクスポート操作のダンプにより、データベース・リンクのパスワードの既知の無効なパスワードが格納されます。このパスワードは、エクスポート操作によってデータベースから抽出された暗号化パスワードのかわりに適用されています。「ORA-39395: 警告: インポート後、オブジェクト<データベース・リンク名>にパスワードの再設定が必要です
」という警告メッセージが結果として表示されます。Oracle Database 18c以上のデータベースにデータをインポートした場合、無効なパスワードを持つデータベース・リンク・オブジェクトがターゲット・データベースに作成されたときにこの同じ警告が表示されます。これが発生すると、次のようにデータベース・リンクのパスワードをリセットする必要があります。
ALTER DATABASE LINK database_link_name CONNECT TO schema_name IDENTIFIED BY password;
データベース・リンクについての情報を検索するために、V$DBLINK
動的ビューを問い合せることができます。
固定ユーザー・データベース・パスワードの暗号化がソース・データベースで無効になっている場合、Data Pumpに対する変更はありません。不明瞭化されたデータベース・リンクのパスワードは、以前のリリースと同様にエクスポートおよびインポートされます。
この場合、Oracleでは、次のことをお薦めします。
-
不明瞭化されたデータベース・リンクのパスワードをさらに保護できるように、
expdp
コマンドでENCRYPTION_PASSWORD
パラメータを設定します。 -
画面にエコーされるのではなく、プロンプトから対話式にパスワードを入力できるように、
ENCRYPTION_PWD_PROMPT
パラメータをYES
に設定します。
ENCRYPTION_PASSWORD
とENCRYPTION_PWD_PROMPT
の両方のパラメータがインポート操作で使用できます。ENCRYPTION_PWD_PROMPT
は、expdp
およびimpdp
のコマンドライン・クライアントでのみ使用できるのに対して、ENCRYPTION_PASSWORD
は、コマンドライン・クライアントとDBMS_DATAPUMP
PL/SQLパッケージの両方で使用できます。
インポート操作時に、キーストアが開いているか閉じているかにより、暗号化パスワードが指定されている必要があるかどうかの動作が影響を受けます。キーストアがエクスポート操作中に開いていて、暗号化パスワードを指定した場合は、インポート操作中にパスワードを指定する必要はありません。キーストアがエクスポート操作中に閉じられている場合は、インポート操作中にパスワードを指定する必要があります。
9.2 透過的データ暗号化とOracle Data Guardとの連携
Oracle Data Guardプライマリ・データベースとセカンダリ・データベースは、TDEウォレットと外部キーストアの両方を共有できます。
- Oracle Data Guardでの透過的データ暗号化の使用について
Oracle Data Guardでは、TDEウォレットと外部キーストアのどちらについても、透過的データ暗号化(TDE)がサポートされています。 - Oracle Data Guard環境での表領域の暗号化
Oracle Data Guard環境でプライマリ・データベースとスタンバイ・データベースの表領域の暗号化を制御できます。 - Oracle Data Guard環境でのTDEおよびOracle Key Vaultの構成
TDEウォレットおよびOracle Key Vaultと連携できるように、マルチテナント環境でOracle Data Guardを構成できます。 - Oracle Data Guardでのウォレットベースの透過的データ暗号化の構成
Oracle Data Guard環境でウォレットベースの透過的データ暗号化(TDE)を構成できます。 - Oracle Data Guard環境でのTDEウォレットのOracle Key Vaultへの移行
Oracle Data Guard環境でTDEウォレットベースの透過的データ暗号化(TDE)を構成した後は、停止時間なしでプライマリ・データベースおよびスタンバイ・データベースをOracle Key Vaultに移行できます。 - Oracle Data Guard環境での暗号化PDBの分離
Oracle Data Guard環境内の分離PDBには、構成を手動で実行する必要があります。
親トピック: 他の Oracle機能における透過的データ暗号化の使用
9.2.1 Oracle Data Guardでの透過的データ暗号化の使用について
Oracle Data Guardでは、TDEウォレットと外部キーストアのどちらについても、透過的データ暗号化(TDE)がサポートされています。
プライマリ・データベースでTDEを使用する場合、Data Guard構成の各スタンバイ・データベースには、プライマリ・データベースからの暗号化キーストアのコピーが必要です。プライマリ・データベースでTDEマスター暗号化キーを再設定した場合は、そのTDEマスター暗号化キーが格納されているプライマリ・データベースから各スタンバイ・データベースにキーストアをコピーする必要があります。
次の点に注意してください。
-
ウォレットベースのTDEによるキー更新操作では、新しいTDEマスター暗号化キーがまだ使用可能でないため、スタンバイ・データベースでの管理リカバリ・プロセス(MRP)が失敗します。この問題を回避するには、
set key
コマンドをcreate key
およびuse key
コマンドに分割できます。各コマンドの後で、ウォレットをスタンバイ・データベースにコピーし、キーストアを強制的にオープンします。 -
データをスタンバイ・データベースに転送する場合、ログ・ファイル内の暗号化データは暗号化されたままです。暗号化データは転送中も暗号化されたままです。
9.2.2 Oracle Data Guard環境での表領域の暗号化
Oracle Data Guard環境でプライマリ・データベースとスタンバイ・データベースの表領域の暗号化を制御できます。
- Oracle Data Guard環境での表領域の暗号化について
Oracle Data Guard環境では、オンプレミス環境およびOracle Cloud Infrastructure (OCI)環境についてプライマリ・データベースとスタンバイ・データベースの両方の表領域の自動暗号化を制御できます。 - Oracle Data Guard環境での表領域の暗号化の構成
表領域のハイブリッド暗号化を構成するには、TABLESPACE_ENCRYPTION
初期化パラメータを設定する必要があります。
9.2.2.1 Oracle Data Guard環境での表領域の暗号化について
Oracle Data Guard環境では、オンプレミス環境およびOracle Cloud Infrastructure (OCI)環境についてプライマリ・データベースとスタンバイ・データベースの両方の表領域の自動暗号化を制御できます。
新しい表領域の暗号化を制御するには、TABLESPACE_ENCRYPTION
初期化パラメータを設定します。
プライマリ・データベースを暗号化することをお薦めします。ただし、暗号化の要件はサイトによって異なる可能性があるため、TABLESPACE_ENCRYPTION
パラメータを使用して、オンプレミス環境とインクラウド環境の混合暗号化環境を構成できます。
TABLESPACE_ENCRYPTION
パラメータの使用については、次のことに注意してください。
- REDO復号化は、REDOトランスポート・レベルで行われます。
- Oracle Database 19.16以降では、透過的データ暗号化が含まれているAdvanced Security Option (ASO)ライセンスがない場合、Oracle Cloud Infrastructure (OCI)に暗号化されたスタンバイ・データベースを持つように、暗号化されていないオンプレミス・プライマリ・データベースを構成できます。ロール・トランジション後(計画済または計画外)でも、新しいオンプレミス・スタンバイ・データベースは暗号化されないままですが、OCIのプライマリ・データベースは暗号化されます。透過的データ暗号化(TDE)ライセンスがないハイブリッドOracle Data GuardというOracle Database製品管理のYouTubeビデオを参照してください。
19.16より前のリリースでは、「分割TDE」デプロイメントの実装が複雑になり、プライマリ・データベースとスタンバイ・データベースに対する一定の手動操作が必要になり、暗号化されていないオンプレミス・データベースにはASOライセンスが必要になります。
- 選択した
ENCRYPT_NEW_TABLESPACES
設定がTABLESPACE_ENCRYPTION
設定と競合する場合は、TABLESPACE_ENCRYPTION
が優先されます。 TABLESPACE_ENCRYPTION
はPDBではなくCDBルートで設定する必要があります。- OCIデータベースのデフォルトの
TABLESPACE_ENCRYPTION
設定はAUTO_ENABLE
です。この設定は必須で、変更を加えても無視されます。 - オンプレミス・データベースのデフォルトの
TABLESPACE_ENCRYPTION
設定はMANUAL_ENABLE
です。
オンプレミス・データベースと、クラウド(ODBC)またはOracle Exadata Cloud (ExaCS)のOracle Databaseを使用するOracle Data Guard環境では、次のいずれかのシナリオで表領域の暗号化を構成できます。
- クラウド・スタンバイ・データベースでは表領域を暗号化するが、オンプレミス・プライマリ・データベースでは暗号化しない: 暗号化されていないオンプレミス・プライマリ・データベースが、暗号化されていない表領域を作成したり、データ・ファイルを追加したり、表を更新する場合、REDOは暗号化されません。一方、暗号化されたクラウド・スタンバイ・データベースがREDOを適用する場合は、クラウドで表領域またはデータ・ファイルが作成され、ブロックが更新され、すべてが暗号化されていることを確認します。スイッチオーバー操作の後、暗号化されたクラウド・プライマリ・データベースが、暗黙的に暗号化された表領域またはデータ・ファイルを追加するか、表を更新すると、表領域が暗号化されます。暗号化されていないオンプレミス・スタンバイ・データベースはREDOを復号化し、暗号化されていない表領域またはデータ・ファイルを作成した後、ブロックがオンプレミスで暗号化されていないことを確認する必要があります。
- クラウド・プライマリ・データベースでは表領域を暗号化するが、オンプレミス・スタンバイ・データベースでは暗号化しない: 暗号化されたクラウド・プライマリ・データベースが、暗黙的に暗号化された表領域を作成したり、データ・ファイルを追加したり、表を更新する場合、REDOも暗号化されます。暗号化されていないオンプレミス・スタンバイ・データベースは、REDOを復号化し、表領域およびデータ・ファイルが作成されているか、更新されたファイルがすべて暗号化されていないことを確認する必要があります。スイッチオーバー操作の後、暗号化されていないオンプレミス・プライマリ・データベースが、暗号化されていない表領域またはデータ・ファイルを追加するか、表を更新する場合、REDOは暗号化されません。暗号化されたクラウド・スタンバイ・データベースは、暗号化された表領域またはデータ・ファイルを追加した後、ブロックがクラウドで暗号化されていることを確認します。
たとえば、オンプレミス・データベースとOCIデータベースの両方を暗号化するというベスト・プラクティスに従った構成でTABLESPACE_ENCRYPTION
を使用する場合は、オンプレミス・データベースとOCIデータベースの両方についてTABLESPACE_ENCRYPTION
をAUTO_ENABLE
に設定します。また、ODBCまたはOracle ExaCSによるハイブリッド障害時リカバリ構成でオンプレミス・データベースが暗号化されない場合は、たとえば、TABLESPACE_ENCRYPTION
をDECRYPT_ONLY
に設定できます。OCIデータベースは、デフォルトでAUTO_ENABLE
に設定されています。
透過的データ暗号化(TDE)ライセンスがないハイブリッドOracle Data Guardというビデオも参照してください。
親トピック: Oracle Data Guard環境での表領域の暗号化
9.2.2.2 Oracle Data Guard環境での表領域の暗号化の構成
表領域のハイブリッド暗号化を構成するには、TABLESPACE_ENCRYPTION
初期化パラメータを設定する必要があります。
両方のデータベースがオンプレミスの場合、MANUAL_ENABLE
設定とDECRYPT_ONLY
設定のペアでプライマリとスタンバイの設定を指定できます。たとえば、スタンバイ・データベースについてMANUAL_ENABLE
を設定し、プライマリ・データベースについてDECRYPT_ONLY
を設定できます。DECRYPT_ONLY
(プライマリ)とMANUAL_ENABLE
(スタンバイ)のペアでは、TDEオフライン変換を使用して、スタンバイ上のデータベースを手動で暗号化する必要があります。
キー更新操作に関しては、次のことに注意してください。
TABLESPACE_ENCRYPTION
パラメータを変更しても、マスター・キーのローテーション操作には影響しません。プライマリ・データベースで表領域キーのローテーションが実行されると、スタンバイ・データベースも表領域のキーをローテーションしようとします。ただし、スタンバイ表領域が暗号化されておらず、キーがない場合は、再生成するキーがないため、エラーが生成されます。スタンバイ表領域が暗号化されていないが、
DECRYPT_ONLY
設定のためにプライマリからキーを継承した場合は、キーがローテーションされます。いずれの場合も、暗号化されていない表領域には影響しません。- マスター暗号化キーと表領域キーのローテーションはどちらも、プライマリ・データベースでのみ実行できます。
9.2.3 Oracle Data Guard環境でのTDEおよびOracle Key Vaultの構成
TDEウォレットおよびOracle Key Vaultと連携できるように、マルチテナント環境でOracle Data Guardを構成できます。
9.2.4 Oracle Data Guardでのウォレットベースの透過的データ暗号化の構成
Oracle Data Guard環境でウォレットベースの透過的データ暗号化(TDE)を構成できます。
9.2.5 Oracle Data Guard環境でのTDEウォレットのOracle Key Vaultへの移行
Oracle Data Guard環境でTDEウォレットベースの透過的データ暗号化(TDE)を構成した後は、停止時間なしでプライマリ・データベースとスタンバイ・データベースをOracle Key Vaultに移行できます。
9.2.6 Oracle Data Guard環境での暗号化PDBの分離
Oracle Data Guard環境内の分離PDBには、構成を手動で実行する必要があります。
ADMINISTER KEY MANAGEMENT
コマンドがスタンバイに影響しないためです。まず、プライマリ・データベースでPDBを分離します。ADMINISTER KEY MANAGEMENT ISOLATE KEYSTORE
コマンドは、PDBのTDE_CONFIGURATION
パラメータをFILE
に変更し、統合モードのウォレットから新しく作成された分離モードのウォレットにキーを移動するなど、必要な分離タスクを実行します。次に、分離プロセスを完了するために、スタンバイでこれらの同じタスクを手動で実行する必要があります。
9.3 透過的データ暗号化とOracle Real Application Clustersとの連携
Oracle Real Application Clusters (Oracle RAC)ノードでは、TDEウォレットと外部キーストアの両方を共有できます。
- Oracle Real Application Clustersでの透過的データ暗号化の使用について
Oracleは、Oracle Real Application Clusters (Oracle RAC)の共有TDEウォレット、つまり、クラスタ・インスタンス間で共有されるOracle Key Vault内の共通の仮想ウォレットを必要とします。 - Oracle Real Application ClustersにおけるOracle Key Vault用のTDEの構成
暗号化されたOracle Real Application Cluster (Oracle RAC)データベース・インスタンスを、Oracle Key Vaultによって提供される一元化されたキー管理に移行できます。移行プロセスは自動化されており、Oracle Exadata Database Service on Cloud@CustomerおよびOracle Autonomous Database on Dedicated Exadata Infrastructureのプロビジョニング・ワークフローと統合されています。
親トピック: 他の Oracle機能における透過的データ暗号化の使用
9.3.1 Oracle Real Application Clustersでの透過的データ暗号化の使用について
Oracleは、Oracle Real Application Clusters (Oracle RAC)の共有TDEウォレット、つまり、クラスタ・インスタンス間で共有されるOracle Key Vault内の共通の仮想ウォレットを必要とします。
Oracle Key Vaultを使用するTDE構成では、データベースの各インスタンスから外部キー・マネージャへのネットワーク接続が使用されます。Oracle Key Vaultでは、Oracle RAC対応データベースのインスタンスごとに1つのエンドポイントを作成し、Oracle RAC対応データベースごとに1つの仮想ウォレットを作成する必要があります。次に、その仮想ウォレットを、そのデータベースに属するすべてのエンドポイントのデフォルト・ウォレットにします。Oracle RAC対応のData Guard構成では、すべてのインスタンス(プライマリおよびすべてのスタンバイ・データベース)で1つの仮想ウォレットが共有されます。この構成では、関連するすべてのインスタンスが自動的に同期されるため、キー設定操作とキー更新操作は完全に透過的に行われます。これにより、クラスタ内のその他の各ノードにTDEウォレットを手動でコピーする必要がなくなります。
Oracleでは、Oracle RACノードごとの個別のTDEウォレットの使用はサポートされていません。かわりに、Oracle RAC環境でTDE用の共有ウォレットを使用してください。これによってすべてのインスタンスが、同じ共有TDEウォレットにアクセスできます。対象の環境でOracle Automatic Storage Management Cluster File System (Oracle ACFS)を使用している場合は、これが共有ウォレットの推奨される場所です。Oracle ACFSを使用できない場合は、Oracle Automatic Storage Management (Oracle ASM)でウォレットを直接共有する(+DATA/$ORACLE_UNQNAME/WALLETS
など)という方法もあります。
キーストア操作(キーストアの開閉、TDEマスター暗号化キーのキー更新など)は、任意の1つのOracle RACインスタンスで実行可能です。内部的には、Oracleデータベースにより、各Oracle RACノードでキーストアのコンテキストが同期されます。こうすることで、キーストア操作の結果が、クラスタ内の他のすべてのOracle RACインスタンスに表示されます。同様に、TDEマスター暗号化キーのキー更新操作が実行されると、新しいキーが各Oracle RACインスタンスで使用可能になります。TDEマスター暗号化キーのエクスポート、キーストアのパスワードのローテーション、キーストアのマージ、キーストアのバックアップを含む他のキーストア操作なども、1つのインスタンスのみから実行できます。
共有ファイル・システムを使用する場合は、次のようにすべてのOracle RACインスタンスのWALLET_ROOT
静的システム・パラメータが同じ共有TDEウォレットの場所を指していることを確認します:
ALTER SYSTEM SET WALLET_ROOT = '+DATA/$ORACLE_UNQNAME' SCOPE = SPFILE SID ='*'; ALTER SYSTEM SET TDE_CONFIGURATION = "KEYSTORE_CONFIGURATION=FILE" SCOPE = BOTH SID = '*';
ノート:
ENCRYPTION_WALLET_LOCATION
パラメータが設定されている場合、このパラメータは非推奨となったことに注意してください。かわりに、WALLET_ROOT
静的初期化パラメータおよびTDE_CONFIGURATION
動的初期化パラメータを使用することをお薦めします。- Oracle Real Application Clusters (Oracle RAC)インスタンスごとの個別のウォレットでのTDEマスター暗号化キーの格納はサポートされていません。かわりに、オンプレミスまたはクラウドベースのデータベース・デプロイメント、Oracle Automatic Storage Management (Oracle ASM)またはOracle ASM Cluster File System (Oracle ACFS)間の集中キー管理用のOracle Key Vaultを使用してローカル共有ウォレットを提供します。
9.3.2 Oracle Real Application ClustersにおけるOracle Key Vault用のTDEの構成
暗号化されたOracle Real Application Cluster (Oracle RAC)データベース・インスタンスは、Oracle Key Vaultによって提供される一元化されたキー管理に移行できます。移行プロセスは自動化されており、Oracle Exadata Database Service on Cloud@CustomerおよびOracle Autonomous Database on Dedicated Exadata Infrastructureのプロビジョニング・ワークフローと統合されています。
関連トピック
9.4 透過的データ暗号化とSecureFilesとの連携
LOBが格納されるSecureFilesには、圧縮、重複除外および暗号化の3つの機能があります。
- 透過的データ暗号化およびSecureFilesについて
SecureFilesの暗号化では、LOBの暗号化機能を提供するためにTDEを使用します。 - 例: 特定の暗号化アルゴリズムを使用したSecureFiles LOBの作成
CREATE TABLE
文によって、暗号化を指定してSecureFiles LOBを作成できます。 - 例: 列パスワードを指定したSecureFiles LOBの作成
CREATE TABLE
文によって、列パスワードを指定してSecureFiles LOBを作成できます。
親トピック: 他の Oracle機能における透過的データ暗号化の使用
9.4.1 透過的データ暗号化およびSecureFilesについて
SecureFilesの暗号化では、LOBの暗号化機能を提供するためにTDEを使用します。
表を作成または変更する際に、SecureFiles記憶域を使用する必要があるSecureFiles暗号化やLOB列を指定できます。現在の透過的データ暗号化(TDE)構文を使用するか、またはLOB列に関するLOBパラメータの一部としてENCRYPT
句を使用することによって、LOB列の暗号化を有効化できます。現在の構文またはLOBパラメータにおけるDECRYPT
オプションによって、暗号化を無効化できます。
親トピック: 透過的データ暗号化とSecureFilesとの連携
9.4.2 例: 特定の暗号化アルゴリズムを使用したSecureFiles LOBの作成
CREATE TABLE
文によって、暗号化を指定してSecureFiles LOBを作成できます。
例9-1に、CREATE TABLE
文でSecureFiles LOBを作成する方法を示します。
例9-1 特定の暗号化アルゴリズムを使用したSecureFiles LOBの作成
CREATE TABLE table1 ( a BLOB ENCRYPT USING 'AES256') LOB(a) STORE AS SECUREFILE ( CACHE );
親トピック: 透過的データ暗号化とSecureFilesとの連携
9.4.3 例: 列パスワードを指定したSecureFiles LOBの作成
CREATE TABLE
文によって、列パスワードを指定してSecureFiles LOBを作成できます。
例9-2に、暗号化された列に対してパスワード保護を使用するSecureFiles LOBの作成例を示します。
LOB列のすべてのLOBが、同じ暗号化の指定で暗号化されます。
例9-2 列パスワードを指定したSecureFiles LOBの作成
CREATE TABLE table1 (a VARCHAR2(20), b BLOB)
LOB(b) STORE AS SECUREFILE (
CACHE
ENCRYPT USING 'AES192' IDENTIFIED BY password
);
親トピック: 透過的データ暗号化とSecureFilesとの連携
9.5 透過的データ暗号化とOracle Call Interfaceとの連携
透過的データ暗号化は、Oracle Call Interface (OCI)の動作に影響しません。
多くの実用的な目的のために、TDEは行の受渡し機能を除き、OCIに対して透過的です。行を使用可能にするキーは受信ポイントでは使用できないため、OCIの行の受渡し機能をTDEで使用できません。
親トピック: 他の Oracle機能における透過的データ暗号化の使用
9.6 透過的データ暗号化とエディションとの連携
透過的データ暗号化は、Oracle Databaseのエディション機能に影響しません。
多くの実用的な目的のために、TDEはエディションに対して透過的です。表は常に非エディション化オブジェクトです。TDEの列暗号化によって、表の列が暗号化されます。エディションは、TDEの表領域の暗号化によって影響されません。
- ALTER SYSTEMおよびorapkiとADMINISTER KEY MANAGEMENTとの対応
ALTER SYSTEM
文の多くの句は、ADMINISTER KEY MANAGEMENT
文に対応しています。
親トピック: 他の Oracle機能における透過的データ暗号化の使用
9.6.1 ALTER SYSTEMおよびorapkiとADMINISTER KEY MANAGEMENTとの対応
ALTER SYSTEM
文の多くの句は、ADMINISTER KEY MANAGEMENT
文に対応しています。
表9-1では、透過的データ暗号化でのALTER SYSTEM
文およびorapki
ユーティリティの使用と、以前のリリースのADMINISTER KEY MANAGEMENT
文を比較しています。
表9-1 ALTER SYSTEMおよびorapkiとADMINISTER KEY MANAGEMENTとの対応
動作 | ALTER SYSTEMまたはorapki | ADMINISTER KEY MANAGEMENT |
---|---|---|
キーストアの作成 |
TDEウォレットの場合: ALTER SYSTEM SET ENCRYPTION KEY ["certificate_ID"] IDENTIFIED BY keystore_password; 外部キーストアの場合は、外部キーストアを構成した後に、キーストアを利用できるようになります。 |
TDEウォレットの場合: ADMINISTER KEY MANAGEMENT CREATE KEYSTORE
IDENTIFIED BY TDE_wallet_password 外部キーストアの場合は、外部キーストアを構成した後に、キーストアを利用できるようになります。 |
自動ログイン・キーストアの作成 |
orapki wallet create -wallet wallet_location -auto_login [-pwd password] |
TDEウォレットの場合: ADMINISTER KEY MANAGEMENT CREATE [LOCAL]
AUTO_LOGIN KEYSTORE FROM KEYSTORE
IDENTIFIED BY TDE_wallet_password; このタイプのキーストアは、TDEウォレットにのみ適用されます。 |
キーストアを開く |
ALTER SYSTEM SET [ENCRYPTION]
WALLET OPEN IDENTIFIED BY
keystore_password; |
ADMINISTER KEY MANAGEMENT SET KEYSTORE
OPEN [FORCE KEYSTORE]
IDENTIFIED BY keystore_password | EXTERNAL STORE
[CONTAINER = ALL | CURRENT]; |
キーストアを閉じる |
ALTER SYSTEM SET [ENCRYPTION]
WALLET CLOSE IDENTIFIED BY
keystore_password; |
ソフトウェア・キーストアと外部キーストアの場合: ADMINISTER KEY MANAGEMENT SET KEYSTORE
CLOSE [IDENTIFIED BY keystore_password]
[CONTAINER = ALL | CURRENT]; |
外部キーストアからTDEウォレットへの移行 |
|
ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY IDENTIFIED BY keystore_password REVERSE MIGRATE USING "external_key_manager_password" WITH BACKUP [USING 'backup_identifier']; |
TDEウォレットからOracle Key VaultまたはOracle Cloud Interface (OCI)キー管理サービス(KMS)への移行 |
ALTER SYSTEM SET [ENCRYPTION] KEY IDENTIFIED BY "Oracle_Key_Vault_password" MIGRATE USING wallet_password; |
ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY IDENTIFIED BY "Oracle_Key_Vault_password" MIGRATE USING wallet_password; |
キーストア・パスワードの変更 |
orapki wallet change_pwd -wallet wallet_location [-oldpwd password ] [-newpwd password] |
パスワードベースのTDEウォレットの場合: ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD IDENTIFIED BY TDE_wallet_old_password SET TDE_wallet_new_password [WITH BACKUP [USING 'backup_identifier']]; 外部キーストアの場合は、キーストアを閉じ、外部キー・マネージャ・インタフェースで変更してから、キーストアを再度開きます。 |
パスワードベースのTDEウォレットのバックアップ |
この機能と同等の |
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE [USING 'backup_identifier'] IDENTIFIED BY TDE_wallet_password [TO 'TDE_wallet_location']; |
2つのTDEウォレットの3つ目の新しいキーストアへのマージ |
この機能と同等の |
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'TDE_wallet1_location' [IDENTIFIED BY TDE_wallet1_password] AND KEYSTORE 'TDE_wallet2_location' [IDENTIFIED BY TDE_wallet2_password] INTO NEW KEYSTORE 'TDE_wallet3_location' IDENTIFIED BY TDE_wallet3_password; |
1つのTDEウォレットの既存の別のキーストアへのマージ |
この機能と同等の |
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'TDE_wallet1_location' [IDENTIFIED BY TDE_wallet1_password] INTO EXISTNG KEYSTORE 'TDE_wallet2_location' IDENTIFIED BY TDE_wallet2_password [WITH BACKUP [USING 'backup_identifier']]; |
マスター暗号化キーの設定またはキー更新 |
ALTER SYSTEM SET [ENCRYPTION] KEY
IDENTIFIED BY keystore_password; ノート: |
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY [USING TAG 'tag'] IDENTIFIED BY keystore_password WITH BACKUP [USING 'backup_identifier'] [CONTAINER = ALL | CURRENT]; 暗号化キーをキー更新した後、 |
後で使用するマスター暗号化キーの作成 |
この機能と同等の |
ADMINISTER KEY MANAGEMENT CREATE KEY [USING TAG 'tag'] IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']] [CONTAINER = (ALL|CURRENT)]; |
マスター暗号化キーのアクティブ化 |
この機能と同等の |
ADMINISTER KEY MANAGEMENT USE KEY 'key_identifier' [USING TAG 'tag'] IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']]; |
マスター暗号化キーのカスタム・タグの作成 |
この機能と同等の |
ADMINISTER KEY MANAGEMENT SET TAG 'tag' FOR 'master_key_identifier' IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']]; |
マスター暗号化キーのエクスポート |
この機能と同等の |
ADMINISTER KEY MANAGEMENT EXPORT [ENCRYPTION] KEYS WITH SECRET "export_secret" TO 'file_path' IDENTIFIED BY keystoe_password [WITH IDENTIFIER IN 'key_id1', 'key_id2', 'key_idn' | (SQL_query)] |
マスター暗号化キーのインポート |
この機能と同等の |
ADMINISTER KEY MANAGEMENT IMPORT [ENCRYPTION] KEYS WITH SECRET "import_secret" | FROM 'file_name' IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']]; |
キーストアへのOracle Databaseのシークレットの格納 |
この機能と同等の |
TDEウォレットの場合: ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET "secret" FOR CLIENT 'client_identifier' [USING TAG'tag'] IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']; 外部キーストアの場合: ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE SECRET "secret" FOR CLIENT 'client_identifier' [USING TAG 'tag'] IDENTIFIED BY "external_key_manager_password"; |
親トピック: 透過的データ暗号化とエディションとの連携
9.7 マルチデータベース環境で機能するように透過的データ暗号化を構成
同じサーバー上の各Oracle Database (同じOracleバイナリを共有しているが異なるデータ・ファイルを使用しているデータベースなど)は、それぞれ独自のTDEキーストアにアクセスする必要があります。
キーストアは、データベース間で共有されるようには設計されていません。設計によって、データベースごとに1つのキーストアが必要となっています。複数のデータベースには同じキーストアを使用できません。
-
複数データベース環境に対してキーストアの使用を構成するには、次のオプションのいずれかを使用します。
-
オプション1: CDB (またはスタンドアロン・データベース)ごとに、
WALLET_ROOT
静的初期化パラメータおよびTDE_CONFIGURATION
動的初期化パラメータ(KEYSTORE_CONFIGURATION
属性をFILE
に設定)を個別に設定することで、キーストアの場所を指定します。WALLET_ROOT
パラメータを有効にするには、KEYSTORE_CONFIGURATION
属性にFILE
を設定する必要があります。たとえば:
WALLET_ROOT = $ORACLE_BASE/admin/db_unique_name TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE"
-
オプション2:
WALLET_ROOT
およびTDE_CONFIGURATION
が設定されておらず、データベースが同じOracleホームを共有している場合は、sqlnet.ora
にWALLET_LOCATION
およびENCRYPTION_WALLET_LOCATION
パラメータが設定されていないことを確認します。デフォルトでは、sqlnet.ora
は$ORACLE_BASE/network/admin
ディレクトリ($ORACLE_BASE
が設定されている場合)または$ORACLE_HOME/network/admin
ディレクトリにあります。これにより、
$ORACLE_BASE/admin/db_unique_name/wallet
($ORACLE_BASE
が設定されている場合)または$ORACLE_HOME/admin/db_unique_name/wallet
ディレクトリにあるキーストアをOracle Databaseが使用できます。 -
オプション3: オプション1および2が実行可能でない場合、個別の
sqlnet.ora
ファイルを各データベースにつき1つ使用します。TNS_ADMIN
環境変数が、正しいデータベース構成を指すように正確に設定されていることを確認します。ただし、リリース19c以降では、WALLET_ROOT
およびTDE_CONFIGURATION
初期化パラメータが優先され、sqlnet.ora
のENCRYPTION_WALLET_LOCATION
パラメータは非推奨になったことに注意してください。
-
注意:
他のデータベースからキーストアを使用することによって、データの一部または全部が失われる可能性があります。