6 表領域およびデータベースの暗号化変換
オンラインとオフラインの両方の表領域およびデータベースで暗号化操作を実行できます。
- 表領域およびデータベースの暗号化変換について
CREATE TABLESPACE
SQL文を使用して、新しい表領域を暗号化できます。ALTER TABLESPACE
によって、既存の表領域を暗号化できます。 - 暗号化された表領域に対する閉じられたTDEキーストアの影響
Oracle管理の表領域が暗号化されている場合は、TDEキーストアを閉じたり、移行したりできますが、Oracle管理の表領域に対する操作を禁止するにはデータベース・システム自体を停止する必要があります。 - 透過的データ暗号化表領域暗号化の使用に関する制限
表領域を暗号化する際は、透過的データ暗号化の使用に関する制限事項に注意する必要があります。 - 暗号化された新しい表領域の作成
新しい表領域を作成する際、作成のプロセス中に暗号化設定を構成できます。 - 表領域暗号化のデフォルト・アルゴリズムの設定
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM
は、特定の暗号化シナリオに適用されます。 - 将来の表領域の暗号化
将来作成する表領域を自動的に暗号化するようOracle Databaseを構成できます。 - データ・ディクショナリ内の機密資格証明データの暗号化
SYS.LINK$
システム表内およびSYS.SCHEDULER$_CREDENTIAL
システム表内の機密資格証明データを暗号化できます。 - 既存のオフライン表領域の暗号化変換
ALTER TABLESPACE
SQL文のOFFLINE
、ENCRYPT
およびDECRYPT
句を使用して、オフライン暗号化変換を実行できます。 - 既存のオンライン表領域の暗号化変換
ALTER TABLESPACE
SQL文をONLINE
およびENCRYPT
またはDECRYPT
句とともに使用することによって、オンラインの既存の表領域を暗号化および復号化できます。 - 最新サポート済アルゴリズムへの表領域のアルゴリズムの移行
すでに暗号化された表領域を再暗号化すると、以前のアルゴリズム(3DES168
など)を最新のサポート済アルゴリズムに移行できます。 - DBCAを使用した暗号化データベースの作成
DBCAを使用して、単一インスタンスのマルチテナント環境とOracle Data Guard環境の両方で暗号化データベースを作成できます。 - 既存のデータベースの暗号化変換
オフラインおよびオンライン両方のデータベースを暗号化できます。
親トピック: 透過的データ暗号化の使用
6.1 表領域およびデータベースの暗号化変換について
CREATE TABLESPACE
SQL文を使用して、新しい表領域を暗号化できます。ALTER TABLESPACE
によって、既存の表領域を暗号化できます。
新規または既存の表領域の暗号化に加えて、全データベースを暗号化できます。その場合、Oracle管理の表領域(このリリースではSYSTEM
、SYSAUX
、TEMP
およびUNDO
表領域)も暗号化されます。Oracle提供の表領域には、データベース・システムの正しい機能(機密保護、整合性および可用性)のために必要な情報が格納されます。この情報には、システムのデータ・ディクショナリ、システムの一時ソート領域、システムのUNDOセグメントおよびシステムの補助データが含まれます。この情報はOracleデータベース・サーバーそのものによって内部的に更新されることのみを意図しており、通常、ユーザーが直接更新することはありません。
全データベースを暗号化するには、ALTER DATABASE
ではなく、ALTER TABLESPACE
を使用してOracle管理の表領域を暗号化します。
次の表で、表領域およびデータベースのオフラインとオンラインの暗号化変換の違いを比較します。
表6-1 オフラインとオンラインの表領域およびデータベースの暗号化変換
機能 | オフライン変換 | オンライン変換 |
---|---|---|
最小の変換機能があるリリース |
Oracleデータベース11gリリース2 (11.2) |
Oracle Database 12cリリース2 (12.2)以降 |
バックポートできるもの |
|
いいえ |
サポートされるアルゴリズム |
TDEがサポートするすべての対称型暗号化アルゴリズム。 |
TDEがサポートするすべての対称型暗号化アルゴリズム。 |
変換をいつ実行できるか |
表領域がオフラインであるか、データベースがマウント段階にあるとき。 |
表領域がオンラインで、データベースが読取り/書込みモードで開いているとき。 |
変換に補助領域が必要か |
いいえ |
はい。 |
Oracle Data Guardの変換ガイドライン |
プライマリおよびスタンバイの両方を手動で変換します。スタンバイを最初に変換し、最小停止時間に切り替えます |
プライマリを変換した後、スタンバイ変換が自動的に行われます。スタンバイでは、オンライン変換を直接実行することはできません。 |
表領域 |
Oracle Database 12cリリース2 (12.2)以降のみ。 |
Oracle Database 12cリリース2 (12.2)以降のみ。 |
既存の |
いいえ、ただし、Oracle Database 12cリリース2 (12.2)以降で |
いいえ、ただし、Oracle Database 12cリリース2 (12.2)以降で |
既存の表領域を復号化できるか |
以前にオフライン暗号化操作によって暗号化された表領域またはデータ・ファイルのみ復号化できます。一度暗号化された |
はい、ただし、一度暗号化された |
暗号化キーをキー更新できるか |
いいえ、ただし、表領域が暗号化された後、オンライン変換を使用してOracle Database 12cリリース2 (12.2)の互換性でキー変更できます。 |
はい |
暗号化操作を並列して実行できるか |
複数のユーザー・セッションを実行しているデータ・ファイル・レベルで、並列した暗号化変換を実行できます。 |
複数のユーザー・セッションが実行している表領域レベルで、並列した暗号化変換を実行できます。 |
暗号化変換SQL文が完了できなかった場合どうするか |
暗号化または復号化SQL文を再発行して、表領域内のすべてのデータ・ファイルが確実に一貫して暗号化または復号化されるようにします。 |
|
6.2 暗号化された表領域に対する閉じられたTDEキーストアの影響
Oracle管理の表領域が暗号化されている場合は、TDEキーストアを閉じたり、移行したりできますが、Oracle管理の表領域に対する操作を禁止するにはデータベース・システム自体を停止する必要があります。
閉じられたTDEキーストアは、暗号化されたOracle管理の表領域(このリリースでは、SYSTEM
、SYSAUX
、TEMP
およびUNDO
表領域)に関係する操作に影響しません。これにより、TDEキーストアが閉じられているときにも、バックグラウンド・プロセス(ログ・ライターなど)によって実行される操作をこれらの表領域に対して引き続き実行できます。暗号化されたOracle管理の表領域に対する操作を禁止する場合は、データベースを停止する必要があります。
ユーザー作成の表領域に関しては、TDEキーストアが閉じられていることによって、キーのローテーション、表領域の復号化などの操作が、以前のリリースと同様にORA-28365 ウォレットがオープンしていません
というエラーで失敗します。ユーザー作成の表領域に対する操作を禁止する場合は、TDEキーストアを閉じます(または、データベースを停止します)。
ユーザー作成のデータは、TDEキーストアが開いている間にユーザー作成の表領域から暗号化されたOracle管理の表領域にコピーできます(たとえば、DBMS_STATS
統計収集などの内部プロセスによって)。キーストアを閉じた場合、ユーザーがV$ENCRYPTION_WALLET
ビューを問い合せたときにTDEキーストアがCLOSED
状態であっても、後でこのデータを表示することは妨げられません。暗号化されたユーザー作成の表領域を問い合せることによって元のデータにアクセスしようとすると失敗し、ORA-28365 ウォレットがオープンしていません
というエラーが返されます。
表6-2に、ユーザー作成の表領域およびOracle管理の表領域の暗号化されたデータに対する操作を禁止または許可するために必要な操作を示します。たとえば、最初のシナリオでは、ユーザー作成の表領域とOracle管理の表領域の両方が暗号化されています。この場合、暗号化されたユーザー作成の表領域の暗号化データに関しては、管理者はキーストアを開閉し、暗号化されたユーザー作成の表領域を持つデータベースを停止およびオープンできます。暗号化されたOracle管理の表領域が構成されている場合、管理者はデータベースを停止することで操作を禁止できます。また、マウント・モードで起動してTDEキーストアを開き、データベースをオープンすることで操作を許可できます。(暗号化されたOracle管理の表領域にあるブートストラップ・ディクショナリ表を復号化するためにTDEマスター暗号化キーが必要になる可能性があるため、データベースをオープンする前にTDEキーストアを開く必要があります。)この表の該当なしフラグは暗号化されていないデータを示しており、インスタンスが停止されないかぎり、常に操作できます。
表6-2 暗号化データの操作を禁止または許可するために必要なコマンド
表領域の暗号化のシナリオ | 暗号化されたユーザー作成の表領域のデータの操作を禁止するコマンド | 暗号化されたOracle管理の表領域のデータの操作を禁止するコマンド | 暗号化されたユーザー作成の表領域のデータの操作を許可するコマンド | 暗号化されたOracle管理の表領域のデータの操作を許可するコマンド |
---|---|---|---|---|
ユーザー作成の表領域およびOracle管理の表領域の両方が暗号化されている |
|
SHUTDOWN |
|
|
ユーザー表領域は暗号化されていて、Oracle管理の表領域は暗号化されていない |
|
該当なし |
|
該当なし |
ユーザー表領域は暗号化されておらず、Oracle管理の表領域は暗号化されている | 該当なし | SHUTDOWN |
該当なし |
|
ユーザー表領域もOracle管理の表領域も暗号化されていない | 該当なし | 該当なし | 該当なし | 該当なし |
親トピック: 表領域およびデータベースの暗号化変換
6.3 透過的データ暗号化表領域暗号化の使用に関する制限
表領域を暗号化する際は、透過的データ暗号化の使用に関する制限事項に注意する必要があります。
次の制約に注意してください:
-
透過的データ暗号化(TDE)表領域暗号化では、SQLレイヤーでデータを暗号化および復号化するTDE列暗号化とは対照的に、読取りおよび書込み操作時にデータを暗号化または復号化します。このことは、データ型制限や索引タイプ制限など、TDE列暗号化に適用される制限のほとんどが、TDE表領域暗号化には適用されないことを意味します。
-
インポートおよびエクスポート操作を実行するには、Oracle Data Pumpを使用します。
6.4 暗号化された新しい表領域の作成
新しい表領域を作成する際、作成のプロセス中に暗号化設定を構成できます。
- ステップ1: 表領域暗号化のCOMPATIBLE初期化パラメータの設定
暗号化された表領域を作成する前に、COMPATIBLE
初期化パラメータを設定する必要があります。 - ステップ2: 表領域TDEマスター暗号化キーの設定
TDEマスター暗号化キーが構成されていることを確認する必要があります。 - ステップ3: 暗号化された表領域の作成
COMPATIBLE
初期化パラメータを設定したら、暗号化された表領域の作成の準備は完了です。
親トピック: 表領域およびデータベースの暗号化変換
6.4.1 ステップ1: 表領域暗号化のCOMPATIBLE初期化パラメータの設定
暗号化された表領域を作成する前に、COMPATIBLE
初期化パラメータを設定する必要があります。
- 表領域暗号化のためのCOMPATIBLE初期化パラメータの設定について
最小のCOMPATIBLE
初期化パラメータ設定である11.2.0.0
では、表領域暗号化機能の完全なセットが有効になります。 - 表領域暗号化のためのCOMPATIBLE初期化パラメータの設定について
COMPATIBLE
初期化パラメータを設定するには、データベース・インスタンスの初期化パラメータを編集する必要があります。
親トピック: 暗号化された新しい表領域の作成
6.4.1.1 表領域暗号化のためのCOMPATIBLE初期化パラメータの設定について
最小のCOMPATIBLE
初期化パラメータ設定である11.2.0.0
では、表領域暗号化機能の完全なセットが有効になります。
互換性を11.2.0.0
に設定すると、次の機能を使用できます。
-
11.2.0.0
に設定することにより、データベースでは、データの暗号化にサポートしている4つのアルゴリズム(3DES168
、AES128
、AES192
およびAES256
)の任意のものを使用できます。 -
11.2.0.0
に設定することにより、ソフトウェア・キーストアから外部キーストアにキーを移行できます(TDEマスター暗号化キーが外部キーストア用に構成されていることを確認してください)。 -
11.2.0.0
に設定することにより、TDEマスター暗号化キーをキー更新できます。
COMPATIBLE
パラメータを11.2.0.0
に設定すると、変更を元に戻せないことに注意してください。表領域暗号化を使用するには、互換性設定が最低でも11.2.0.0
であることを確認します。
6.4.2 ステップ2: 表領域TDEマスター暗号化キーの設定
TDEマスター暗号化キーが構成されていることを確認する必要があります。
- 統一モードまたは分離モードで使用するステップと同じステップを使用して、ソフトウェアTDEマスター暗号化キーまたはハードウェアTDEマスター暗号化キーのTDEマスター暗号化キーを設定します。
親トピック: 暗号化された新しい表領域の作成
6.4.3 ステップ3: 暗号化された表領域の作成
COMPATIBLE
初期化パラメータを設定したら、暗号化された表領域の作成は完了です。
- 暗号化された表領域の作成について
暗号化された表領域を作成するには、CREATE TABLESPACE
SQL文を使用します。 - 暗号化された表領域の作成
暗号化された表領域を作成するには、ENCRYPTION USING
句を含むCREATE TABLESPACE
文を使用する必要があります。 - 例: AES192を使用する暗号化された表領域の作成
CREATE TABLESPACE
SQL文を使用して、暗号化された表領域を作成できます。 - 例: デフォルト・アルゴリズムを使用する暗号化された表領域の作成
CREATE TABLESPACE
SQL文を使用して、デフォルト・アルゴリズムを使用する暗号化された表領域を作成できます。
親トピック: 暗号化された新しい表領域の作成
6.4.3.1 暗号化された表領域の作成について
暗号化された表領域を作成するには、CREATE TABLESPACE
SQL文を使用します。
暗号化された表領域を作成するには、CREATE TABLESPACE
システム権限が必要です。
Oracle Data Pumpを使用して、暗号化された表領域にデータをインポートできます。CREATE TABLE...AS SELECT...
やALTER TABLE...MOVE...
などのSQL文を使用して、暗号化された表領域にデータを移動することもできます。CREATE TABLE...AS SELECT...
文は、既存の表から表を作成します。ALTER TABLE...MOVE...
文は、暗号化された表領域に表を移動します。
セキュリティ上の理由から、NO SALT
オプションを使用して表領域を暗号化することはできません。
表領域が暗号化されたかどうかを確認するために、DBA_TABLESPACES
データ・ディクショナリ・ビューおよびUSER_TABLESPACES
データ・ディクショナリ・ビューのENCRYPTED
列を問い合せることができます。
親トピック: ステップ3: 暗号化された表領域の作成
6.4.3.2 暗号化された表領域の作成
暗号化された表領域を作成するには、ENCRYPTION USING
句を含むCREATE TABLESPACE
文を使用する必要があります。
CREATE TABLESPACE
文を実行します。
たとえば:
CREATE TABLESPACE encrypt_ts
DATAFILE '$ORACLE_HOME/dbs/encrypt_df.dbf' SIZE 1M
ENCRYPTION USING 'AES256' ENCRYPT;
ここでは次のように指定します。
-
ENCRYPTION USING 'AES256' ENCRYPT
は、暗号化アルゴリズムおよび暗号化キーの長さを指定します。ENCRYPT
句は、表領域を暗号化します。この設定は一重引用符(' ')で囲みます。キー長は、アルゴリズムの名前に含まれています。暗号化アルゴリズムを指定しない場合は、デフォルトの暗号化アルゴリズムAES128
が使用されます。
親トピック: ステップ3: 暗号化された表領域の作成
6.4.3.3 例: AES192を使用する暗号化された表領域の作成
CREATE TABLESPACE
SQL文を使用して、暗号化された表領域を作成できます。
例6-1では、AES192
アルゴリズムを使用して暗号化された、securespace_1
という表領域を作成します。
例6-1 AES192を使用する暗号化された表領域の作成
CREATE TABLESPACE securespace_1 DATAFILE '/home/user/oradata/secure01.dbf' SIZE 150M ENCRYPTION USING 'AES192' ENCRYPT;
親トピック: ステップ3: 暗号化された表領域の作成
6.4.3.4 例: デフォルト・アルゴリズムを使用する暗号化された表領域の作成
CREATE TABLESPACE
SQL文を使用して、デフォルト・アルゴリズムを使用する暗号化された表領域を作成できます。
例6-2では、securespace_2
という表領域を作成します。暗号化アルゴリズムが指定されていないため、デフォルトの暗号化アルゴリズム(AES128
)が使用されます。キー長は128ビットです。
既存の表領域は暗号化できません。
例6-2 デフォルト・アルゴリズムを使用する暗号化された表領域の作成
CREATE TABLESPACE securespace_2 DATAFILE '/home/user/oradata/secure01.dbf' SIZE 150M ENCRYPTION ENCRYPT;
親トピック: ステップ3: 暗号化された表領域の作成
6.5 表領域暗号化のデフォルト・アルゴリズムの設定
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM
は、特定の暗号化シナリオに適用されます。
- 暗号化アルゴリズムを指定できない暗号化コマンド
- 暗号化構文なしで作成された新しい表領域
SYSTEM
表領域の暗号化アルゴリズム
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM
は、Oracle Key Vaultでの最初のSET KEY
操作またはソフトウェア・キーストアベースのTDE構成のCREATE KEYSTORE
コマンドの前に設定されている場合にのみ有効になります。
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM
は、オフライン表領域暗号化操作とオンライン表領域暗号化操作の両方に適用されます。TABLESPACE_ENCRYPTION
が適切に設定されている場合、将来の暗号化表領域にも適用されます。マルチテナント環境では、CDBルートまたは個々のPDBでTABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM
を設定できます。
親トピック: 表領域およびデータベースの暗号化変換
6.6 将来の表領域の暗号化
将来作成する表領域を自動的に暗号化するようOracle Databaseを構成できます。
- 将来の表領域の暗号化について
ENCRYPT_NEW_TABLESPACES
動的データベース初期化パラメータは、将来の表領域が暗号化されるかどうかを制御します。 - 将来の表領域の暗号化設定
ENCRYPT_NEW_TABLESPACES
データベース初期化パラメータを設定して、将来作成する表領域を自動的に暗号化できます。
親トピック: 表領域およびデータベースの暗号化変換
6.6.1 将来の表領域の暗号化について
ENCRYPT_NEW_TABLESPACES
動的データベース初期化パラメータは、将来の表領域が暗号化されるかどうかを制御します。
デフォルトでは、すべてのOracle Cloudデータベースは暗号化されます。そのようなデータベースに既製のアプリケーションをインストールすると、そのインストール・スクリプトには暗号化構文がない可能性があります。この場合、ENCRYPT_NEW_TABLESPACES
がCLOUD_ONLY
に設定されているため、これらの表領域は暗号化されて作成されます。
ノート:
Oracle Database 23c以降では、ENCRYPT_NEW_TABLESPACES
初期化パラメータが非推奨になりました。Oracle Database 23cで導入された初期化パラメータTABLESPACE_ENCRYPTION
を使用することをお薦めします。
Oracle Cloud環境では、Oracle Cloud環境およびオンプレミスの環境に暗号化された表領域を作成するときに、次のシナリオが発生する場合があります。
-
Oracle Cloudにテスト・データベースを作成し、
ENCRYPT_NEW_TABLESPACE
パラメータが、暗号化の際にクラウド・データベースを自動的に作成するよう設定されているときに表領域が暗号化されました。ところが、そういった意図がないか、暗号化されたデータベースをオンプレミスに戻すAdvanced Security Optionライセンスさえも持っていない場合があります。この場合、Oracle Recovery Manager (Oracle RMAN)には、AS DECRYPTED
を複製またはリストアするオプションがあります。 -
プライマリ・データベースがオンプレミスで、スタンバイ・データベースがOracle Cloudにある、ハイブリッド環境を作成します。切り替え操作が行われた場合、新しいプライマリはOracle Cloud上になります。新しい表領域が透過的に暗号化された場合、このリストの最初の項目に対して同様のシナリオが発生することがあります。たとえば、Advanced Security Option (ASO)ライセンスを持っておらず、自動的に暗号化された表領域がOracle Cloudにあるとします。オンプレミスのスタンバイ・データベースも自動的に暗号化されます。この場合、オンプレミス・スタンバイ・データベースにAdvanced Securityライセンス(透過的データ暗号化およびデータ・リダクションを含む)が必要か、スタンバイ・データベースを使用できません。
親トピック: 将来の表領域の暗号化
6.7 データ・ディクショナリ内の機密資格証明データの暗号化
SYS.LINK$
システム表およびSYS.SCHEDULER$_CREDENTIAL
システム表内の機密資格証明データを暗号化できます。
デフォルトでは、SYS.LINK$
システム表内およびSYS.SCHEDULER$_CREDENTIAL
システム表内の資格証明データは、不明瞭化されています。ただし、多くのタイプの不明瞭化解除アルゴリズムが使用可能であるため、Oracleでは、この機密資格証明データを暗号化することをお薦めします。データ・ディクショナリ資格証明のステータスを確認するために、DICTIONARY_CREDENTIALS_ENCRYPT
データ・ディクショナリ・ビューを問い合せることができます。
これらの2つのシステム表内の機密資格証明データの暗号化には、透過的データ暗号化を使用します。資格証明データの暗号化には、AES256アルゴリズムを使用します。資格証明データを暗号化するには、Oracle Advanced Security Optionライセンスを所有している必要はありませんが、SYSKM
管理権限が付与されている必要があります。また、データベースには、開いているキーストアがある必要があります。
親トピック: 表領域およびデータベースの暗号化変換
6.8 既存のオフライン表領域の暗号化変換
ALTER TABLESPACE
SQL文のOFFLINE
、ENCRYPT
およびDECRYPT
句を使用して、オフライン暗号化変換を実行できます。
- 既存のオフライン表領域の暗号化変換について
表領域がオフラインのとき、またはデータベースが開いていないときに、ユーザー表領域の既存のデータ・ファイルを暗号化または復号化できます。 - オフライン変換での既存のユーザー定義表領域の暗号化
既存の表領域をオフライン変換で暗号化するには、ALTER TABLESPACE
SQL文をOFFLINE
句およびENCRYPT
句とともに使用できます。 - オフライン変換での既存の表領域の復号化
既存の表領域をオフライン変換で復号化するには、ALTER TABLESPACE
SQL文をOFFLINE
句およびDECRYPT
句とともに使用できます。
親トピック: 表領域およびデータベースの暗号化変換
6.8.1 既存のオフライン表領域の暗号化変換について
表領域がオフラインのとき、またはデータベースが開いていないときに、ユーザー表領域の既存のデータ・ファイルを暗号化または復号化できます。
暗号化または復号化の実行には、次の2つのオプションがあります:
- データファイル・レベルのオフライン暗号化: このタイプには、暗号化アルゴリズムを指定するオプションはありません。デフォルトの暗号化アルゴリズムが使用されます。たとえば:
ALTER DATABASE DATAFILE 'path_to_data_file.dbf' ENCRYPT;
- 表領域のオフライン暗号化: 次の構文を使用します。
[USING 'algorithm']
を省略すると、デフォルトの暗号化アルゴリズムが使用されます。ALTER TABLESPACE tablespace_name ENCRYPTION OFFLINE [USING 'algorithm'] ENCRYPT;
このオフラインの暗号化方法は、データベースの互換性をOracle Database 11cリリース2 (11.2)またはOracle Database 12cリリース1 (12.1)からリリース19cに変更する(元に戻すことはできません)ことを計画していない場合に使用します。オフラインの暗号化方法は、このデータベースをリリース19cにアップグレードする前に、透過的データ暗号化を簡単に利用する場合にも便利です。オフライン表領域は、暗号化と復号化の両方を行うことができます。
次の点に注意してください。
-
Oracle Database提供の表領域(
SYSTEM
、SYSAUX
およびUNDO
)をオフライン変換方法を使用して暗号化する場合には、オフライン変換で既存のデータベースを暗号化する場合に推奨される方法を使用する必要があります。 -
オンラインの方法を使用して、キー更新、暗号化アルゴリズムの変更またはオフラインの方法で以前に暗号化した表領域を復号化できます。
-
オフライン・モードでアルゴリズムを変更する場合は、まず表領域を復号化し、新しいアルゴリズムで再暗号化する必要があります。
-
Oracle Data Guardを構成している場合には、先にスタンバイの表領域を暗号化し、プライマリに切り替えてから、新しいスタンバイ・データベースの表領域をオフライン暗号化することによって、停止時間を最小限に抑えることができます。オフライン暗号化(データファイルおよび表領域レベルの両方)は、最初にスタンバイで実行されます。オンライン暗号化はOracle Data Guardトランザクションであるため、スタンバイ・データベースでリプレイされます。
-
USING ... ENCRYPT
句を使用して、暗号化アルゴリズムを指定できます。サポートされているアルゴリズムは、128、192および256ビットのキー長のAESおよびARIAです。暗号化キーを確認するには、V$DATABASE_KEY_INFO
ビューのENCRYPTIONALG
列を問い合せます。ノート:
Oracle Database 23c以降では、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)復号化ライブラリは非推奨になり、GOSTおよびSEEDへの暗号化はサポートされなくなります。Oracle Database 23c以降、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)暗号化ライブラリはサポートされなくなり、削除されました。GOSTおよびSEED復号化ライブラリは非推奨です。どちらも、HP Itaniumプラットフォームでは削除されます。GOST 28147-89はロシア政府によって非推奨とされ、SEEDは韓国政府によって非推奨とされました。韓国政府が承認したTDE暗号化が必要である場合は、かわりにARIAを使用します。GOST 28147-89を使用している場合は、サポートされている別のTDEアルゴリズムを使用して、復号化および暗号化する必要があります。GOST 28147-89およびSEEDの復号化アルゴリズムはOracle Database 23cに含まれていますが、非推奨であり、GOST暗号化アルゴリズムはOracle Database 23cでサポートが終了しました。TDE暗号化にGOSTまたはSEEDを使用している場合は、Oracle Database 23cにアップグレードする前に、別のアルゴリズムで復号化および暗号化することをお薦めします。ただし、HP Itaniumプラットフォームを除き、Oracle Database 23cではGOSTおよびSEED復号化ライブラリを使用できるため、アップグレード後に復号化することもできます。
-
今後のオフライン表領域暗号化操作のためにデフォルトの暗号化アルゴリズムを設定するには、
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM
動的パラメータを設定します。 -
ALTER TABLESPACE
文を使用すると、各種のデータ・ファイルを暗号化するために、オフライン表領域を複数のフォアグラウンド・セッションを使用して並列で変換できます。 -
Oracle Data Guardを使用する場合には、先にスタンバイの表領域を暗号化し、切り替えてから、次に元のプライマリの表領域を暗号化することによって、停止時間を最小限に抑えることができます。
-
Oracle Database 11gリリース2 (11.2.0.4)およびOracle Database 12cリリース1 (12.1.0.2)では、表領域
SYSTEM
およびSYSAUX
のオフライン暗号化は実行できません。Oracle Database 19cより前のリリースでは、SYSTEM
、SYSAUX
、TEMP
およびUNDO
表領域は暗号化できません。また、これらのリリースでUNDO
表領域をオフラインで暗号化することはお薦めしません。これを行うとキーストアを閉じられなくなり、データベースが機能しなくなります。また、暗号化された表領域に関連付けられたすべてのUNDOレコードは、すでに自動的にUNDO
表領域に暗号化されているため、データベースがオフラインの間にUNDO
表領域を暗号化する必要はありません。TEMP
表領域を暗号化するには、削除してから、暗号化して再作成する必要があります。
6.8.2 オフライン変換での既存のユーザー定義表領域の暗号化
既存の表領域をオフライン変換で暗号化するには、ALTER TABLESPACE
SQL文をOFFLINE
句およびENCRYPT
句とともに使用できます。
SYSTEM
およびUNDO
は、オフラインにできません。表領域をオフラインで暗号化する場合には、オフライン変換での既存のデータベースの暗号化に記載された方法を使用する必要があります。
親トピック: 既存のオフライン表領域の暗号化変換
6.8.3 オフライン変換での既存の表領域の復号化
既存の表領域をオフライン変換で復号化するには、ALTER TABLESPACE
SQL文をOFFLINE
句およびDECRYPT
句とともに使用できます。
親トピック: 既存のオフライン表領域の暗号化変換
6.9 既存のオンライン表領域の暗号化変換
ALTER TABLESPACE
SQL文をONLINE
およびENCRYPT
またはDECRYPT
句とともに使用することによって、オンラインの既存の表領域を暗号化および復号化できます。
- 既存のオンライン表領域の暗号化変換について
既存のユーザー表領域、SYSTEM
、SYSAUX
およびUNDO
表領域がオンラインのとき、これらを暗号化、復号化またはキー更新できます。 - オンライン変換での既存の表領域の暗号化
オンライン変換で既存の表領域を暗号化するには、ALTER TABLESPACE
をONLINE
およびENCRYPT
句とともに使用します。 - オンライン変換での既存の表領域のキー更新
オンラインの既存の表領域をキー更新するには、ALTER TABLESPACE
SQL文のREKEY
句を使用できます。 - オンライン変換によるSYSAUX表領域およびUNDO表領域のキー更新
SYSAUX
およびUNDO
オンライン表領域をキー更新するには、ALTER TABLESPACE
SQL文のREKEY
句を使用できます。 - オンライン変換での既存の表領域の復号化
既存の表領域をオンライン変換で復号化するには、ALTER TABLESPACE
SQL文をDECRYPT
句とともに使用できます。 - 中断されたオンライン暗号化変換の終了
オンライン暗号化プロセスが中断された場合は、FINISH
句を使用してALTER TABLESPACE
文を再実行することで、変換を完了できます。
親トピック: 表領域およびデータベースの暗号化変換
6.9.1 既存のオンライン表領域の暗号化変換について
既存のユーザー表領域、SYSTEM
、SYSAUX
およびUNDO
表領域がオンラインのとき、これらを暗号化、復号化またはキー更新できます。
ただし、一時表領域をオンラインで暗号化、復号化またはキー更新することはできません。
オンラインの表領域は、CREATE TABLESPACE
SQL文のONLINE
句を使用して作成できます。表領域をオンラインで暗号化またはキー更新すると、表領域は固有の暗号化キーおよびアルゴリズムを持つことになります。
次の点に注意してください。
-
オフライン表領域が暗号化されている場合、オンラインでキー更新して別のアルゴリズムを使用できます。
-
異なる表領域を暗号化するために、複数のフォアグラウンド・セッションを使用して、複数の表領域をオンラインで並列して暗号化できます。各表領域内では、データ・ファイルは順に暗号化されます。
-
今後のオンライン表領域暗号化操作のためにデフォルトの暗号化アルゴリズムを設定するには、
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM
動的パラメータを設定します。 -
変換が中断された場合、
ALTER TABLESPACE
SQL文のFINISH
句を発行してプロセスを再開できます。 -
各オンライン表領域変換に対してREDOログが生成されます。
-
表領域
SYSTEM
およびUNDO
は、他の表領域と同時に暗号化しないでください。 -
表領域を暗号化している間は、Oracle Data Pumpでトランスポータブル表領域機能を使用できません。
-
ALTER TABLESPACE
文は、次の機能と同時に実行することはできません。-
ADMINISTER KEY MANAGEMENT SET KEY
SQL文 -
FLASHBACK DATABASE
SQL文
-
-
データ・ファイルにOracle Managed Filesを使用する場合、暗号化プロセスは表領域に関連付けられたデータ・ファイルをキー更新し、それらをデフォルトのOracle Managed Filesの場所にコピーまたは移動します。
-
新しいファイルは、暗号化した後に表領域に追加できます。Oracle Databaseは新しいファイルを新しい暗号化キーで再フォーマットします。新しいキーを使用してブロックが暗号化されます。
-
ルートまたはPDBで行われた以前の操作は、オンライン変換プロセスを開始する前に、制御ファイルをデータ・ディクショナリに対してクロスチェックする必要がある場合があります。
ORA-241 operation disallowed: control file is not yet checked against data dictionary
エラーが発生する場合があります。この問題を解決するには、ルートまたはPDBを再起動し、再度オンライン変換コマンドの発行を試行します。 - セキュリティ上の理由から、オンライン変換によってデータ・ファイルが処理されると、元のデータ・ファイルが削除前にゼロアウトされます。これにより、データベースがディスク・セクターにゴースト・データを残さなくなります。ただし、Oracle Recovery Manager (Oracle RMAN)のファイルの検証と同時にオンライン表領域変換を実行した場合に発生する可能性がある既知の制限があります。オンライン表領域変換では、各ファイルが一度に1つずつ処理されます。オンライン表領域変換によってファイルが処理されているときにOracle RMANがファイルを検証した場合、Oracle RMANが破損の問題を報告することがあります(
ORA-01578: Oracleデータ・ブロックに障害が発生しました(ファイル番号%s、ブロック番号%s))。
このようになるのは、ファイルを構成するブロックがゼロと見なされるためです。これは間違ったアラームであり、このエラーは無視できます。これが発生した場合は、Oracle RMAN検証プロセスを再度実行してください。
6.9.2 オンライン変換での既存の表領域の暗号化
オンライン変換で既存の表領域を暗号化するには、ALTER TABLESPACE
をONLINE
およびENCRYPT
句とともに使用します。
V$ENCRYPTED_TABLESPACES
動的ビューのSTATUS
列を問い合せて、暗号化ステータスを確認できます。このビューのENCRYPTIONALG
列には、使用されている暗号化アルゴリズムが示されます。変換プロセスが中断された場合、ALTER TABLESPACE
をFINISH
句とともに実行してプロセスを再開できます。たとえば、プライマリ・データ・ファイルが変換され、スタンバイ・データ・ファイルは変換されなかった場合、スタンバイ・データ・ファイルのスタンバイ・データベースでALTER TABLESPACE ... FINISH
を実行できます。
6.9.3 オンライン変換での既存の表領域のキー更新
オンラインの既存の表領域をキー更新するには、ALTER TABLESPACE
SQL文のREKEY
句を使用できます。
-
TEMP
表領域をキー更新することはできません。TEMP
表領域に異なる暗号化アルゴリズムを割り当てる場合には、TEMP
を削除して、正しい暗号化アルゴリズムで再作成します。 -
オンライン表領域のキー更新操作とマスター・キーの操作を同時に実行しないでください。いずれかの表領域が現在キー更新中かどうかを確認するには、次の問合せを発行して、暗号化された表領域のキー更新ステータスを確認します。
SELECT TS#,ENCRYPTIONALG,STATUS FROM V$ENCRYPTED_TABLESPACES;
REKEYING
というステータスは、対応する表領域がまだキー更新中であることを意味します。このステータスが適用される間は、マスター・キーをキー更新しないでください。
オンライン変換を使用して既存の表領域をキー更新するには:
ALTER TABLESPACE
をFINISH
句とともに実行してプロセスを再開できます。
6.9.4 オンライン変換によるSYSAUX表領域およびUNDO表領域のキー更新
SYSAUX
およびUNDO
オンライン表領域をキー更新するには、ALTER TABLESPACE
SQL文のREKEY
句を使用できます。
親トピック: 既存のオンライン表領域の暗号化変換
6.9.5 オンライン変換での既存の表領域の復号化
既存の表領域をオンライン変換で復号化するには、ALTER TABLESPACE
SQL文をDECRYPT
句とともに使用できます。
ALTER TABLESPACE
をFINISH
句とともに実行してプロセスを再開できます。
親トピック: 既存のオンライン表領域の暗号化変換
6.9.6 中断されたオンライン暗号化変換の終了
オンライン暗号化プロセスが中断された場合は、FINISH
句を使用してALTER TABLESPACE
文を再実行することで、変換を完了できます。
ALTER TABLESPACE
SQL文のFILE_NAME_CONVERT
句でのORA-28425: missing a valid FILE_NAME_CONVERT clause
エラーなどの可能性があります。中断されたプロセスの他の例としては、変換でデータ・ファイルをスキップした場合(Oracleデータベース・ライター(DBWR)プロセスがデータ・ファイルをオフラインにしたときにエラーがあった場合に発生する可能性がある)や、補助ファイルのための十分な領域がない場合などがあります。ALTER TABLESPACE
文をFINISH
句を指定して再実行しない場合であっても、表領域は操作可能である必要があります。
中断された暗号化プロセスに加えて、ステータスがENCRYPTING
の期間中に表領域の暗号化プロセスが失敗することがあります。この場合、表領域を復号化して元の状態に戻すか、ALTER TABLEPSPACE
のENCRYPTION ONLINE FINISH ENCRYPT
句を使用して暗号化を再開できます。
親トピック: 既存のオンライン表領域の暗号化変換
6.10 最新サポート済アルゴリズムへの表領域のアルゴリズムの移行
すでに暗号化された表領域を再暗号化すると、以前のアルゴリズム(3DES168
など)を最新のサポート済アルゴリズムに移行できます。
親トピック: 表領域およびデータベースの暗号化変換
6.11 DBCAを使用した暗号化データベースの作成
DBCAを使用して、単一インスタンスのマルチテナント環境とOracle Data Guard環境の両方で暗号化データベースを作成できます。
- DBCAを使用した暗号化データベースの作成
DBCAを実行して暗号化データベースを作成する前に、WALLET_ROOT
ディレクトリを作成する必要があります。 - DBCAを使用した暗号化されたプライマリ・データベースからのOracle Data Guardスタンバイ・データベースの作成
DBCAを実行して暗号化されたデータベースをOracle Data Guard環境で作成する前に、ウォレットをプライマリからスタンバイ・データベースにコピーしてから、WALLET_ROOT
ディレクトリを作成する必要があります。 - DBCAによる暗号化データベースの作成後のベスト・プラクティス
DBCAで暗号化されたスタンドアロン・データベースまたはOracle Data Guardのプライマリ・データベースとスタンバイ・データベースを作成した後、透過的データ暗号化(TDE)のベスト・プラクティスを実装できます。
親トピック: 表領域およびデータベースの暗号化変換
6.11.1 DBCAを使用した暗号化データベースの作成
DBCAを実行して暗号化されたデータベースを作成する前に、WALLET_ROOT
ディレクトリを作成する必要があります。
親トピック: DBCAを使用した暗号化データベースの作成
6.11.2 DBCAを使用した暗号化プライマリ・データベースからのOracle Data Guardスタンバイ・データベースの作成
DBCAを実行して暗号化されたデータベースをOracle Data Guard環境で作成する前に、ウォレットをプライマリ・データベースからスタンバイ・データベースにコピーしてから、WALLET_ROOT
ディレクトリを作成する必要があります。
親トピック: DBCAを使用した暗号化データベースの作成
6.11.3 DBCAによる暗号化データベースの作成後のベスト・プラクティス
DBCAで暗号化されたスタンドアロン・データベースまたはOracle Data Guardのプライマリ・データベースとスタンバイ・データベースを作成した後、透過的データ暗号化(TDE)のベスト・プラクティスを実装できます。
親トピック: DBCAを使用した暗号化データベースの作成
6.12 既存のデータベースの暗号化変換
オフラインおよびオンライン両方のデータベースを暗号化できます。
- 既存のデータベースの暗号化変換について
データベース全体の暗号化変換では、Oracle提供のSYSTEM
、SYSAUX
、UNDO
およびTEMP
表領域を含むすべての表領域が暗号化されます。 - オフライン変換での既存のデータベースの暗号化
既存のデータベースをオフライン変換で暗号化する場合、Oracle管理の表領域には暗号化アルゴリズムを指定しません。 - オンライン変換での既存のデータベースの暗号化
既存のデータベースをオンライン変換で暗号化するときには、暗号化アルゴリズムを指定しません。
親トピック: 表領域およびデータベースの暗号化変換
6.12.1 既存のデータベースの暗号化変換について
データベース全体の暗号化変換では、Oracle提供のSYSTEM
、SYSAUX
、UNDO
およびTEMP
表領域を含むすべての表領域が暗号化されます。
次の点に注意してください。
-
Database Configuration Assistant (DBCA)を使用してデータベースを作成または構成する場合は、作成または構成プロセスの一部としてTDEウォレットをデータベースに作成できます。DBCAを使用してデータベースを削除すると、このデータベースにあるTDEウォレットも削除されます。重要: DBCAを使用してデータベースを削除する前に、ローカルTDEウォレットがある場合は、これらのウォレットを安全な場所にバックアップします。データベースがOracle Key Vaultを使用するように移行されている場合は、そのTDE暗号化キーはOracle Key Vaultサーバーに存在することに注意してください。Oracle Key Vaultをバックアップするのは、Oracle Key Vault管理者の責任です。
-
暗号化を実行するには、表領域暗号化変換のオフラインおよびオンライン機能を使用できます。
-
Oracle提供の表領域のどれかまたはすべてを、任意の順に暗号化できます。Oracle提供の表領域の暗号化は、ユーザー作成の表領域の暗号化に影響が及ぶことはありません。
-
Oracle提供の表領域を暗号化する際、Oracle Databaseはキーストアが閉じないようにします。
-
既存の一時表領域は暗号化できませんが、暗号化された一時表領域を作成し、その新しい暗号化された一時表領域をデフォルト一時表領域として使用するようデータベースを構成してから、古いクリアテキストの一時表領域を削除できます。
-
暗号化された表領域の機密データから生成されたメタデータ
UNDO
およびTEMP
は、すでに自動的に暗号化されています。そのため、UNDO
およびTEMP
の暗号化はオプションです。 -
データベース内のすべての表領域を暗号化するパフォーマンスの影響は、ワークロードおよびプラットフォームにより異なります。近年のCPUの多くには、内蔵のハードウェア・アクセラレーションが搭載されているため、パフォーマンスへの影響は最小限になります。
-
マルチテナント環境では、Oracle提供の表領域を含めた、プラガブル・データベース(PDB)内の表領域を暗号化できます。ただし、CDBルート内のキーストアは、PDBがキーストアを開けるように、常に開いている必要があります。キーストアが開いているかどうかのステータスは、
V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せて、確認できます。
親トピック: 既存のデータベースの暗号化変換
6.12.2 オフライン変換での既存のデータベースの暗号化
既存のデータベースをオフライン変換で暗号化する場合、Oracle管理の表領域には暗号化アルゴリズムを指定しません。
SYSTEM
、SYSAUX
およびUNDO
表領域に異なる暗号化アルゴリズムを使用(TDEマスター暗号化キーを変更)する場合は、オンライン変換を使用する必要があります。サポートされている暗号化アルゴリズムは、AES128
に加えて、AES192
とAES256
、およびARIA
、GOST
などのその他のアルゴリズムです。
ノート:
Oracle Database 23c以降では、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)復号化ライブラリは非推奨になり、GOSTおよびSEEDへの暗号化はサポートされなくなります。Oracle Database 23c以降、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)暗号化ライブラリはサポートされなくなり、削除されました。GOSTおよびSEED復号化ライブラリは非推奨です。どちらも、HP Itaniumプラットフォームでは削除されます。GOST 28147-89はロシア政府によって非推奨とされ、SEEDは韓国政府によって非推奨とされました。韓国政府が承認したTDE暗号化が必要である場合は、かわりにARIAを使用します。GOST 28147-89を使用している場合は、サポートされている別のTDEアルゴリズムを使用して、復号化および暗号化する必要があります。GOST 28147-89およびSEEDの復号化アルゴリズムはOracle Database 23cに含まれていますが、非推奨であり、GOST暗号化アルゴリズムはOracle Database 23cでサポートが終了しました。TDE暗号化にGOSTまたはSEEDを使用している場合は、Oracle Database 23cにアップグレードする前に、別のアルゴリズムで復号化および暗号化することをお薦めします。ただし、HP Itaniumプラットフォームを除き、Oracle Database 23cではGOSTおよびSEED復号化ライブラリを使用できるため、アップグレード後に復号化することもできます。
6.12.3 オンライン変換での既存のデータベースの暗号化
既存のデータベースをオンライン変換で暗号化するときには、暗号化アルゴリズムを指定しません。
ALTER TABLESPACE ENCRYPTION REKEY
SQL文を発行できます。
親トピック: 既存のデータベースの暗号化変換