キーストアおよびTDEマスター暗号化鍵の設定を変更および管理して、Oracle Databaseで使用されるシークレットを格納し、Oracle GoldenGateのシークレットをキーストアに格納できます。
内容は次のとおりです。
キーストアでは、パスワードの変更、キーストアのバックアップ、キーストアのマージ、キーストアの移動などのメンテナンス作業を実行できます。
内容は次のとおりです。
Oracle Databaseでは、パスワードベースのソフトウェア・キーストアのパスワードを簡単に変更できます。
内容は次のとおりです。
パスワードベースのソフトウェア・キーストアのパスワードは、変更(ローテーション)のみ可能です。
このパスワードは、サイトのセキュリティ・ポリシーやコンプライアンス・ガイドライン、およびその他のセキュリティ要件に従って、いつでも変更できます。パスワードを変更するコマンドの一部として、WITH BACKUP
句を指定する必要があるため、常に現在のキーストアのバックアップが作成されます。パスワードの変更操作中、暗号化や復号化などの透過的データ暗号化操作は正常に動作し続けます。
このパスワードはいつでも変更できます。このパスワードは、安全性が損なわれた可能性があると思われる場合には変更することをお薦めします。
パスワードベースのソフトウェア・キーストアのパスワードを変更するには、ADMINISTER KEY MANAGEMENT
文を使用する必要があります。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
次のSQL文を実行します。
ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD IDENTIFIED BY old_password SET new_password [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
old_password
は、変更する現在のキーストア・パスワードです。
new_password
は、キーストア用に設定する新しいパスワードです。
WITH BACKUP
は、パスワードを変更する前に、現在のキーストアのバックアップを作成します。この句を含める必要があります。
backup_identifier
は、作成されるバックアップのオプション識別子文字列を指定します。backup_identifier
は、バックアップ・ファイルの名前に追加されます。backup_identifier
は、一重引用符(' ')で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(ewallet_
time_stamp
_emp_key_pwd_change.p12
など)。
次の例は、現在のキーストアをバックアップしてから、キーストアのパスワードを変更します。
ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD IDENTIFIED BY old_password SET new_password WITH BACKUP USING 'pwd_change'; keystore altered.
ハードウェア・キーストアのパスワードを変更するには、ADMINISTER KEY MANAGEMENT
文を使用する必要があります。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
ハードウェア・キーストアを閉じます。
例:
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "psmith:password";
「ハードウェア・キーストアを閉じる」を参照してください。
ハードウェア・セキュリティ・モジュール管理インタフェースから、新しいハードウェア・セキュリティ・モジュール・パスワードを作成します。
SQL*Plusでハードウェア・キーストアを開きます。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "psmith:new_password";
「手順3: ソフトウェア・キーストアを開」を参照してください。
パスワードベースのソフトウェア・キーストアをバックアップする際、バックアップのタイプを説明するバックアップの識別子文字列をオプションで作成できます。
内容は次のとおりです。
サイトのセキュリティ・ポリシーや要件に従って、パスワードベースのソフトウェア・キーストアをバックアップする必要があります。
キーストアのバックアップには、元のキーストアに格納されているすべての鍵が含まれます。Oracle Databaseでは、バックアップ・キーストアに作成時のタイムスタンプ(UTC)の接頭辞が付けられます。識別子文字列を指定すると、その文字列がタイムスタンプとキーストア名の間に挿入されます。
バックアップ操作が完了すると、元のキーストアの鍵は「backed up」とマークされます。鍵のステータスは、V$ENCRYPTION_WALLET
データ・ディクショナリ・ビューを問い合せて確認できます。
自動ログイン・ソフトウェア・キーストアやローカル自動ログイン・ソフトウェア・キーストアはバックアップできません。ADMINISTER KEY MANAGEMENT
文での操作を使用して、新しいキーを直接それらに追加することはできません。これらのキーストア内の情報は読み取られるのみのため、バックアップは不要です。
キーストアをまだバックアップしていない場合は、TDEマスター暗号化鍵の作成時にADMINISTER KEY MANAGEMENT
文にBACKUP
句を含めることができます。これにより、キーストアがバックアップされ、TDEマスター暗号化鍵が作成されます。(手順4: ソフトウェアTDEマスター暗号化鍵の設定にこの実行方法が示されています。)
ソフトウェア・パスワード・キーストアのバックアップ・ファイル名は、パスワードベースのソフトウェア・キーストアの名前から導出されます。
Oracle Databaseでは、ソフトウェア・キーストア・パスワード・ファイル名に、ファイル作成時のタイムスタンプ(UTCフォーマット)の接頭辞が付けられます。識別子文字列を指定すると、その文字列がタイムスタンプとキーストア名の間に挿入されます。
バックアップ・キーストアのバックアップ識別子文字列を作成するには、BACKUP KEYSTORE
句を含む次の構文のADMINISTER KEY MANAGEMENT
SQL文を使用します。
ewallet_creation-time-stamp-in-UTC_user-defined-string.p12
バックアップ識別子(user_defined_string
)を作成する場合は、オペレーティング・システムのファイル命名規則に従います。たとえば、UNIXシステムでは、この設定にスペースが入らないようにします。
例4-1に、ユーザーが指定したバグ番号の文字列を使用するバックアップ・キーストアの作成方法と、そのキーストアがファイル・システムにどのように表示されるかを示します。
例4-1 バックアップ・キーストアのバックアップ識別子文字列の作成
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE USING 'BUG12966094' IDENTIFIED BY keystore_password;
結果のキーストア・ファイル:
ewallet_2013041513244657_BUG12966094.p12
V$ENCRYPTION_WALLET
ビューでは、BACKUP
列に、ADMINISTER KEY MANAGEMENT
文またはADMINISTER KEY MANAGEMENT BACKUP KEYSTORE
文のWITH BACKUP
句でキーストアのコピーが作成されているかどうかが示されます。
鍵またはシークレットを変更した場合、コピーが作成されてから鍵自体が変更されるため、行う変更は前にバックアップされたコピーには反映されません。前のキーストアには変更のコピーが存在しないため、以前にBACKUP
がYES
に設定されていた場合でも、BACKUP
列はNO
に設定されます。したがって、BACKUP
列がYES
の場合、カスタム属性タグの追加といったバックアップを必要とする操作を実行すると、BACKUP
列の値はNO
に変更されます。
パスワードベースのソフトウェア・キーストアをバックアップするには、BACKUP KEYSTORE
句を含むADMINISTER KEY MANAGEMENT
文を使用する必要があります。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
次のSQL文を実行します。
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE [USING 'backup_identifier'] IDENTIFIED BY software_keystore_password [TO 'keystore_location'];
ここでは次のように指定します。
USING
backup_identifier
は、バックアップを識別するために指定できるオプション文字列です。この識別子は、一重引用符(' ')で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(ewallet_
time-stamp
_emp_key_backup.p12
など)。
software_keystore_password
は、キーストアのパスワードです。
keystore_location
は、バックアップ・キーストアが格納されるパスです。keystore_location
を指定しない場合、バックアップは元のキーストアと同じディレクトリに作成されます。このロケーションは、一重引用符(' ')で囲みます。
次の例は、ソフトウェア・キーストアをソース・キーストアと同じロケーションにバックアップします。
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE USING 'hr.emp_keystore' IDENTIFIED BY
password TO '/etc/ORACLE/KEYSTORE/DB1/';
keystore altered.
この文を実行すると、ewallet_
identifier
.p12
ファイル(ewallet_
time-stamp
_hr.emp_keystore.p12
など)がキーストア・ロケーションに作成されます。
Oracle Databaseを使用してハードウェア・キーストアをバックアップすることはできません。
ハードウェア・キーストアの鍵をバックアップする方法の詳細は、HSMベンダーの指示を参照してください。
2つのキーストアをマージして3番目のキーストアを作成したり、1つのキーストアを既存のキーストアにマージしたり、自動ログイン・ソフトウェア・キーストアをパスワードベースのソフトウェア・キーストアにマージするなど、ソフトウェアのキーストアは様々な方法でマージできます。
内容は次のとおりです。
ソフトウェア・キーストアの任意の組合せをマージできます。ただし、マージ後のキーストアはパスワードベースのソフトウェア・キーストアにする必要があります(これによって構成キーストアとはパスワードを別にすることができます)。
マージしたキーストアを使用するには、マージ前にいずれかの構成キーストアがすでに開いていた場合でも、マージしたキーストアを作成後に明示的に開く必要があります。
2つのソース・キーストアの共通鍵が、マージしたキーストアに追加されるか上書きされるかは、ADMINISTER KEY MANAGEMENT
マージ文の記述方法に応じて異なります。たとえば、キーストア1とキーストア2をマージしてキーストア3を作成する場合、キーストア1の鍵はキーストア3に追加されます。キーストア1をキーストア2にマージする場合、キーストア2の共通鍵は上書きされません。
ADMINISTER KEY MANAGEMENT
マージ文は、使用中の構成済キーストアには影響しません。ただし、必要に応じて、マージしたキーストアを新しい構成済データベース・キーストアとして使用できます。sqlnet.ora
ファイルによって構成された場所にあるデータベースのキーストアとして新しく作成したキーストアを使用する場合、キーストアを再度開く必要があることに注意してください。
MERGE KEYSTORE
句を含むADMINISTER KEY MANAGEMENT
文を使用して、1つのソフトウェア・キーストアを他の既存のソフトウェア・キーストアにマージできます。
このタイプのマージを実行するには、2つのソフトウェア・キーストアから3つ目の新しいキーストアへのマージの手順に従いますが、次のSQL文を使用してください。
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE 'keystore1_location' [IDENTIFIED BY software_keystore1_password] INTO EXISTING KEYSTORE 'keystore2_location' IDENTIFIED BY software_keystore2_password [WITH BACKUP [USING 'backup_identifier]];
ここでは次のように指定します。
keystore1_location
は、マージ後も変更されないまま残される1つ目のキーストアのディレクトリの場所です。このパスは、一重引用符(' ')で囲みます。
IDENTIFIED BY
句は、1つ目のキーストアがパスワードベースのキーストアの場合は必要です。software_keystore1_password
は、1つ目のキーストアのパスワードです。
keystore2_location
は、1つ目のキーストアがマージされる2つ目のキーストアのディレクトリの場所です。このパスは、一重引用符(' ')で囲みます。
software_keystore2_password
は、2つ目のキーストアのパスワードです。
WITH BACKUP
を使用すると、ソフトウェア・キーストアのバックアップが作成されます。オプションでUSING
句を使用し、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は、名前付きキーストア・ファイルに付加されます(たとえば、emp_key_backup
がバックアップ識別子になっているewallet_
time-stamp
_emp_key_backup
.p12
)。オペレーティング・システムで使用されているファイル命名規則に従ってください。
マージ操作で生成されるキーストアは、常にパスワードベースのキーストアです。
自動ログイン・ソフトウェア・キーストアを既存のパスワードベースのソフトウェア・キーストアにマージできます。
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE
SQL文を使用して、自動ログイン・ソフトウェア・キーストアを既存のパスワードベースのソフトウェア・キーストアにマージします。
例4-2に、自動ログイン・ソフトウェア・キーストアをパスワードベースのソフトウェア・キーストアにマージする方法を示します。また、マージするキーストアを作成する前に、2つ目のキーストアのバックアップを作成します。
例4-2 自動ログイン・ソフトウェア・キーストアからパスワード・キーストアへのマージ
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1'
INTO EXISTING KEYSTORE '/etc/ORACLE/KEYSTORE/DB2'
IDENTIFIED BY password WITH BACKUP;
ここでは次のように指定します。
MERGE KEYSTORE
は、自動ログイン・キーストアを指定する必要があります。
EXISTING KEYSTORE
は、パスワードのキーストアを表します。
キーストア・マージ操作を直接取り消すことはできません。
キーストアを(新規作成するのではなく)既存のキーストアにマージする場合、ADMINISTER KEY MANAGEMENT
文にWITH BACKUP
句を指定して、その既存のキーストアのバックアップを作成する必要があります。後でマージを取り消す必要があると判断した場合、マージしたソフトウェア・キーストアを、バックアップしたものと置き換えることができます。
たとえば、キーストアAをキーストアBにマージするとします。WITH BACKUP
句を使用することで、マージ操作の開始前にキーストアBのバックアップを作成します。(元のキーストアAは変更されません。)マージ操作を取り消すには、キーストアBから作成したバックアップに戻ります。
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE
SQL文を使用して、マージ操作を実行します。
たとえば、既存のキーストアへのマージ操作を実行する場合、次のようにします。
ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1'
INTO EXISTING KEYSTORE '/etc/ORACLE/KEYSTORE/DB2'
IDENTIFIED BY password WITH BACKUP USING "merge1";
新しいキーストアをバックアップ・キーストア(この場合、ewallet_
time-stamp
_merge1.p12
という名前)に置き換えます。
自動ログイン・キーストアをパスワードベースのキーストアにマージするには、ADMINISTER KEY MANAGEMENT MERGE KEYSTORE
SQL文を使用します。
ソフトウェア・キーストアを新しいロケーションに移動するには、キーストアをバックアップして閉じ、sqlnet.ora
ファイルを編集してから、キーストアを新しいロケーションに物理的に移動する必要があります。
Oracle Key Vaultを使用している場合は、Key VaultがTDEマスター鍵を直接管理するTDE直接接続を構成できます。この場合、キーストアを新しいロケーションに手動で移動する必要はありません。TDE直接接続の使用の詳細は、『Oracle Key Vault管理者ガイド』を参照してください。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境で、rootまたはプラガブル・データベース(PDB)にログインします。たとえば、hrpdb
というPDBにログインするには、次のようにします。
sqlplus sec_admin@hrpdb as syskm
Enter password: password
Connected.
利用可能なPDBを検索するには、DBA_PDBS
データ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_name
コマンドを実行します。
ソフトウェア・キーストアのバックアップ・コピーを作成します。
「パスワードベースのソフトウェア・キーストアのバックアップ」を参照してください。
ソフトウェア・キーストアを閉じます。
例:
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE; -- For an auto-login software keystore ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY software_keystore_password; -- For a password-based software keystore
データベース・セッションを終了します。
たとえば、SQL*Plusにログインしている場合は、次のようにします。
EXIT
キーストアを移動する新しいロケーションを示すように、sqlnet.ora
ファイルをバックアップしてから手動で編集します。
詳細は、「手順1: sqlnet.oraファイルでのソフトウェア・キーストアの場所の設定」を参照してください。
オペレーティング・システムの移動コマンド(mv
など)を使用して、キーストアとそのすべての鍵を、新しいディレクトリの場所に移動します。
パスワードベースのソフトウェア・キーストアとハードウェア・キーストアとの間で移行できます。
内容は次のとおりです。
パスワードベースのソフトウェア・キーストアからハードウェア・キーストアへ移行することができます。
内容は次のとおりです。
Oracle Data PumpやOracle Recovery Managerなどのツールでは、ソフトウェア・キーストアを使用してエクスポートまたはバックアップされたデータに対して復号化と暗号化の操作を実行するために、古いソフトウェア・キーストアにアクセスする必要があります。
ADMINISTER KEY MANAGEMENT
SQL文を使用して、ハードウェア・キーストアとともに開くためにソフトウェア・キーストアを変換します。
ソフトウェア・キーストアのパスワードをハードウェア・キーストアのパスワードとして設定するには、次の構文を使用します。
ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD IDENTIFIED BY software_keystore_password SET "user_id:password" WITH BACKUP [USING 'backup_identifier'];
ここでは次のように指定します。
software_keystore_password
は、ソフトウェア・キーストアの作成時に使用したものと同じパスワードです。
user_id
:
password
は、HSMのパスワードと同じ新しいソフトウェア・キーストアのパスワードです。
WITH BACKUP
を使用すると、ソフトウェア・キーストアのバックアップが作成されます。オプションでUSING
句を使用し、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は、名前付きキーストア・ファイルに付加されます(たとえば、emp_key_backup
がバックアップ識別子になっているewallet_
time-stamp
_emp_key_backup
.p12
)。オペレーティング・システムで使用されているファイル命名規則に従ってください。
ソフトウェア・キーストアの自動ログイン・キーストアを作成するには、次の構文を使用します。
ADMINISTER KEY MANAGEMENT CREATE [LOCAL] AUTO_LOGIN KEYSTORE FROM KEYSTORE 'keystore_location' IDENTIFIED BY software_keystore_password;
ここでは次のように指定します。
LOCAL
では、ローカル自動ログイン・ソフトウェア・キーストアを作成できます。そうでない場合、キーストアに他のコンピュータからアクセスできるようにするときは、この句を省略します。
keystore_location
は、sqlnet.ora
ファイルに構成されているキーストアのキーストア・ディレクトリの場所へのパスです。
software_keystore_password
は、構成されているソフトウェア・キーストアの既存のパスワードです。
キーストアの移行後、必要時にソフトウェア・キーストアで作成された鍵にアクセスできるように、ソフトウェア・キーストアとハードウェア・キーストアの両方の操作を開くことができます。
ソフトウェア・キーストアをハードウェア・キーストアと一緒に開くには、ソフトウェア・キーストアのパスワードがハードウェア・キーストアと同じであることが必要です。あるいは、ソフトウェア・キーストア用に自動ログイン・キーストアを作成できます。
ソフトウェア・キーストアからハードウェア・キーストアに移行している場合は、METHOD=HSM
設定を使用するようにsqlnet.ora
ファイルを編集する必要があります。
sqlnet.ora
ファイルで次の形式を使用します。
ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=HSM)(METHOD_DATA= (DIRECTORY=path_to_keystore)))
path_to_software_keystore
は、前に構成したソフトウェア・キーストアへのパスです。ENCRYPTION_WALLET_LOCATION
パラメータにHSM
とDIRECTORY
の両方のロケーションがある場合、以前にソフトウェア・キーストアとハードウェア・キーストアの使用を切り換えたことがあり、また、将来簡単に元に戻すことができることを示します。
注意:
ENCRYPTION_WALLET_LOCATION
パラメータ設定にDIRECTORY
値が存在する場合、削除しないようにしてください。
ハードウェア・キーストアにはDIRECTORY
値は必要ありませんが、Oracle Databaseでは、この値を使用して、ハードウェア・セキュリティ・モジュールを対象に移行を行う場合にソフトウェア・キーストアを特定します。
例4-3に、sqlnet.ora
ファイルを編集して、ソフトウェア・キーストアをハードウェア・セキュリティ・モジュールベースのキーストアに(またはその逆に)設定する方法を示します。
例4-3 サンプルENCRYPTION_WALLET_LOCATIONエントリ
ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=HSM)(METHOD_DATA= (DIRECTORY=/app/wallet)))
ADMINISTER KEY MANAGEMENT
SQL文を使用して、ハードウェア・キーストアの移行を実行できます。
ソフトウェア・キーストアからハードウェア・キーストアに移行するには、ADMINISTER KEY MANAGEMENT SET KEY
SQL文でMIGRATE USING
keystore_password
句を使用して、ソフトウェア・キーストアのTDEマスター暗号化鍵で既存のTDE表キーおよび表領域暗号化鍵を復号化してから、ハードウェア・キーストアの新しく作成したTDEマスター暗号化鍵でそれらを再暗号化する必要があります。
移行の完了後、データベースを再起動したり、ハードウェア・キーストアを手動で再度開く必要はありません。移行プロセスにより、キーストアの鍵がメモリーに自動的にリロードされます。
移行のためにADMINISTER KEY MANAGEMENT
SQL文を実行する場合、次の構文を使用します。
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY IDENTIFIED BY "user_id:password" MIGRATE USING software_keystore_password [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
user_id
:
password
は、(透過的データ暗号化の構成の)手順2: ハードウェア・セキュリティ・モジュールの構成の手順3で作成したユーザーIDおよびパスワードです。この設定は二重引用符(" ")で囲み、user_id
とpassword
をコロン(:
)で区切ります。
software_keystore_password
は、ソフトウェア・キーストアの作成時に使用したものか、手順1: ハードウェア・キーストアとともに開くためにソフトウェア・キーストアを変換するで変更したものと同じパスワードです。
USING
では、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は、名前付きキーストア・ファイルに付加されます(たとえば、emp_key_backup
がバックアップ識別子になっているewallet_
time-stamp
_
emp_key_backup
.p12
)。オペレーティング・システムで使用されているファイル命名規則に従ってください。
注意:
公開鍵によって暗号化された列がデータベースに含まれている場合は、その列が復号化されてから、HSMベースの透過的データ暗号化によって生成されたAES対称鍵を使用して再暗号化されます。
ハードウェア・キーストアは、ソフトウェア・キーストアに移行できます。
内容は次のとおりです。
ハードウェア・キーストア・ソリューションからソフトウェア・キーストアの使用に切り換える場合、キーストアの逆移行を使用できます。
以前のバックアップ・ファイルがハードウェア・セキュリティ・モジュールのTDEマスター暗号化鍵に依存している場合は、切換え完了後に、ハードウェア・セキュリティ・モジュールを保持しておく必要があります。
初めにソフトウェア・キーストアからハードウェア・セキュリティ・モジュールに移行し、前に構成したTDEマスター暗号化鍵の移行の説明に従ってソフトウェア・キーストアを再構成済の場合は、HSMパスワードと同じパスワードの既存のキーストアがすでに存在します。逆移行では、このキーストアを、新しいパスワードで新しいソフトウェア・キーストアとして動作するように構成します。既存のキーストアが自動ログイン・ソフトウェア・キーストアで、その自動ログイン・キーストアのパスワードベースのソフトウェア・キーストアがある場合、パスワードベースのキーストアを使用してください。パスワードベースのキーストアを使用できない場合、自動ログイン・キーストアを新しく作成した空のパスワードベースのキーストアにマージし、その新しく作成したパスワードベースのキーストアを使用します。
既存のキーストアがない場合、ENCRYPTION_WALLET_LOCATION
パラメータを使用して、sqlnet.ora
ファイルにキーストア・ロケーションを指定する必要があります。逆移行を実行する場合、鍵が失われないように前のキーストアに移行する必要があります。
関連項目:
最初にsqlnet.ora
ファイルを編集する必要があります。
sqlnet.ora
ファイルに次の構成を設定します。
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)(METHOD_DATA=
(DIRECTORY=path_to_keystore)))
path_to_keystore
を、宛先キーストアのディレクトリの場所に置き換えます。
キーストアに対して逆移行を実行するには、SET ENCRYPTION KEY
句とREVERSE MIGRATE
句を含むADMINISTER KEY MANAGEMENT
文を使用できます。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
次のSQL文を実行します。
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY IDENTIFIED BY software_keystore_password REVERSE MIGRATE USING "user_id:password" [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
software_keystore_password
は、既存のキーストアまたは新しいキーストアのパスワードです。
user_id
:
password
は、(透過的データ暗号化の構成の)手順2: ハードウェア・セキュリティ・モジュールの構成の手順3で作成したユーザーIDおよびパスワードです。前のハードウェア・セキュリティ・モジュール・ソフトウェア・キーストアが新しいキーストアの場合、逆移行コマンドを発行する前に、user_id
:
password
と同じパスワードであることを確認する必要があります。この設定は二重引用符(" ")で囲みます。
WITH BACKUP
を使用すると、ソフトウェア・キーストアのバックアップが作成されます。オプションでUSING
句を含めることで、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は、名前付きキーストア・ファイルに付加されます(たとえば、emp_key_backup
がバックアップ識別子になっているewallet_
time-stamp
_
emp_key_backup
.p12
)。オペレーティング・システムで使用されているファイル命名規則に従ってください。
例:
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY IDENTIFIED BY password REVERSE MIGRATE USING "psmith:password" WITH BACKUP; keystore altered.
オプションで、キーストア・パスワードを変更します。
詳細は、パスワードベースのソフトウェア・キーストアのパスワードの変更を参照してください。
移行の完了後、データベースを再起動したり、ソフトウェア・キーストアを手動で再度開く必要はありません。移行プロセスにより、キーストアの鍵がメモリーに自動的にリロードされます。
以前の鍵は、暗号化されたバックアップで使用されているか、Oracle Data PumpやOracle Recovery Managerなどのツールによって使用されている可能性が高いため、逆移行の後でもハードウェア・キーストアが必要な場合があります。HSMをソフトウェア・キーストアとともに開くことができるように、ハードウェア・キーストア資格証明をキーストアにキャッシュする必要があります。HSM資格証明を移行後のキーストアに格納する方法の詳細は、自動ログイン・ハードウェア・セキュリティ・モジュールの構成を参照してください。
移行の実行後、キーストアの順序はプライマリまたはセカンダリのいずれかになります。
V$ENCRYPTION_WALLET
動的ビューのWALLET_ORDER
列は、キーストアがプライマリ(現在のTDEマスター暗号化鍵を保持)またはセカンダリ(前のTDEマスター暗号化鍵を保持)のいずれであるかを示します。WRL_TYPE
列は、キーストアのロケータのタイプを示します(sqlnet.ora
ファイルの場合のFILE
など)。2つのキーストアがまとめて構成されておらず、以前に移行を一度も実行したことがない場合、WALLET_ORDER
列にはSINGLE
が表示されます。
表4-1では、移行後のキーストアの順序の仕組みについて説明します。
表4-1 移行後のキーストア順序
実行された移行のタイプ | WRL_TYPE | WALLET_ORDER | 説明 |
---|---|---|---|
ソフトウェア・キーストアからHSMへの移行 |
|
|
HSMとソフトウェア・キーストアの両方が構成されます。TDEマスター暗号化鍵は、HSMまたはソフトウェア・キーストアのいずれかに格納できます。 TDEマスター暗号化鍵は、まずHSMで検索されます。 TDEマスター暗号化鍵がプライマリ・キーストア(HSM)にない場合、ソフトウェア・キーストアで検索されます。 すべての新しいTDEマスター暗号化鍵は、プライマリ・キーストア(この場合はHSM)に作成されます。 |
HSMからソフトウェア・キーストアへの逆移行 |
|
|
HSMとソフトウェア・キーストアの両方が構成されます。TDEマスター暗号化鍵は、HSMまたはソフトウェア・キーストアのいずれかに格納できます。 TDEマスター暗号化鍵は、まずソフトウェア・キーストアで検索されます。 TDEマスター暗号化鍵がプライマリ(ソフトウェア)キーストアに存在しない場合、HSMで検索されます。 すべての新しいTDEマスター暗号化鍵は、プライマリ・キーストア(この場合はソフトウェア・キーストア)に作成されます。 |
Oracle Key Vaultを使用して、ソフトウェアおよびハードウェアの両方のキーストアをOracle Key Vault間で移行できます。これにより、キーストアを集中管理し、必要に応じて、企業内の他のTDE対応データベースとキーストアを共有できます。
Oracle Key Vaultでは、仮想ウォレットと呼ばれるコンテナにキーストアをアップロードし、前にアップロードしたOracleキーストアの内容から新しい仮想ウォレットを作成できます。たとえば、5つの鍵を格納するキーストアを前にアップロードしたとします。これらの鍵の3つのみで構成される新しい仮想ウォレットを作成できます。次に、このキーストアを別のTDE対応データベースにダウンロードできます。このプロセスでは、元のキーストアは変更されません。
Oracle Key Vaultでは、Oracleキーストアに加えて、資格証明ファイルやJavaキーストアなどの他のセキュリティ・オブジェクトを企業全体で安全に共有できます。これにより、パスワードを忘れたり、キーストアを間違って削除したことによる鍵およびキーストアの紛失を防ぐことができます。Oracle Key Vaultは、TDE以外の製品、Oracle Real Application Security、Oracle Active Data GuardおよびOracle GoldenGateとともに使用できます。Oracle Key Vaultでは、暗号化されたデータをOracle Data PumpおよびOracle Transportable Tablespacesを使用して簡単に移動できます。
関連項目:
『Oracle Key Vault管理者ガイド』
ソフトウェアおよびハードウェア・キーストアは手動で閉じることができます。
内容は次のとおりです。
キーストアを開いた後は、データベース・インスタンスを終了するまで開いたままになります。
データベース・インスタンスを再起動すると、必要に応じて(TDEマスター暗号化鍵にアクセスする必要がある場合)自動ログイン・ソフトウェア・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアが自動的に開きます。ただし、パスワードベースのソフトウェア・キーストアおよびハードウェア・キーストアは、自動的に開きません。使用する前には手動で再度開く必要があります。
ソフトウェア・キーストアまたはハードウェア・キーストアを閉じると、データベースのすべての暗号化操作と復号化操作が無効になります。したがって、データベース・ユーザーやアプリケーションは、キーストアが再度開くまで、暗号化データに関係する操作を実行できません。
キーストアを閉じた後に再度開くと、キーストアの内容がデータベースにリロードされます。したがって、内容が変更されると(移行中など)、データベースには最新のキーストアの内容が格納されます。
キーストアが開いているか、閉じているかのステータスは、V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せて、確認できます。
キーストアにアクセスできない場合、次のデータ操作は失敗します。
暗号化列からのデータの選択(SELECT
)
暗号化列に対するデータの挿入(INSERT
)
暗号化列による表の作成(CREATE
)
暗号化された表領域の作成(CREATE
)
関連項目:
パスワードベースのソフトウェア・キーストア、自動ログイン・ソフトウェア・キーストアおよびローカル自動ログイン・ソフトウェア・キーストアを手動で閉じることができます。
アクセス時に自動的に開かれる自動ログイン・キーストアの場合、それを新しいロケーションに移動した場合に手動で閉じる必要があります。構成を自動ログイン・キーストアからパスワードベースのキーストアに変更する場合、これを行います(自動ログイン・キーストアは移動してから閉じます)。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、まずrootでキーストアを閉じる必要があります。その後、PDBのすべてのキーストアが同様に閉じられます。たとえば、rootにログインするには、次のようにします。
sqlplus sec_admin as syskm
Enter password: password
Connected.
利用可能なPDBを検索するには、DBA_PDBS
データ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_name
コマンドを実行します。
ADMINISTER KEY MANAGEMENT
SQL文を実行します。
パスワードベースのソフトウェア・キーストアの場合、次の構文を使用します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE [IDENTIFIED BY software_keystore_password] [CONTAINER = ALL | CURRENT];
ここでは次のように指定します。
software_keystore_password
は、キーストアを作成したユーザーのパスワードです。
CONTAINER
は、マルチテナント環境で使用するために用意されています。このマルチテナント・コンテナ・データベース(CDB)のすべてのPDBでキーストアを閉じる場合はALL
、現在のPDBの場合はCURRENT
を入力します。このADMINISTER KEY MANAGEMENT
文をrootで実行すると、CONTAINER
がALL
に設定されているかCURRENT
に設定されているかにかかわらず、すべてのPDBのすべてのキーストアが閉じられます。
自動ログイン・ソフトウェア・キーストアまたはローカル自動ログイン・ソフトウェア・キーストアの場合、次のSQL文を使用します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE;
この文ではパスワードを指定する必要はありません。
キーストアを閉じると、暗号化および復号化のすべての操作が無効化されます。データを暗号化または復号化しようとしたり、暗号化データにアクセスしようとすると、エラーが発生します。
関連項目:
ハードウェア・キーストアを閉じるには、SET KEYSTORE CLOSE
句を含むADMINISTER KEY MANAGEMENT
文を使用する必要があります。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
次のSQL文を実行します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "user_id:password" [CONTAINER = ALL | CURRENT];
ここでは次のように指定します。
user_id
:
password
は、ユーザーIDと、「手順2: ハードウェア・セキュリティ・モジュールを構成する」の手順3で作成されるパスワードです。この設定は二重引用符(" ")で囲み、user_id
とpassword
をコロン(:
)で区切ります。
CONTAINER
は、マルチテナント環境で使用するために用意されています。このCDBのすべてのPDBでキーストアを閉じる場合はALL
、現在のPDBの場合はCURRENT
を入力します。このADMINISTER KEY MANAGEMENT
文をrootで実行すると、CONTAINER
がALL
に設定されているかCURRENT
に設定されているかにかかわらず、すべてのPDBのすべてのキーストアが閉じられます。
例:
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "psmith:password";
関連項目:
自動ストレージ管理(ASM)ディスク・グループにソフトウェア・キーストアを格納できます。
sqlnet.ora
ファイルを編集して、ENCRYPTION_WALLET_LOCATION
設定でDIRECTORY
設定を構成するときに、ASMファイル命名規則を使用して指定されたASMディスク・グループの場所を使用します。つまり、ASMファイル名用のプラス記号(+
)表記法を使用する必要があります。
例:
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)(METHOD_DATA=
(DIRECTORY=+disk1/mydb/wallet)))
通常のファイル・システムとASMファイル・システムの間でソフトウェア・キーストアを移動またはマージする必要がある場合は、「ソフトウェア・キーストアのマージ」で説明するものと同じキーストア・マージ文を使用できます。
ASM環境でキーストアを管理するには、ASMCMD
ユーティリティを使用します。
関連項目:
ASMCMD
ユーティリティの使用の詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。
ソフトウェア・キーストアの場合、TDEマスター暗号化鍵がないと暗号化されたデータにアクセスできません。
TDEマスター暗号化鍵はキーストアに格納されるため、ソフトウェア・キーストアを安全な場所に定期的にバックアップすることをお薦めします。新しいTDEマスター暗号化鍵を設定するか、キーストアへの書込みを行う操作を実行するたびに、キーストアのバックアップ・コピーを作成する必要があります。
ソフトウェア・キーストアを暗号化データと同じ場所にバックアップしないでください。ソフトウェア・キーストアは別にバックアップします。自動ログイン・キーストアを使用している場合は、開くときにパスワードが要求されないため、特に注意してください。バックアップ・テープの紛失に備えて、悪意のあるユーザーが暗号化データとキーストアの両方を取得できないようにすることが大切です。
Oracle Recovery Manager (Oracle RMAN)によるデータベース・バックアップでは、ソフトウェア・キーストアはバックアップされません。Oracle Secure Backupなどのメディア・マネージャをOracle RMANと併用している場合は、Oracle Secure Backupによって、自動オープン・キーストア(cwallet.sso
ファイル)がバックアップ対象から自動的に除外されます。ただし、暗号化キーストア(ewallet.p12
ファイル)が自動的に除外されることはありません。次のexclude
データ・セット文をOracle Secure Backup構成に追加することをお薦めします。
exclude name *.p12
この設定は、暗号化キーストアをバックアップ・セットから除外するようにOracle Secure Backupに指定します。
TDEマスター暗号化鍵を格納しているソフトウェア・キーストアを喪失した場合は、キーストアのバックアップを適切な場所にコピーすることで、暗号化データへのアクセスをリストアできます。TDEマスター暗号化鍵を最後に再設定した後に、リストアしたキーストアをアーカイブした場合、追加アクションは必要はありません。
リストアしたソフトウェア・キーストアに最新のTDEマスター暗号化鍵が含まれていない場合、データベースの状態をTDEマスター暗号化鍵が再設定された時点までロールバックすることで、その時点までの古いデータをリカバリできます。TDEマスター暗号化鍵の再設定後に暗号化列に対して行われた変更はすべて失われます。
関連項目:
データベースのリカバリ方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
キーストアは、特に透過的データ暗号化を構成した後およびキーストアが使用されているときには、削除しないことをお薦めします。
キーストアが使用中かどうかは、キーストアを開いた後にV$ENCRYPTION_WALLET
ビューのWRL_PARAMETER
列を問い合せることで確認できます。
キーストアを削除してはいけない理由は、キーストアには、データベースで使用されるすべての鍵のリストが格納されているためです。キーストアを削除するとそれらの鍵が削除され、暗号化データが失われてしまう可能性があります。キーストアを削除すると、Oracle Databaseの通常の機能も妨げられる可能性があります。キーストアにあるTDEマスター暗号化鍵は、オフライン化された表領域、Oracle Recovery Manager、Oracle Secure Backupといった他のOracle Database機能にも使用されるため、データベース内のすべてのデータを復号化済の場合でもキーストアを削除しないようにしてください。
キーストアをハードウェア・セキュリティ・モジュールに移行した後であっても、元のキーストアは削除しないでください。元のキーストアにある鍵は、たとえば、オフラインで暗号化された表領域をリカバリする際など、後で必要になります。暗号化されていないオンラインのデータがない場合であっても、鍵はまだ使用されている場合があります。
ソフトウェア自動ログイン(または自動ログイン・ローカル)・キーストアの場合は例外です。このタイプのキーストアを使用しない場合は、安全なディレクトリに移動するのが理想です。自動ログイン・キーストアは、それが特定のパスワードベースのソフトウェア・キーストアに由来し、そのキーストアを利用できることがわかっている場合のみ、削除してください。キーストアは、利用可能で既知である必要があります。
TDEマスター暗号化鍵は、いくつかの方法で管理できます。
内容は次のとおりです。
後でアクティブ化するTDEマスター暗号化鍵を作成することができます。
内容は次のとおりです。
ADMINISTER KEY MANAGEMENT
文のCREATE KEY
句によって、後でアクティブ化できるTDEマスター暗号化鍵を作成できます。
その後、その鍵を同じデータベースでアクティブ化したり、別のデータベースにエクスポートしてそこでアクティブ化できます。
このTDEマスター暗号化鍵の作成方法は、マルチテナント環境でTDEマスター暗号化鍵を再作成する必要がある場合に便利です。CREATE KEY
句では、単一のSQL文を使用して、マルチテナント環境内のすべてのPDBに新しいTDEマスター暗号化鍵を作成できます。新しいTDEマスター暗号化鍵の作成時間は、現在使用中のTDEマスター暗号化鍵をアクティブ化するよりも遅くなります。そのため、最新の作成済TDEマスター暗号化鍵をできるだけ早くアクティブ化するようにすべてのPDBに注意を喚起するために、この作成時間を使用できます。
後で使用するTDEマスター暗号化鍵を作成する前に、キーストアが開かれている必要があります。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
キーストアが開いていることを確認します。
V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せると、キーストアが開いているかどうかを確認できます。キーストアを開く必要があることが判明した場合は、次の項を参照してください。
次のSQL文を実行します。
ADMINISTER KEY MANAGEMENT CREATE KEY [USING TAG 'tag'] IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']] [CONTAINER = (ALL|CURRENT)];
ここでは次のように指定します。
tag
は、定義する関連の属性および情報です。この設定は一重引用符(' ')で囲みます。
keystore_password
は、元のキーストア作成時に使用した必須のキーストア・パスワードです。大文字と小文字が区別されます。
WITH BACKUP
は、鍵と同じ場所(V$ENCRYPTION_WALLET
ビューのWRL_PARAMETER
列で識別されます)にTDEマスター暗号化鍵をバックアップします。すべてのデータベース・インスタンスの鍵の場所を確認するには、GV$ENCRYPTION_WALLET
ビューを問い合せます。
パスワードベースのソフトウェア・キーストアをバックアップする必要があります。自動ログイン・ソフトウェア・キーストアやローカル自動ログイン・ソフトウェア・キーストアをバックアップする必要はありません。オプションで、USING
backup_identifier
句を含めることで、バックアップの説明を追加できます。backup_identifier
は、一重引用符(' ')で囲みます。
CONTAINER
は、マルチテナント環境で使用するために用意されています。このCDBのすべてのPDBで暗号化鍵を設定する場合はALL
、現在のPDBの場合はCURRENT
を入力します。
必要に応じて、TDEマスター暗号化鍵をアクティブ化します。
TDEマスター暗号化鍵のアクティブ化を参照してください。
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG
文を使用して、1つのデータベースにTDEマスター暗号化鍵を作成できます。
例4-4に、1つのデータベースにTDEマスター暗号化鍵を作成する方法を示します。この文を実行すると、タグ定義で指定したTDEマスター暗号化鍵が、そのデータベースのキーストアに作成されます。新しく作成した鍵の識別子については、V$ENCRYPTION_KEYS
ビューのTAG
列を問い合せることができます。最も最近作成された鍵(この文で作成した鍵)を確認するには、CREATION_TIME
列を問い合せます。この鍵は、必要に応じて別のデータベースにエクスポートすることや、TDEマスター暗号化鍵のアクティブ化の説明に従って後からローカルでアクティブ化できます。
例4-4 1つのデータベースでのTDEマスター暗号化鍵の作成
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG
'source:admin@source;target:db1@target'
IDENTIFIED BY password WITH BACKUP;
keystore altered.
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG SQL文では、すべてのPDBにTDEマスター暗号化鍵を作成します。
例4-5に、マルチテナント環境のすべてのPDBにTDEマスター暗号化鍵を作成する方法を示します。この文を実行すると、TDEマスター暗号化鍵が各PDBに作成されます。それらの鍵の識別子は次のように確認できます。
PDBにログインして、V$ENCRYPTION_KEYS
ビューのTAG
列を問い合せます。
rootでログインして、GV$ENCRYPTION_KEYS
ビューのINST_ID
およびTAG
列を問い合せます。
また、最も最近作成された鍵(この文で作成した鍵)を確認するには、それらのビューのCREATION_TIME
列を確認します。鍵の作成後、各PDBで鍵を個々にアクティブ化できます。
例4-5 すべてのPDBでのTDEマスター暗号化鍵の作成
ADMINISTER KEY MANAGEMENT CREATE KEY USING TAG
'scope:all pdbs;description:Create Key for ALL PDBS'
IDENTIFIED BY password WITH BACKUP CONTAINER=ALL;
keystore altered.
TDEマスター暗号化鍵はアクティブ化すると、使用できます。
内容は次のとおりです。
ADMINSTER KEY MANAGEMENT
のUSE KEY
句を使用することで、以前に作成済またはインポート済のTDEマスター暗号化鍵をアクティブ化できます。
鍵をアクティブ化すると、使用できるようになります。鍵を使用して、すべての列の鍵とすべての表領域暗号化鍵を保護できます。ロジカル・スタンバイ・データベースをデプロイしている場合、TDEマスター暗号化鍵を再作成後にエクスポートしてから、スタンバイ・データベースにインポートする必要があります。プライマリ・データベースとスタンバイ・データベースの両方でTDEマスター暗号化鍵を使用するように選択できます。これを行うには、TDEマスター暗号化鍵を、ロジカル・スタンバイ・データベースへのインポート後にアクティブ化する必要があります。
TDEマスター暗号化鍵をアクティブ化するには、キーストアを開き、USE KEY
句を含むADMINISTER KEY MANAGEMENT
を使用する必要があります。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
キーストアが開いていることを確認します。
V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せると、キーストアが開いているかどうかを確認できます。キーストアを開く必要があることが判明した場合は、次の項を参照してください。
V$ENCRYPTION_KEYS
ビューのKEY_ID
列を問い合せて、鍵の識別子を確認します。
例:
SELECT KEY_ID FROM V$ENCRYPTION_KEYS; KEY_ID ---------------------------------------------------- ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
次のSQL文を実行します。
ADMINISTER KEY MANAGEMENT USE KEY 'key_identifier' [USING TAG 'tag'] IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
key_identifier
は、V$ENCRYPTION_KEYS
ビューのKEY_ID
列を問い合せて確認する鍵の識別子です。この設定は一重引用符(' ')で囲みます。
tag
は、定義する関連の属性および情報です。この設定は一重引用符(' ')で囲みます。
keystore_password
は、元のキーストア作成時に使用した必須のキーストア・パスワードです。
WITH BACKUP
は、鍵と同じ場所(V$ENCRYPTION_WALLET
ビューのWRL_PARAMETER
列で識別されます)にTDEマスター暗号化鍵をバックアップします。すべてのデータベース・インスタンスの鍵の場所を確認するには、GV$ENCRYPTION_WALLET
ビューを問い合せます。
パスワードベースのソフトウェア・キーストアをバックアップする必要があります。自動ログイン・ソフトウェア・キーストアやローカル自動ログイン・ソフトウェア・キーストアをバックアップする必要はありません。オプションで、USING
backup_identifier
句を含めることで、バックアップの説明を追加できます。backup_identifier
は、一重引用符(' ')で囲みます。
CONTAINER
は、マルチテナント環境で使用するために用意されています。このCDBのすべてのPDBで暗号化鍵を設定する場合はALL
、現在のPDBの場合はCURRENT
を入力します。
ADMINISTER KEY MANAGEMENT SQL文を使用して、TDEマスター暗号化鍵をアクティブ化できます。
例4-6に、以前にインポート済のTDEマスター暗号化鍵をアクティブ化してそのタグを更新する方法を示します。この鍵は、現在のデータベースのタイムスタンプとタイムゾーンでアクティブ化されます。
例4-6 TDEマスター暗号化鍵のアクティブ化
ADMINISTER KEY MANAGEMENT USE KEY
'ARaHD762tUkkvyLgPzAi6hMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
USING TAG 'quarter:second;description:Activate Key on standby'
IDENTIFIED BY password WITH BACKUP;
keystore altered.
マスター暗号化鍵の属性には、TDEマスター暗号化鍵についての詳細情報が含まれます。
次のタイプの情報が含まれます。
鍵のタイムスタンプ情報: 通常、内部セキュリティ・ポリシーおよびコンプライアンス・ポリシーによって、鍵のローテーション頻度が決まります。ライフタイムの終わりに達したら鍵を期限切れにして、新しい鍵を生成する必要があります。鍵の作成時間やアクティブ化時間などのタイムスタンプ属性は、鍵の古さを正確に判断して鍵を自動生成するために役立ちます。
V$ENCRYPTION_KEYS
ビューには、CREATION_TIME
やACTIVATION_TIME
などの列が含まれます。V$ENCRYPTION_KEYS
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
鍵の所有者情報: 鍵の所有者属性は、鍵を作成またはアクティブ化したユーザーを判断するために役立ちます。これらの属性は、セキュリティ、監査、および追跡において重要な場合があります。また、鍵の所有者属性には、鍵がスタンドアロンTDE操作に使用されるか、マルチテナント環境で使用されるかといった、鍵の使用情報が含まれます。
V$ENCRYPTION_KEYS
ビューには、CREATOR、CREATOR_ID、USER、USER_ID、
KEY_USE
などの列が含まれます。
鍵ソース情報: 多くの場合、鍵は、インポート/エクスポート操作やData Guard関連の操作のためにデータベース間で移動する必要があります。鍵ソース属性によって、それぞれの鍵の起点を追跡できます。鍵がローカルで作成されたかインポートされたか、および鍵を作成したデータベースのデータベース名とインスタンス番号を追跡できます。マルチテナント環境では、キーが作成されたPDBを追跡できます。
V$ENCRYPTION_KEYS
ビューには、CREATOR_DBNAME、CREATOR_DBID、CREATOR_INSTANCE_NAME、CREATOR_INSTANCE_NUMBER、CREATOR_PDBNAME
などの列が含まれます。
鍵の使用情報: 鍵の使用情報によって、鍵が使用されているデータベースまたはPDBが決まります。また、鍵がアクティブに使用されているかどうかを判断するために役立ちます。
V$ENCRYPTION_KEYS
ビューには、ACTIVATING_DBNAME、ACTIVATING_DBID、ACTIVATING_INSTANCE_NAME、ACTIVATING_PDBNAME
などの列が含まれます。
ユーザー定義情報およびその他の情報: 鍵を作成するとき、TAG
オプションを使用して情報を関連付けることができます。各鍵には、バックアップされたかどうかなどの重要な情報が含まれます。
V$ENCRYPTION_KEYS
ビューには、KEY_ID、TAG
などの列と、BACKED_UP
などのその他の列が含まれます。
使用中のTDEマスター暗号化鍵は、データベースで一番最近アクティブ化された鍵です。
マルチテナント環境で、PDBで使用されているマスター鍵は、そのPDB用に最も最近アクティブ化されたものになります。
マスター鍵を検出するには、V$ENCRYPTION_KEYS
動的ビューを問い合せます。
CDB以外で使用中のマスター鍵を検出する場合:
SELECT KEY_ID FROM V$ENCRYPTION_KEYS WHERE ACTIVATION_TIME = (SELECT MAX(ACTIVATION_TIME) FROM V$ENCRYPTION_KEYS WHERE ACTIVATING_DBID = (SELECT DBID FROM V$DATABASE));
CDBで使用中のマスター鍵を検出する場合:
SELECT KEY_ID FROM V$ENCRYPTION_KEYS WHERE ACTIVATION_TIME = (SELECT MAX(ACTIVATION_TIME) FROM V$ENCRYPTION_KEYS WHERE ACTIVATING_PDBID = SYS_CONTEXT('USERENV', 'CON_ID'));
属性タグにより、特定の端末IDへのアクセスなど、ユーザーが実行する特定のアクティビティを監視できます。
デフォルトでは、Oracle Databaseには、作成時間やTDEマスター暗号化鍵が使用されるデータベースなど、作成されるTDEマスター暗号化鍵の様々な特性を説明する属性セットが定義されます。これらの属性は、V$ENCRYPTION_KEY
動的ビューによって取得されます。
V$ENCRYPTION_KEYS
動的ビューのTAG
列で取得可能なカスタム属性を作成できます。これにより、暗号化鍵を操作するユーザーなど、監視したい動作を定義できます。タグには、特定の端末のセッションIDなど、複数の属性を含めることができます。
カスタム属性タグを作成するには、ADMINISTER KEY MANAGEMENT
文のSET TAG
句を使用する必要があります。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
必要に応じて、V$ENCRYPTION_KEY
動的ビューのTAG
列を問い合せて、TDEマスター暗号化鍵の既存のタグのリストを確認します。
TDEマスター暗号化鍵の新しいタグを作成すると、そのTDEマスター暗号化鍵の既存のタグは上書きされます。
次のようにタグを作成します。
ADMINISTER KEY MANAGEMENT SET TAG 'tag' FOR 'master_key_identifier' IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します
tag
は、定義する関連の属性または情報です。この情報は、一重引用符(' ')で囲みます。
master_key_identifier
は、tag
が設定されるTDEマスター暗号化鍵を識別します。TDEマスター暗号化鍵識別子のリストを確認するには、V$ENCRYPTION_KEYS
動的ビューのKEY_ID
列を問い合せます。
keystore_password
は、キーストアの作成に使用されたパスワードです。
backup_identifier
は、タグの値を定義します。この設定は一重引用符(' ')で囲み、それぞれの値をコロンで区切ります。
たとえば、2つの値(1番目は特定のセッションID、2番目は特定の端末IDを取得)を使用するタグを作成するには、次のようにします。
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY USING TAG
'sessionid=3205062574:terminal=xcvt'
IDENTIFIED BY keystore_password WITH BACKUP;
keystore altered.
セッションID (3205062574
)と端末ID (xcvt
)はどちらも、SYS_CONTEXT
関数でUSERENV
ネームスペースを使用するか、USERENV
関数を使用することで、値を導出できます。SYS_CONTEXT
関数のUSERENV
ネームスペースの事前定義パラメータの完全なリストについては、Oracle Database SQL言語リファレンスを参照してください。
TDEマスター暗号化鍵のタグを作成すると、その名前がそのTDEマスター暗号化鍵のV$ENCRYPTION_KEYS
ビューのTAG
列に表示されます。シークレットのタグを作成すると、そのタグは、V$CLIENT_SECRETS
ビューのSECRET_TAG
列に表示されます。タグでシークレットを作成した場合、そのタグはV$CLIENT_SECRETS
ビューのSECRET_TAG
列に表示されます。
関連項目:
シークレット作成の詳細は、キーストアへのOracle GoldenGateのシークレットの格納を参照してください。
ソフトウェア・キーストアとハードウェア・キーストアの両方の、TDEマスター暗号化鍵を設定および再設定できます。
内容は次のとおりです。
パスワードベースのソフトウェア・キーストアとハードウェア・キーストアの両方で、TDEマスター暗号化鍵を設定およびローテーションできます。
TDEマスター暗号化鍵は、外部セキュリティ・モジュール(キーストア)に格納され、TDE表キーおよび表領域暗号化鍵の保護に使用されます。デフォルトでは、TDEマスター暗号化鍵は、透過的データ暗号化(TDE)によって作成されるシステム生成のランダム値です。
TDEマスター暗号化鍵を設定または再設定(REKEY
)するには、ADMINISTER KEY MANAGEMENT
文を使用します。マスター暗号化鍵を設定すると、TDEは有効とみなされ、無効にすることはできません。
データベースの列または表領域を暗号化または復号化するには、TDEマスター暗号化鍵を事前に生成しておく必要があります。Oracle Databaseでは、TDE列暗号化とTDE表領域暗号化の両方で同じTDEマスター暗号化鍵が使用されます。次の各項では、基本的なTDEマスター暗号化鍵の作成方法について説明します。
ソフトウェア・キーストアのマスター暗号化鍵: 手順4: ソフトウェアTDEマスター暗号化鍵の設定
ハードウェア・キーストアのマスター暗号化鍵: 手順4: ハードウェア・キーストアのTDEマスター暗号化鍵の設定
ADMINISTER KEY MANAGEMENT
文を使用して、TDEマスター暗号化鍵を作成してバックアップし、その鍵にタグを適用できます。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境で、rootまたはPDBにログインします。例:
sqlplus sec_admin@hrpdb as syskm
Enter password: password
Connected.
利用可能なPDBを検索するには、DBA_PDBS
データ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_name
コマンドを実行します。
次のSQL文を実行します。
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY [USING TAG 'tag'] IDENTIFIED BY keystore_password WITH BACKUP [USING 'backup_identifier'] [CONTAINER = ALL | CURRENT];
ここでは次のように指定します。
tag
は、作成するタグです。このタグは、一重引用符(' ')で囲みます。(タグの詳細は、レポート用のTDEマスター暗号化鍵のカスタム属性の作成を参照してください。)
keystore_password
は、software_keystore_password
またはuser_id:password
のいずれかです。user_id
:
password
設定は、手順2: ハードウェア・セキュリティ・モジュールの構成の手順3で作成したハードウェア・キーストアのユーザーIDとパスワードです。ソフトウェア・パスワードと同様に、大/小文字が区別されます。パスワード文字列は、二重引用符(" ")で囲む必要があります。user_id
とpassword
をコロン(:
)で区切ります。
WITH BACKUP
は、鍵と同じ場所(V$ENCRYPTION_WALLET
ビューのWRL_PARAMETER
列で識別されます)にTDEマスター暗号化鍵をバックアップします。すべてのデータベース・インスタンスのWRL_PARAMETER
値を見つけるには、GV$ENCRYPTION_WALLET
ビューを問い合せます。
パスワードベースのソフトウェア・キーストアをバックアップする必要があります。自動ログイン・ソフトウェア・キーストアやローカル自動ログイン・ソフトウェア・キーストアの場合、使用する必要はありません。オプションで、USING
backup_identifier
句を含めることで、バックアップの説明を追加できます。この識別子は、一重引用符(' ')で囲みます。
CONTAINER
は、マルチテナント環境で使用するために用意されています。このCDBのすべてのPDBで暗号化鍵を設定する場合はALL
、現在のPDBの場合はCURRENT
を入力します。
例:
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY USING TAG 'backups"
IDENTIFIED BY password WITH BACKUP USING 'hr.emp_key_backup';
keystore altered.
Oracle Databaseでは、sqlnet.ora
ファイルのENCRYPTION_WALLET_LOCATION
パラメータによって指定されているキーストア・ロケーションにあるキーストアを使用して、TDEマスター暗号化鍵を格納します。sqlnet.ora
ファイルのENCRYPTION_WALLET_LOCATION
パラメータの動作の詳細は、「sqlnet.oraファイルにおけるキーストア・ロケーションについて」を参照してください。
Oracle Databaseでは、TDE列暗号化とTDE表領域暗号化の両方で統合されたマスター暗号化鍵が使用されます。
TDE列暗号化用にTDEマスター暗号化鍵をローテーション(キー更新とも呼ぶ)すると、TDE表領域暗号化用のマスター暗号化鍵もローテーションされます。マスター暗号化鍵のローテーションは、マスター暗号化鍵の安全性が損なわれた場合、または組織のセキュリティ・ポリシーに従う場合にのみ実行します。このプロセスによって、前のTDEマスター暗号化鍵は非アクティブ化されます。
TDEマスター暗号化鍵を変更したり、自動ログイン・キーストアのTDEマスター暗号化鍵をローテーションすることはできません。自動ログイン・キーストアにはパスワードがないため、管理者または権限のあるユーザーは、セキュリティ担当者に知らせずに鍵を変更できます。ただし、自動ログイン・キーストアとパスワードベースのキーストアの両方が(sqlnet.ora
ファイルで設定する)構成されたロケーションに存在する場合、TDEマスター暗号化鍵をローテーションすると、自動ログイン・キーストアとパスワードベースのキーストアの両方にTDEマスター暗号化鍵が追加されます。自動ログイン・キーストアが、パスワードベースのキーストアとは異なるロケーションで使用中の場合、自動ログイン・キーストアを再作成する必要があります。
注意:
自動ログイン・キーストアに新しい情報を個別に追加することはできません。
ADMINISTER KEY MANAGEMENT
文を使用して、TDEマスター暗号化鍵をローテーション(キー更新とも呼ぶ)できます。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境で、rootまたはPDBにログインします。たとえば、hrpdb
というPDBにログインするには、次のようにします。
sqlplus sec_admin@hrpdb as syskm
Enter password: password
Connected.
利用可能なPDBを検索するには、DBA_PDBS
データ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_name
コマンドを実行します。
キーストアが開いていることを確認します。
V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せて、キーストアが開いているかどうかを確認します。キーストアが閉じている場合、開く方法の詳細は、次の項を参照してください。
自動ログインを有効化したキーストアのTDEマスター暗号化鍵をローテーションする場合、.sso
ファイルによって識別される自動ログイン・キーストアと.p12
ファイルによって識別される暗号化キーストアの両方が存在することを確認する必要があります。
これらのファイルのロケーションは、V$ENCRYPTION_WALLET
ビューのWRL_PARAMETER
列を問い合せることで確認できます。すべてのデータベース・インスタンスのWRL_PARAMETER
値を見つけるには、GV$ENCRYPTION_WALLET
ビューを問い合せます。
次の文を使用して、TDEマスター暗号化鍵をローテーションします。
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY [USING TAG 'tag'] IDENTIFIED BY keystore_password WITH BACKUP [USING 'backup_identifier'] [CONTAINER = ALL | CURRENT];
ここでは次のように指定します。
tag
は、定義する関連の属性および情報です。この設定は一重引用符(' ')で囲みます。
keystore_password
は、手順2: ソフトウェア・キーストアを作成するでキーストア作成時に作成した必須のキーストア・パスワードです。
WITH BACKUP
を使用すると、キーストアのバックアップが作成されます。パスワードベースのキーストアおよびハードウェア・キーストアの場合、このオプションを使用する必要があります。オプションでUSING
句を使用し、バックアップの簡単な説明を追加できます。この説明は一重引用符(' ')で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(ewallet_
time-stamp
_emp_key_backup.p12
など)。オペレーティング・システムで使用されているファイル命名規則に従ってください。
CONTAINER
は、マルチテナント環境で使用するために用意されています。このCDBのすべてのPDBでキーストアを開くには、ALL
を入力するか、現在のPDBでキーストアを開くには、CURRENT
を入力します。
例:
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password WITH BACKUP USING 'emp_key_backup';
keystore altered.
セキュリティを強化し、コンプライアンス規制を満たすために、定期的にTDEマスター暗号化鍵をローテーションすることをお薦めします。このプロセスでは、前のTDEマスター暗号化鍵を非アクティブ化し、新しいTDEマスター暗号化鍵を作成してアクティブ化します。最近作成された鍵を確認するには、V$ENCRYPTION_KEYS
ビューのCREATION_TIME
列を問い合せます。最近アクティブ化された鍵を確認するには、V$ENCRYPTION_KEYS
ビューのACTIVATION_TIME
列を問い合せます。
TDEマスター暗号化鍵は、その他のOracle機能(マルチテナント環境やOracle Data Guardなど)のニーズを満たすために、様々な方法でエクスポートおよびインポートできます。
内容は次のとおりです。
Oracle Databaseには、トランスポータブル表領域などの機能があり、Oracle Data Pumpでは、データベース間で暗号化される可能性のあるデータが移動されます。
さらに、CDBにはプラグインまたはアンプラグ可能なPDBが含まれます。これらは、TDEマスター暗号化鍵のエクスポートとインポートによってソース・キーストアとターゲット・キーストア間でそれらを移動することを選択できる一般的なシナリオです。Data Guard (ロジカル・スタンバイ)では、プライマリ・データベースのキーストアをスタンバイ・データベースにコピーする必要があります。プライマリ・データベースのキーストアをスタンバイ・データベースとマージするかわりに、使用中のTDEマスター暗号化鍵をエクスポートした後でスタンバイ・データベースにインポートできます。暗号化されているトランスポータブル表領域をデータベース間で移動するには、ソース・データベースのTDEマスター暗号化鍵をエクスポートしてから、ターゲット・データベースにインポートする必要があります。
ADMINISTER KEY MANAGEMENT EXPORT
を使用して、キーストアからTDEマスター暗号化鍵をエクスポートし、その後、別のキーストアにインポートできます。
TDEマスター暗号化鍵は、鍵識別子および鍵属性とともにエクスポートされます。エクスポートされる鍵は、エクスポート・ファイルのパスワード(シークレット)で保護されます。
エクスポートするTDEマスター暗号化鍵を指定するには、ADMINSITER KEY MANAGENT EXPORT
文のWITH IDENTIFIER
句を使用します。TDEマスター暗号化鍵をエクスポートするには、それらの鍵識別子をカンマ区切りリストとして指定するか、鍵識別子を列挙する問合せを指定します。Oracle Databaseでは、定義者の権限ではなく現在のユーザーの権限内で鍵識別子を特定する問合せが実行されることに注意してください。
WITH IDENTIFER
句を省略すると、データベースのすべてのTDEマスター暗号化鍵がエクスポートされます。
統合データベースでは、PDBのアンプラグのためにPDB内から鍵をエクスポートできます。このシナリオでは、PDBではなくrootでのみWITH IDENTIFIER
句を使用できます。PDBで鍵をエクスポートする方法の詳細は、PDB向けのTDEマスター暗号化鍵のエクスポートおよびインポートを参照してください。
TDEマスター暗号化鍵のセットをエクスポートするには:
関連項目:
マルチテナント環境でこの文を使用する例の詳細は、PDB向けのTDEマスター暗号化鍵のエクスポートおよびインポートを参照してください
EXPORT [ENCRYPTION] KEYS WITH SECRET
句を含むADMINISTER KEY MANAGEMENT
文によって、TDEマスター暗号化鍵をエクスポートします。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。例:
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
必要に応じて、キーストアを開きます。
キーストアを開く方法の詳細は、手順3: ソフトウェア・キーストアを開くを参照してください。
次のSQL文を実行して、TDEマスター暗号化鍵のセットをエクスポートします。
ADMINISTER KEY MANAGEMENT EXPORT [ENCRYPTION] KEYS WITH SECRET "export_secret" TO 'file_path' IDENTIFIED BY software_keystore_password [WITH IDENTIFIER IN 'key_id1', 'key_id2', 'key_idn' | (SQL_query)];
ここでは次のように指定します。
export_secret
は、エクスポートする鍵が含まれるエクスポート・ファイルを暗号化するために指定できるパスワードです。このシークレットは、二重引用符(" ")で囲むか、シークレットにスペースが使われていない場合は引用符を省略できます。
file_path
は、鍵のエクスポート先ファイルの完全パスと名前です。このパスは、一重引用符(' ')で囲みます。
software_keystore_password
は、鍵が含まれるキーストアのパスワードです。
key_id1
、key_id2
、key_idn
は、エクスポートするTDEマスター暗号化鍵の1つ以上のTDEマスター暗号化鍵識別子の文字列です。各鍵識別子はカンマで区切り、それぞれの鍵識別子を一重引用符(' ')で囲みます。TDEマスター暗号化鍵識別子のリストを確認するには、V$ENCRYPTION_KEYS
動的ビューのKEY_ID
列を問い合せます。
SQL_query
は、TDEマスター暗号化鍵識別子のリストをフェッチする問合せです。これによって、通常はTDEマスター暗号化鍵識別子が含まれる1つの列のみが返されます。この問合せは、現在のユーザー権限で実行されます。
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS
文によって、副問合せを使用してTDEマスター暗号化鍵をエクスポートできます。
例4-8に、識別子が問合せによってフェッチされるTDEマスター暗号化鍵をexport.exp
というファイルにエクスポートする方法を示します。ファイル内のTDEマスター暗号化鍵は、シークレットmy_secret
を使用して暗号化されます。SELECT
文で、エクスポートするTDEマスター暗号化鍵の識別子を検出します。
マルチテナント環境では、PDB内で鍵をインポートまたはエクスポートしようとする場合、WITH IDENTIFIER
句はサポートされません。これはrootでのみ許可されます。PDBで鍵をエクスポートする方法の詳細は、PDB向けのTDEマスター暗号化鍵のエクスポートおよびインポートを参照してください。
例4-7 ファイルへのTDEマスター暗号化鍵識別子のリストのエクスポート
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "my_secret"
TO '/TDE/export.exp' IDENTIFIED BY password
WITH IDENTIFIER IN 'AdoxnJ0uH08cv7xkz83ovwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
'AW5z3CoyKE/yv3cNT5CWCXUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
keystore altered.
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET
文によって、TDEマスター暗号化鍵識別子のリストをファイルにエクスポートできます。
例4-7に、リストとして識別子を指定することでTDEマスター暗号化鍵をexport.exp
というファイルにエクスポートする方法を示します。ファイル内のマスター暗号化鍵は、シークレットmy_secret
を使用して暗号化されます。エクスポートされるTDEマスター暗号化キーの識別子は、カンマ区切りのリストとして提供されます。
例4-8 副問合せを使用したTDEマスター暗号化鍵識別子のエクスポート
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "my_secret"
TO '/etc/TDE/export.exp' IDENTIFIED BY password
WITH IDENTIFIER IN (SELECT KEY_ID FROM V$ENCRYPTION_KEYS WHERE ROWNUM <3);
keystore altered.
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS
SQL文によって、データベースのすべてのTDEマスター暗号化鍵をエクスポートできます。
例4-9に、データベースのすべてのTDEマスター暗号化鍵をexport.exp
というファイルにエクスポートする方法を示します。ファイル内のTDEマスター暗号化鍵は、シークレットmy_secret
を使用して暗号化されます。
例4-9 データベースのすべてのTDEマスター暗号化鍵のエクスポート
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "my_secret" TO '/etc/TDE/export.exp' IDENTIFIED BY password; keystore altered.
ADMINISTER KEY MANAGEMENT IMPORT
文によって、エクスポートしたTDEマスター暗号化鍵を鍵エクスポート・ファイルからターゲット・キーストアにインポートできます。
すでにインポートされているTDEマスター暗号化鍵を再インポートすることはできません。
統合データベースでは、PDBのプラグのためにPDB内から鍵をインポートできます。PDBで鍵をエクスポートする方法の詳細は、PDB向けのTDEマスター暗号化鍵のエクスポートおよびインポートを参照してください。
IMPORT [ENCRYPTION] KEYS WITH SECRET
句を含むADMINISTER KEY MANAGEMENT
文によって、TDEマスター暗号化鍵をインポートできます。
ADMINISTER KEY MANAGEMENT
またはSYSKM
権限が付与されたユーザーとして、データベース・インスタンスにログインします。
マルチテナント環境では、rootとしてログインします。次のコマンドにより、ユーザーc##sec_admin
をrootに記録します。
sqlplus c##sec_admin as syskm
Enter password: password
Connected.
必要に応じて、キーストアを開きます。
キーストアを開く方法の詳細は、手順3: ソフトウェア・キーストアを開くを参照してください。
次のSQL文を実行します。
ADMINISTER KEY MANAGEMENT IMPORT [ENCRYPTION] KEYS WITH SECRET "import_secret" FROM 'file_name' | FROM 'file_name' IDENTIFIED BY [EXTERNAL STORE | keystore_password] [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
import_secret
は、エクスポート操作時に鍵の暗号化に使用されたものと同じパスワードです。このシークレットは、二重引用符(" ")で囲むか、シークレットにスペースが使われていない場合は引用符を省略できます。
file_name
は、鍵のインポート元ファイルの完全パスと名前です。この設定は、一重引用符(' ')で囲みます。
IDENTIFIED BY
は次のいずれかの設定にできます。
EXTERNAL STORE
は、外部ストアに格納されたキーストア・パスワードを使用して、キーストア操作を実行します。
software_keystore_password
は、鍵がインポートされているソフトウェア・キーストアのパスワードです。
WITH BACKUP
は、インポート操作の前にターゲット・キーストアがバックアップされていない場合は使用する必要があります。backup_identifier
は、キーストアのバックアップを識別するために指定できるオプション文字列です。この設定は、一重引用符(' ')で囲みます。
ADMINISTER KEY MANAGEMENT IMPORT KEYS SQL文を使用して、TDEマスター暗号化鍵をインポートできます。
例4-10に、ファイルexport.exp
に格納され、シークレットmy_secret
で暗号化されているTDEマスター暗号化鍵識別子をインポートする方法を示します。
例4-10 エクスポート・ファイルからのTDEマスター暗号化鍵識別子のインポート
ADMINISTER KEY MANAGEMENT IMPORT KEYS WITH SECRET "my_secret"
FROM '/etc/TDE/export.exp' IDENTIFIED BY password WITH BACKUP;
keystore altered.
キーストア・マージ操作は、TDEマスター暗号化鍵のエクスポートおよびインポート操作とは異なります。
ADMINISTER KEY MANAGEMENT MERGE
文と、ADMINISTER KEY MANAGEMENT EXPORT
文およびIMPORT
文は、両方とも最終的にTDEマスター暗号化鍵があるキーストアから次のキーストアに移動されますが、これら2つの文の動作には違いがあります。
MERGE
文では2つのキーストアがマージされますが、EXPORT
およびIMPORT
文ではファイルに鍵がエクスポートされるか、ファイルから鍵がインポートされます。キーストアはエクスポート・ファイルとは別のものであり、これら2つを交換して使用することはできません。エクスポート・ファイルはキーストアではなく、データベースでキーストアとして使用するように構成することはできません。同様に、IMPORT
文でキーストアからTDEマスター暗号化鍵を抽出することはできません。
MERGE
文では指定したキーストアのすべてのTDEマスター暗号化鍵がマージされますが、EXPORT
およびIMPORT
文では選択可能です。
EXPORT
およびIMPORT
文では、エクスポート・ファイルの場所(filepath
)とファイル名の両方を指定する必要がありますが、MERGE
文ではキーストアの場所のみを指定します。
キーストアのファイル名は固定で、MERGE
操作によって決定され、ewallet.p12
またはcwallet.sso
になります。EXPORT
およびIMPORT
文で使用するエクスポート・ファイルのファイル名は、ユーザーが指定します。
自動ストレージ管理(ASM)ディスク・グループまたは通常のファイル・システムのキーストアは、MERGE
文でマージできます。EXPORT
およびIMPORT
文で使用するエクスポート・ファイルは、通常のオペレーティング・システム・ファイルである必要があり、ASMディスク・グループには配置できません。
MERGE
文を使用してマージするキーストアは、構成されたり、データベースで使用されている必要はありません。EXPORT
文は、構成されてデータベースで使用され、エクスポートの終了時に開かれるキーストアからのみ鍵をエクスポートできます。IMPORT
文は、開かれて構成され、データベースで使用されているキーストアにのみ鍵をインポートできます。
MERGE
文では、TDEマスター暗号化鍵に関連付けられたメタデータは絶対に変更されません。EXPORT
およびIMPORT
操作では、PDBのプラグ操作時など、必要に応じてTDEマスター暗号化鍵のメタデータが変更されることがあります。
Oracle Key Vaultを使用して、企業全体でTDEマスター暗号化鍵を管理および共有できます。
Oracle Key Vaultでは、資格証明ファイルやJavaキーストアなどのセキュリティ・オブジェクトとともに、鍵を中央リポジトリに安全に格納し、これらのオブジェクトを他のTDE対応データベースと共有できます。
関連項目:
Oracle Key Vaultの使用のその他の利点は、キーストアとOracle Key Vault間の移行
Oracle Key Vault管理者ガイド
シークレットとは、Oracle Databaseの内部機能をサポートするデータであり、Oracle GoldenGateなどの外部クライアントをデータベースに統合することを可能にします。
内容は次のとおりです。
キーストアでは、Oracle Databaseの内部機能をサポートするシークレットを格納したり、Oracle GoldenGateなどの外部クライアントを統合できます。
秘密鍵はOracleの識別子規則に従った文字列である必要があります。既存のキーストアでクライアントのシークレットを追加、更新または削除できます。Oracle GoldenGateのExtractプロセスでは、データ・ファイル内およびREDO
またはUNDO
ログ内のデータを復号化するためにデータ暗号化鍵が必要です。鍵は、Oracle DatabaseとOracle GoldenGateクライアントの間で鍵を共有するときに、共有シークレットによって暗号化されます。ソフトウェア・キーストアには、共有シークレットが格納されます。
サイトの要件によっては、ハードウェア・セキュリティ・モジュールが構成されている場合でも、自動的にキーストアを開く操作が必要となる場合があります。そのため、ハードウェア・セキュリティ・モジュールのパスワードを自動ログイン・ソフトウェア・キーストアに格納し、ハードウェア・セキュリティ・モジュールで自動ログイン機能を有効にすることができます。また、Oracle Database側では、データベース用の資格証明を格納して、ソフトウェア・キーストアで外部ストレージ・サーバーにログインできます。
Oracle Databaseのシークレットをソフトウェア・キーストアとハードウェア・キーストアの両方に格納できます。
ソフトウェア・キーストア: シークレットをパスワードベースのソフトウェア・キーストア、自動ログイン・ソフトウェア・キーストア、およびローカル自動ログイン・ソフトウェア・キーストアに格納できます。シークレットを自動ログイン(または自動ログイン・ローカル)・キーストアに格納する場合は、次の点に注意してください。
自動ログイン・ソフトウェア・キーストアがその対応するパスワードベースのソフトウェア・キーストアと同じロケーションにある場合、シークレットは自動的に追加されます。
自動ログイン・ソフトウェア・キーストアがその対応するパスワードベースのソフトウェア・キーストアと異なるロケーションにある場合、パスワードベースのキーストアから自動ログイン・キーストアを再度作成して、2つのキーストアの同期を維持する必要があります。
ハードウェア・キーストア: シークレットを標準ハードウェア・セキュリティ・モジュールに格納できます。
ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE CLIENT
文によって、シークレットの追加、シークレットの更新、およびキーストアからのシークレットの削除を行うことができます。
すべてのADMINISTER KEY MANAGEMENT
文と同様に、ADMINISTER KEY MANAGEMENT
またはSYSKM
管理権限が必要です。マルチテナント環境では、この文をrootで実行します。
シークレットの追加: 次の構文を使用します。
ADMINISTER KEY MANAGEMENT ADD SECRET 'secret' FOR CLIENT 'client_identifier' [USING TAG 'tag'] IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier'];
シークレットの更新: 次の構文を使用します。
ADMINISTER KEY MANAGEMENT UPDATE SECRET 'secret' FOR CLIENT 'client_identifier' [USING TAG 'tag'] IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier'];
シークレットの削除: 次の構文を使用します。
ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT 'client_identifier' IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier'];
これらの文すべてで、次のように指定します。
secret
は、格納、更新、または削除するクライアントの秘密鍵です。この設定は、一重引用符(' ')で囲むか、シークレットにスペースが使われていない場合は引用符を省略します。
client_identifier
は、秘密鍵の識別に使用される英数字文字列です。client_identifier
にはデフォルト値はありません。この設定は、一重引用符(' ')で囲みます。
tag
は、格納する秘密鍵についてのオプションのユーザー定義の説明です。tag
は、ADD
およびUPDATE
操作と一緒に使用できます。この設定は、一重引用符(' ')で囲みます。このタグは、V$CLIENT_SECRETS
ビューのSECRET_TAG
列に表示されます。タグの詳細は、レポート用のTDEマスター暗号化鍵のカスタム属性の作成を参照してください。
keystore_password
は、キーストアのパスワードです。
WITH BACKUP
は、ADD
、UPDATE
またはDELETE
操作の前にキーストアがバックアップされていない場合は必須です。backup_identifier
は、バックアップについてのオプションのユーザー定義の説明です。backup_identifier
は、一重引用符(' ')で囲みます。
ADMINISTER KEY MANAGEMENT ADD SECRET文によって、ソフトウェア・キーストアにHSMパスワードを追加できます。
例4-11に、ソフトウェア・キーストアにハードウェア・セキュリティ・モジュール(HSM)のパスワードをシークレットとして追加する方法を示します。
例4-11 ソフトウェア・キーストアへのOracle Databaseのシークレットの追加
ADMINISTER KEY MANAGEMENT ADD SECRET 'psmith:password' FOR CLIENT 'HSM_PASSWORD' USING TAG 'HSM credentials' IDENTIFIED BY password WITH BACKUP;
ADMINISTER KEY MANAGEMENT UPDATE SECRET文によって、ソフトウェア・キーストアにシークレットとして格納されているHSMパスワードを変更できます。
例4-12に、シークレットとしてソフトウェア・キーストアに格納されているHSMパスワードを変更する方法を示します。
例4-12 ソフトウェア・キーストアでのOracle Databaseのシークレットの変更
ADMINISTER KEY MANAGEMENT UPDATE SECRET admin_password FOR CLIENT 'HSM_PASSWORD' USING TAG 'new_host_credentials' IDENTIFIED BY software_keytore_password;
ADMINISTER KEY MANAGEMENT DELETE SECRET文によって、ソフトウェア・キーストアにシークレットとして格納されているHSMパスワードを削除できます。
例4-13に、シークレットとしてソフトウェア・キーストアに格納されているHSMパスワードを削除する方法を示します。
例4-13 ソフトウェア・キーストアでのOracle Databaseのシークレットの削除
ADMINISTER KEY MANAGEMENT
DELETE SECRET FOR CLIENT 'HSM_PASSWORD'
IDENTIFIED BY password WITH BACKUP;
ADMINISTER KEY MANAGEMENT ADD SECRET|UPDATE SECRET|DELETE CLIENT
文によって、シークレットの追加、更新および削除を行うことができます。
すべてのADMINISTER KEY MANAGEMENT
文と同様に、ADMINISTER KEY MANAGEMENT
またはSYSKM
管理権限が必要です。マルチテナント環境では、この文をrootで実行します。
注意:
シークレットをハードウェア・セキュリティ・モジュールに追加しようとする前に、PDCS#11データ・オブジェクトがサポートされていることを確認してください。
シークレットの追加: 次の構文を使用します。
ADMINISTER KEY MANAGEMENT ADD SECRET 'secret' FOR CLIENT 'client_identifier' [USING TAG 'tag'] IDENTIFIED BY "user_id:password";
シークレットの更新: 次の構文を使用します。
ADMINISTER KEY MANAGEMENT UPDATE SECRET 'secret' FOR CLIENT 'client_identifier' [USING TAG 'tag'] IDENTIFIED BY "user_id:password";
シークレットの削除: 次の構文を使用します。
ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT 'client_identifier' IDENTIFIED BY "user_id:password";
これらの文すべてで、次のように指定します。
secret
は、格納、更新、または削除するクライアントの秘密鍵です。この設定は、二重引用符(' ')で囲むか、シークレットにスペースが使われていない場合は引用符を省略します。
client_identifier
は、秘密鍵の識別に使用される英数字文字列です。client_identifier
にはデフォルト値はありません。この設定は、一重引用符(' ')で囲みます。
tag
は、格納する秘密鍵についてのオプションのユーザー定義の説明です。tag
は、ADD
およびUPDATE
操作と一緒に使用できます。この設定は一重引用符(' ')で囲みます。このタグは、V$CLIENT_SECRETS
ビューのSECRET_TAG
列に表示されます。タグの詳細は、レポート用のTDEマスター暗号化鍵のカスタム属性の作成を参照してください。
user_id:password
は、ハードウェア・キーストアのパスワードです。user_id
とpassword
をコロンで区切り、この設定を二重引用符(" ")で囲みます。
ADMINISTER KEY MANAGEMENT ADD SECRET文によって、ハードウェア・キーストアにOracle Databaseのシークレットを追加できます。
例4-14に、ユーザーのパスワードをハードウェア・キーストアに追加する方法を示します。
例4-14 ハードウェア・キーストアへのOracle Databaseのシークレットの追加
ADMINISTER KEY MANAGEMENT ADD SECRET 'password' FOR CLIENT 'admin@myhost' USING TAG 'myhost admin credentials' IDENTIFIED BY "psmith:password";
ADMINISTER KEY MANAGEMENT MANAGEMENT UPDATE SECRET文によって、ハードウェア・キーストアにあるOracle Databaseのシークレットを変更できます。
例4-15に、シークレットとしてハードウェア・キーストアに格納されているパスワードを変更する方法を示します。
例4-15 ハードウェア・キーストアでのOracle Databaseのシークレットの変更
ADMINISTER KEY MANAGEMENT MANAGEMENT UPDATE SECRET 'password2'
FOR CLIENT 'admin@myhost' USING TAG 'New host credentials'
IDENTIFIED BY "psmith:password";
ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT文によって、ハードウェア・キーストアにあるOracle Databaseのシークレットを削除できます。
例4-16に、シークレットとしてハードウェア・キーストアに格納されているハードウェア・セキュリティ・モジュール・パスワードを削除する方法を示します。
例4-16 ハードウェア・キーストアでのOracle Databaseのシークレットの削除
ADMINISTER KEY MANAGEMENT DELETE SECRET FOR CLIENT 'admin@myhost'
IDENTIFIED BY "psmith:password";
自動ログイン機能を使用するには、ハードウェア・セキュリティ・モジュールを構成します。
内容は次のとおりです。
自動ログイン・ハードウェア・セキュリティ・モジュールは、自動ログイン・キーストア内にハードウェア・セキュリティ・モジュールの資格証明を格納します。
この構成により、システム全体のセキュリティが低下します。ただし、この構成は無人または自動化された操作をサポートし、ハードウェア・セキュリティ・モジュールの自動的な再ログインが必要なデプロイメントで役に立ちます。
問合せSELECT * FROM V$ENCRYPTION_WALLET
を実行すると、自動ログイン・ハードウェア・セキュリティ・モジュールが自動的に開くため、注意してください。たとえば、自動ログイン・ハードウェア・セキュリティ・モジュールを構成しているとします。キーストアを閉じて、V$ENCRYPTION_WALLET
ビューを問い合せると、出力にキーストアが開かれていることが示されます。これはV$ENCRYPTION_WALLET
が自動ログイン・ハードウェアを開いて、自動ログイン・キーストアのステータスを表示したためです。
ハードウェア・セキュリティ・モジュールの自動ログイン機能を有効にするには、ハードウェア・キーストアにハードウェア・セキュリティ・モジュールの資格証明を格納する必要があります。
ADMINISTER KEY MANAGEMENT
文によって、自動ログイン・ハードウェア・セキュリティ・モジュールを構成します。
「ハードウェア・キーストアの構成」を使用してTDEハードウェア・キーストアが構成済であることを確認します。
ハードウェア・セキュリティ・モジュールが開いている場合は閉じます。(キーストアが開いているか、閉じているかのステータスは、V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せて、確認できます。)
例:
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "psmith:password";
詳細は、「ハードウェア・キーストアを閉じる」を参照してください。
まだソフトウェア・キーストアから移行していない場合、ハードウェア・キーストア・パスワードを使用して適切な場所にソフトウェア・キーストアを作成します(/etc/ORACLE/WALLETS/orcl
など)。
例:
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/etc/ORACLE/WALLETS/orcl'
IDENTIFIED BY "psmith:password";
自動ログイン・ソフトウェア・キーストアを移行済で特定の場所(/etc/ORACLE/WALLETS/HSM
など)で使用中の場合、ハードウェア・キーストア・パスワードを使用してその自動ログイン・キーストアからソフトウェア・パスワード・キーストアを作成します。
例:
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/etc/ORACLE/WALLETS/orcl' IDENTIFIED BY "psmith:password"; ADMINISTER KEY MANAGEMENT MERGE KEYSTORE '/etc/ORACLE/WALLETS/HSM' -- Example keystore path INTO EXISTING KEYSTORE '/etc/ORACLE/WALLETS/HSM' -- Example keystore location IDENTIFIED BY "psmith:password" WITH BACKUP;
ADMINISTER KEY MANAGEMENT
マージ文のキーストアの場所は、使用中のキーストアの場所である必要はありません。
sqlnet.ora
ファイルを再構成し、ENCRYPTION_WALLET_LOCATION設定のDIRECTORY設定に手順3
または手順4
で作成したソフトウェア・キーストアのキーストア・ロケーションを追加します。
例:
ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/etc/ORACLE/WALLETS/orcl)))
Oracle Databaseがキーストアの場所を探す方法の詳細は、「sqlnet.oraファイルでのキーストアの場所について」を参照してください。
データベースに再接続するか、ログアウトして再ログインすると、前の手順の変更内容が有効になります。
例:
CONNECT psmith/AS SYSKM
Enter password: password
ソフトウェア・キーストアを開きます。
例:
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY software_keystore_password;
ソフトウェア・キーストアでシークレットを追加または更新します。
シークレットはハードウェア・セキュリティ・モジュール・パスワード、クライアントはHSM_PASSWORD
です。HSM_PASSWORD
は、HSMパスワードをソフトウェア・キーストアのシークレットとして表現するために使用されるOracle定義のクライアント名です。
例:
ADMINISTER KEY MANAGEMENT ADD SECRET "user_id:password" FOR CLIENT "HSM_PASSWORD" IDENTIFIED BY software_keystore_password WITH BACKUP;
ソフトウェア・キーストアを閉じます。
例:
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY software_keystore_password;
自動ログイン・キーストアを作成(または再作成)します。
ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE '/etc/ORACLE/WALLETS/orcl/hsm' -- Keystore location IDENTIFIED BY software_keystore_password;
ハードウェア・セキュリティ・モジュールのロケーションを使用するようにsqlnet.ora
ファイルを更新します。
例:
ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=HSM)(METHOD_DATA= (DIRECTORY=/etc/ORACLE/WALLETS/orcl)))
この段階で、TDE操作が次に実行されるときに、ハードウェア・セキュリティ・モジュールの自動ログイン・キーストアが自動的に開くようになります。
Oracle GoldenGateシークレットを透過的データ暗号化キーストアに格納できます。
内容は次のとおりです。
関連項目:
Oracle Key Vault環境でTDEとOracle GoldenGateを使用する方法は、『Oracle Key Vault管理者ガイド』
キーストアを使用して、ツールおよびOracle GoldenGateなどの外部クライアントの秘密鍵を格納できます。
秘密鍵はOracleの識別子規則に従った文字列である必要があります。既存のキーストアでクライアントのシークレットを追加、更新または削除できます。この項では、Oracle GoldenGateのExtract(抽出)プロセスでクラシック・キャプチャ・モードを使用して、透過的データ暗号化によって暗号化されたデータを取得する方法について説明します。
Extractがクラシック・キャプチャ・モードの場合、TDEをサポートするには次の鍵の交換が必要です。
Extractプロセスのクラシック・キャプチャ・モードでのTDEによるOracle GoldenGateのサポートでは、Oracle DatabaseとExtractプロセスでシークレットを共有して、交換される機密情報を暗号化する必要があります。共有シークレットは、Oracle DatabaseおよびOracle GoldenGateドメインに安全に格納されます。共有シークレットは、ソフトウェア・キーストアまたはHSMにデータベース・シークレットとして格納されます。
復号化鍵は、Oracle DatabaseおよびOracle GoldenGateドメインに安全に格納されている、共有シークレットとして知られているパスワードです。共有シークレットを所有している当事者のみが、表キーおよびREDOログ・キーを復号化できます。
共有シークレットの構成後、共有シークレットを使用してOracle GoldenGate Extractによってデータが復号化されます。Oracle GoldenGate Extractでは、TDEマスター暗号化鍵自体は扱われず、キーストア・パスワードも認識しません。TDEマスター暗号化鍵およびパスワードは、Oracle Database構成内に保持されます。
Oracle GoldenGate Extractでは、遷移時にOracle GoldenGateによって保持されるOracle GoldenGate証跡ファイルに、復号化されたデータが書き込まれるのみです。サイトのオペレーティング・システムの標準セキュリティ・プロトコルと、Oracle GoldenGate AES暗号化オプションを使用して、このファイルを保護できます。Oracle GoldenGateでは、暗号化データは破棄ファイル(DISCARDFILE
パラメータで指定)には書き込まれません。ENCRYPTED
という語は、使用中のすべての破棄ファイルに書き込まれます。
Oracle GoldenGateでは、暗号化データの処理時にキーストアが開いている必要はありません。TDE操作に対するOracle GoldenGate機能のパフォーマンス上の影響はありません。
Oracle GoldenGate Extractで透過的データ暗号化の取得をサポートするための要件を満たしていることを確認します。
要件は次のとおりです。
高いセキュリティ基準を維持するには、Oracle GoldenGateのExtractプロセスがOracleユーザー(Oracle Databaseを実行するユーザー)の一部として実行されるようにします。これにより、鍵はOracleユーザーと同じ権限によってメモリー内で保護されます。
Oracle GoldenGateのExtractプロセスを、Oracle Databaseインストールと同じコンピュータで実行します。
Oracle GoldenGateのために透過的データ暗号化キーストアのサポートを構成するには、キーストアの共有シークレットを決定し、Oracleデータベースを構成し、共有シークレットをキーストアに格納し、Extractプロセスに共有シークレットを設定します。
内容は次のとおりです。
キーストアの共有シークレットはパスワードです。
Oracle Databaseのパスワード基準を満たす(または超える)共有シークレットを決定します。
このパスワードは、Oracle GoldenGate Extractと連携するように透過的データ暗号化を構成する作業を担当する、信頼できる管理者以外のユーザーと共有しないでください。
関連項目:
安全なパスワードの作成に関するガイドラインの詳細は、Oracle Databaseセキュリティ・ガイドを参照してください。
DBMS_INTERNAL_CLKM
PL/SQLパッケージを使用して、Oracle GoldenGateのためにTDEのサポートを構成できます。
SYSDBA
管理権限を持つユーザーSYS
としてデータベース・インスタンスにログインします。
次に例を示します
sqlplus sys as sysdba
Enter password: password
Connected.
マルチテナント環境で、適切なPDBに接続します。
例:
CONNECT SYS@hrpdb AS SYSDBA
Enter password: password
利用可能なPDBを検索するには、DBA_PDBS
データ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_name
コマンドを実行します。
Oracle Databaseに付属のDBMS_INTERNAL_CLKM
PL/SQLパッケージをロードします。
例:
@?/app/oracle/product/12.1/rdbms/admin/prvtclkm.plb
prvtclkm.plb
ファイルでも、Oracle GoldenGateによってOracle Databaseから暗号化データを抽出できます。
DBMS_INTERNAL_CLKM
PL/SQLパッケージに対するEXECUTE
権限をOracle GoldenGate Extractデータベース・ユーザーに付与します。
例:
GRANT EXECUTE ON DBMS_INTERNAL_CLKM TO psmith;
この手順によって、Oracle DatabaseとOracle GoldenGate Extractで情報を交換できます。
SQL*Plusを終了します。
ADMINISTER KEY MANAGEMENT
文によって、TDE GoldenGate共有シークレットをキーストアに格納できます。
次のトピックに基づいて、TDEソフトウェア・キーストアまたはハードウェア・キーストアが構成済であることを確認します。
Oracle GoldenGate-透過的データ暗号化鍵をキーストアに設定します。
構文は次のとおりです。
ADMINISTER KEY MANAGEMENT ADD|UPDATE|DELETE SECRET 'secret' FOR CLIENT 'secret_identifier' [USING TAG 'tag'] IDENTIFIED BY keystore_password [WITH BACKUP [USING 'backup_identifier']];
ここでは次のように指定します。
secret
は、格納、更新、または削除するクライアントの秘密鍵です。この設定は、一重引用符(' ')で囲みます。
secret_identifier
は、秘密鍵の識別に使用される英数字の文字列です。secret_identifier
にはデフォルト値はありません。この設定は、一重引用符(' ')で囲みます。
tag
は、格納する秘密鍵についてのオプションのユーザー定義の説明です。tag
は、ADD
およびUPDATE
操作と一緒に使用できます。この設定は一重引用符(' ')で囲みます。このタグは、V$CLIENT_SECRETS
ビューのSECRET_TAG
列に表示されます。タグの詳細は、「レポート用のTDEマスター暗号化鍵のカスタム属性の作成」を参照してください。
keystore_password
は、構成されているキーストアのパスワードです。
WITH BACKUP
は、ADD
、UPDATE
またはDELETE
操作の前にキーストアがバックアップされていない場合は必須です。backup_identifier
は、バックアップについてのオプションのユーザー定義の説明です。backup_identifier
は、一重引用符(' ')で囲みます。
次の例は、秘密鍵をキーストアに追加して、キーストアと同じディレクトリにバックアップを作成します。
ADMINISTER KEY MANAGEMENT ADD SECRET 'some_secret'
FOR CLIENT 'ORACLE_GG' USING TAG 'GoldenGate Secret'
IDENTIFIED BY password WITH BACKUP USING 'GG backup';
作成したエントリを確認します。
例:
SELECT CLIENT, SECRET_TAG FROM V$CLIENT_SECRETS WHERE CLIENT = 'ORACLEGG'; CLIENT SECRET_TAG -------- ------------------------------------------ ORACLEGG some_secret
ログ・ファイルを切り換えます。
CONNECT / AS SYSDBA ALTER SYSTEM SWITCH LOGFILE;
ログ・ファイルの切替えの詳細は、『Oracle Database管理者ガイド』を参照してください。
関連項目:
Oracle Real Application Clusters (RAC)環境でこの手順の使用に問題が発生した場合は、透過的データ暗号化とOracle Real Application Clustersとの連携を参照してください。
GoldenGateソフトウェア・コマンド・インタフェース(GGSCI)ユーティリティによって、TDE Oracle GoldenGate共有シークレットをExtractプロセスに設定します。
GGSCIユーティリティを起動します。
例:
ggsci
GGSCIユーティリティでENCRYPT PASSWORD
コマンドを実行し、共有シークレットを暗号化してOracle GoldenGate Extractパラメータ・ファイル内で不明瞭化します。
ENCRYPT PASSWORD shared_secret algorithm ENCRYPTKEY keyname
ここでは次のように指定します。
shared_secret
は、手順1: キーストアの共有シークレットを決定するで作成したクリアテキストの共有シークレットです。この設定では大文字と小文字が区別されます。
algorithm
は、AES暗号化を指定する次のいずれかの値です。
AES128
AES192
AES256
keyname
は、ENCKEYS
参照ファイルの暗号化鍵の論理名です。Oracle GoldenGateでは、この名前を使用して、ENCKEYS
ファイル内で実際の鍵が参照されます。
例:
ENCRYPT PASSWORD password AES256 ENCRYPTKEY mykey1
Oracle GoldenGate Extractパラメータ・ファイルで、DECRYPTPASSWORD
オプションを指定してDBOPTIONS
パラメータを設定します。
入力として、暗号化共有シークレットと、Oracle GoldenGateによって生成されたか、またはユーザーが定義した復号化鍵を指定します。
DBOPTIONS DECRYPTPASSWORD shared_secret algorithm ENCRYPTKEY keyname
ここでは次のように指定します。
shared_secret
は、手順1: キーストアの共有シークレットを決定するで作成したクリアテキストの共有シークレットです。この設定では大文字と小文字が区別されます。
algorithm
は、AES暗号化を指定する次のいずれかの値です。
AES128
AES192
AES256
keyname
は、ENCKEYS
参照ファイルの暗号化鍵の論理名です。
例:
DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1