24 Oracle Key Vault統合アクセラレータ
Oracle Key Vaultには、ユースケースとKey Vaultの統合を迅速にスピンアップするためのアクセラレータが用意されています。アクセラレータは、提供されたまま使用することも、アプリケーションのニーズにあわせて拡張して使用することもできます。
統合アクセラレータは、Oracle Key Vault管理コンソールからダウンロードできます。Oracle Key Vaultには、次の統合アクセラレータが用意されています:
- Oracle GoldenGateのパスワード管理の一元化
21.11リリース以降のOracle Key VaultにはGoldenGateパスワード・プラグインが用意されています。この機能を使用して、Oracle Key VaultにOracle GoldenGateのパスワードを格納できます。 - Oracle DBMS_CRYPTOのキー管理統合アクセラレータ
リリース21.10以降、Oracle Key Vaultには、Oracle Key VaultでのDBMS_CRYPTO操作で使用される暗号化キーを管理するために、Oracle DBMS_CRYPTOのキー管理統合アクセラレータが用意されています。 - Oracle Key Vaultクラスタ間でのオブジェクトの転送
Oracle Key Vault 21.11リリース以降、Oracle Key Vaultクラスタ間でのキー転送の統合アクセラレータのプレビューがOracle Key Vaultに含まれています。この機能を使用して、1つのOracle Key Vaultクラスタから別のクラスタにセキュリティ・オブジェクトを転送できます。
Oracle GoldenGateのパスワード管理の一元化
21.11リリース以降のOracle Key VaultにはGoldenGateパスワード・プラグインが用意されています。この機能を使用して、Oracle Key VaultにOracle GoldenGateのパスワードを格納できます。
- Oracle GoldenGateのパスワード管理の一元化について
この機能は、Oracle GoldenGateプロセスで使用されるパスワードの管理を一元化します。 - Oracle Key VaultへのOracle GoldenGateパスワードの格納
このトピックでは、Oracle Key VaultにOracle GoldenGateのパスワードを格納するプロセスの概要を示します。 - パスワード・プラグインのダウンロード
Oracle Key Vault管理コンソールからパスワード・プラグインをダウンロードする方法について学習します。 - 前提条件
Oracle GoldenGateプロセスで使用されるパスワードの管理を一元化するには、次の前提条件が必要です。 - Oracle Key VaultへのOracle GoldenGateデータベース・ユーザー・パスワードのアップロード
Oracle GoldenGateデータベース・ユーザー・パスワードをOracle Key Vaultにアップロードするには、次のステップを実行します。 - Oracle GoldenGateのパスワード・プラグインとしてのOracle Key Vault共有ライブラリの構成
このトピックでは、Oracle GoldenGateがOracle Key Vaultからデータベース・ユーザー・パスワード(シークレット・データ)をフェッチできるようにするステップについて説明します。
親トピック: Oracle Key Vault統合アクセラレータ
Oracle GoldenGateのパスワード管理の一元化について
この機能により、Oracle GoldenGateプロセスで使用されるパスワードの管理が一元化されます。
Oracle GoldenGateは、データ・レプリケーション機能で業界をリードしています。レプリケーション・タスクを実行するには、Oracle GoldenGateプロセスがローカル・ウォレット(資格証明ストア)に格納されている資格証明を使用して、データベースにログインする必要があります。しかし、ローカルでのパスワード詳細の格納が許可されておらず、Oracle GoldenGateの外部のボールトにパスワードを格納する必要がある場合があります。そのため、Oracle GoldenGateがパスワードを取得してデータベースに接続できるようにするにための統合方法が必要になります。
バージョン23.5以降のOracle GoldenGateには、お客様がカスタム・コードを記述してサード・パーティのボールトから資格証明を取得して、事前定義済のAPIで資格証明をOracle GoldenGateに戻すことができる、使いやすいプラグイン・ライブラリが含まれています。この機能には、Oracle Key Vaultでパスワードを管理するためにOracle GoldenGateで構成できるライブラリであるlibokvoggdbpwd.soが含まれます。
ノート:
Oracle GoldenGateシステムがOracle Key Vaultからパスワードをフェッチするには、Oracle Key Vaultシステムが稼働している必要があります。Oracle Key VaultへのOracle GoldenGateパスワードの格納
このトピックでは、Oracle Key VaultにOracle GoldenGateのパスワードを格納するプロセスの概要を示します。
- Oracle GoldenGate管理者が、RESTソフトウェアを使用してOracle GoldenGateのパスワードをOracle Key Vaultにアップロードします。
- Oracle Key Vaultが
libokvoggdbpwd.soプラグイン・ライブラリを介してOracle GoldenGateからデータベース資格証明のリクエストを受信すると、バックエンドの検証が成功した後にOracle Key Vaultからパスワードがフェッチされて、リモートに格納されているパスワードを使用してOracle GoldenGateがデータベースに接続できるようになります。
ノート:
Oracle Key Vaultを介したこのパスワード・セキュリティにより、Oracle以外のデータベースをレプリケートするOracle GoldenGateの実装も保護できます。パスワード・プラグインのダウンロード
Oracle Key Vault管理コンソールからパスワード・プラグインをダウンロードする方法について学習します。
Oracle Key VaultへのOracle GoldenGateデータベース・ユーザー・パスワードのアップロード
Oracle GoldenGateデータベース・ユーザー・パスワードをOracle Key Vaultにアップロードするには、次のステップを実行します。
libokvoggdbpwd.soプラグイン・ライブラリを使用してパスワードをフェッチするエンドポイントには、パスワードがアップロードされたウォレットに対する読取りアクセス権限が少なくとも必要です。
Oracle GoldenGateのパスワード・プラグインとしてのOracle Key Vault共有ライブラリの構成
このトピックでは、Oracle GoldenGateがOracle Key Vaultからデータベース・ユーザー・パスワード(シークレット・データ)をフェッチできるようにするステップについて説明します。
libokvoggdbpwd.soを使用してOracle Key Vaultからデータベース・ユーザー・パスワード(シークレット・データ)をフェッチできるようにするには、このトピックのステップを実行します。
SM_USERNAME (サービス・マネージャ・ユーザー名)、SM_PASSWORD (サービス・マネージャ・パスワード)、HOST_SERVER (GoldenGateデプロイメントのURL)およびSM_PORT (サービス・マネージャ・ポート番号)変数を設定して、次のコマンドを実行します。
Oracle DBMS_CRYPTOのキー管理統合アクセラレータ
リリース21.10以降、Oracle Key Vaultには、Oracle Key VaultでのDBMS_CRYPTO操作で使用される暗号化キーを管理するために、Oracle DBMS_CRYPTOのキー管理統合アクセラレータが用意されています。
Oracle DBMS_CRYPTOパッケージには、暗号化操作と復号化操作を実行するためのPL/SQLインタフェースが用意されています。PL/SQLアプリケーションでは、DBMS_CRYPTO操作で使用される暗号化キーを安全に管理する必要があります。この統合アクセラレータを使用すると、Oracle Key VaultでのOracle DBMS_CRYPTO操作で使用される対称キーを管理できます。この統合アクセラレータ・パッケージには、Oracle Key Vault JAVA SDKプログラム上に構築されたPL/SQLラッパーが用意されています。
- Oracle DBMS_CRYPTOのキー管理統合アクセラレータのダウンロード
Oracle DBMS_CRYPTOのキー管理統合アクセラレータは、Oracle Key Vault管理コンソールからダウンロードできます。 - Oracle DBMS_CRYPTOのキー管理統合アクセラレータの使用
DBMS_CRYPTOのキー管理統合アクセラレータを使用する方法について学習します。
親トピック: Oracle Key Vault統合アクセラレータ
Oracle DBMS_CRYPTOのキー管理統合アクセラレータのダウンロード
Oracle DBMS_CRYPTOのキー管理統合アクセラレータは、Oracle Key Vault管理コンソールからダウンロードできます。
Oracle DBMS_CRYPTOのキー管理統合アクセラレータの使用
DBMS_CRYPTOのキー管理統合アクセラレータを使用する方法について学習します。
- Oracle DBMS_CRYPTOのキー管理統合アクセラレータを使用するための前提条件
Oracle DBMS_CRYPTOのキー管理統合アクセラレータの使用を開始する前に、次の前提条件を満たしていることを確認します。 - Oracle DBMS_CRYPTOのキー管理統合アクセラレータを使用するための環境の準備
Oracle DBMS_CRYPTOのキー管理統合アクセラレータの実行に必要な権限でOracle Database環境を準備していることを確認します。 - PL/SQLアプリケーションでのOracle DBMS_CRYPTOのキー管理統合アクセラレータの使用
PL/SQLアプリケーションで、統合アクセラレータによって提供されるPL/SQLパッケージokv_key_mgmtを使用できるようになりました。
Oracle DBMS_CRYPTOのキー管理統合アクセラレータを使用するための前提条件
Oracle DBMS_CRYPTOのキー管理統合アクセラレータの使用を開始する前に、次の前提条件を満たしていることを確認します。
-
サンプルOracle DBMS_CRYPTOアプリケーションを実行する予定のOracle Key Vault 21.10以降に、Oracle Databaseをエンドポイントとしてエンロールします。
ノート:
詳細は、「エンドポイントのエンロールとプロビジョニングについて」を参照してください - Java 8以降があることを確認します。
- Oracle Databaseに最新のOracle JVMがパッチ適用されていることを確認します。
-
OKV_HOME環境変数を適切に設定します。ノート:
$OKV_HOMEは、エンドポイントのインストール時に-dオプションで指定したエンドポイント・ソフトウェアの宛先ディレクトリです。 okvclient.oraファイルが使用可能であり、エンドポイント・エンロールの一部として作成されているかどうかを確認します。okvclient.oraファイルは通常、$OKV_HOME/conf/okvclient.oraにあります。-
okv_jsdk.zipが$OKV_HOMEに解凍されていることを確認します。Bash UNIXシェルの場合:$ cd $OKV_HOME $ unzip -o okv_jsdk.zipノート:
Oracle Key Vault Java SDKのダウンロードの詳細は、『Oracle Key Vault開発者ガイド』を参照してください okv_key_management_dbms_crypto.zipの内容を別のフォルダに抽出します。okv_key_management_dbms_crypto.zipファイルの内容は、次のとおりです:-
setup_java_permissions.sql: このSQLスクリプトは、データベース・ユーザーに必要なJavaセキュリティ権限を設定します。 KeyManager.java: このプログラムは、Oracle Key Vault Java SDKのAPIを使用して、Oracle Key Vaultサーバーの対称キーを作成、フェッチおよび破棄します。okv_key_mgmt.pkb: Oracle Key Vaultの対称キーの作成、フェッチおよび破棄操作を実行するためにOracle Key Vault Java SDK APIを(KeyManager.javaを介して)起動するPL/SQLラッパー。dbms_crypto_using_okv_keymgmt.sql: Java SDKを使用してOracle Key Vaultでのキー管理を示すためのOracle DBMS_CRYPTOのユースケース。このSQLスクリプトは、インストールされているOracle Key Vaultエンドポイント・ソフトウェアの自動ログイン・ウォレットに対してのみ機能します。エンドポイントがパスワードで保護されている場合は、このSQLスクリプトにある'
endpt_pswd'変数にエンドポイントのパスワードを設定します。さらに次のように、endpt_pswdが、SQLスクリプトのokv_key_mgmtパッケージ関数への入力として渡されていることを確認します:-- create key : okv_key_mgmt.create_key(key_name, endpt_pswd);-- fetch key : okv_key_mgmt.fetch_key(key_name, endpt_pswd);-- destroy key : okv_key_mgmt.destroy_key(key_id, endpt_pswd);
Oracle Key Vaultで作成されたキーにカスタム名を指定する場合は、このSQLファイルにある'
key_name'変数に名前の値を設定します。デフォルトでは、キー名はdbms_crypto_keyとして、SQLスクリプトのcreate_key()関数およびfetch_key()関数に渡されます。README.txt: サンプルOracle DBMS_CRYPTOアプリケーションを設定および実行する手順。
-
Oracle DBMS_CRYPTOのキー管理統合アクセラレータを使用するための環境の準備
Oracle DBMS_CRYPTOのキー管理統合アクセラレータの実行に必要な権限でOracle Database環境を準備していることを確認します。
PL/SQLアプリケーションでのOracle DBMS_CRYPTOのキー管理統合アクセラレータの使用
PL/SQLアプリケーションで、統合アクセラレータによって提供されるPL/SQLパッケージokv_key_mgmtを使用できるようになりました。
okv_key_mgmtパッケージには、キー管理をOracle Key Vaultと統合するための次のファンクションが用意されています。
create_key: Oracle Key Vaultで対称キーを作成します。これは、Oracle Key Vault Java SDK APIを使用してOracle Key Vaultで対称キーを作成するKeyManager.java:createKey()をコールするラッパー・ファンクションです。fetch_key: Oracle Key Vaultから対称キーをフェッチします。これは、Oracle Key Vault Java SDK APIを使用してOracle Key Vaultの対称キーをフェッチするKeyManager.java:fetchKey()をコールするラッパー・ファンクションです。destroy_key: Oracle Key Vaultの対称キーを破棄します。これは、Oracle Key Vault Java SDK APIを使用してOracle Key Vaultの対称キーを破棄するKeyManager.java:destroyKey()をコールするラッパー関数です。
okv_key_mgmtパッケージを使用してOracle Key Vaultからキーをフェッチして使用するように、DBMS_CRYPTOを使用して対称キー・ベースの暗号化操作を実行するPL/SQLアプリケーションを変更できます。このようにして、PL/SQLアプリケーションのキー管理を簡素化できます。
okv_key_mgmtパッケージのキー管理ファンクションの使用方法を学習するには、統合アクセラレータに付属するサンプル・アプリケーションdbms_crypto_using_okv_keymgmt.sqlを確認します。
DBMS_CRYPTOのキー管理統合アクセラレータ・パッケージに付属するサンプル・アプリケーションdbms_crypto_using_okv_keymgmt.sqlは実行できます。
DBMS_CRYPTOのキー管理統合アクセラレータには、Oracle Key VaultでのPL/SQLアプリケーションのキー管理を示す基本ファンクションが用意されています。提供されているJava SDKプログラムKeyManager.javaおよびPL/SQLラッパー・パッケージokv_key_mgmt.pkbを変更して、より高度な使用方法に対応するようにその機能を拡張できます。
ノート:
変更されたバージョンのfetch_key()関数および新しいdestroy_key()関数は、Oracle Key Vault 21.11以降のokv_key_mgmtパッケージに含まれています。Oracle Key Vault 21.10を使用していて、locate_key()関数をokv_key_mgmtパッケージに含める必要がある場合は、Oracle DBMS_CRYPTOのキー管理統合アクセラレータの機能拡張のステップを実行します。
Oracle Key Vaultクラスタ間でのオブジェクトの転送
Oracle Key Vault 21.11リリース以降、Oracle Key Vaultクラスタ間でのキー転送の統合アクセラレータのプレビューがOracle Key Vaultに含まれています。この機能を使用して、1つのOracle Key Vaultクラスタから別のクラスタにセキュリティ・オブジェクトを転送できます。
- Oracle Key Vaultクラスタ間でのオブジェクトの転送について
Oracle Key Vault管理者が、ソースOracle Key VaultクラスタからターゲットOracle Key Vaultクラスタに、一時リポジトリを介してオブジェクトをシームレスに転送できます。 - キー転送パッケージのダウンロード
転送操作を実行するには、Oracle Key Vault管理コンソールからキー転送パッケージをダウンロードします。 - 前提条件
ソースOracle Key VaultクラスタからターゲットOracle Key Vaultクラスタにセキュリティ・オブジェクトを転送するには、次の前提条件が必要です。 - キー転送パッケージを使用するための環境の準備
このトピックでは、ソースOracle Key VaultクラスタからターゲットOracle Key Vaultクラスタへの転送プロセスのステージについて説明します。 - 転送プロセスの実行
このトピックでは、キー転送パッケージを使用するための環境を準備するステップについて説明します。 - ソースからターゲット・クラスタへのキーの転送
ソース・エンドポイントとターゲット・エンドポイントは、次のステップが実行されるのと同じコンピュータ上にある必要があります。 - 様々なシナリオでのコマンドおよびログの詳細
このトピックでは、様々なシナリオで実行する必要があるコマンドについて説明します。 - ラップおよびアンラップするキーの破棄
オブジェクト・タイプをラップおよびアンラップする転送キーを破棄します。
親トピック: Oracle Key Vault統合アクセラレータ
Oracle Key Vaultクラスタ間でのオブジェクトの転送について
Oracle Key Vault管理者が、ソースOracle Key VaultクラスタからターゲットOracle Key Vaultクラスタに、一時リポジトリを介してオブジェクトをシームレスに転送できます。
この機能を使用すると、クラスタのセキュアなバックアップを保持でき、同時にオブジェクトをターゲット・クラスタに定期的に転送できます。
Oracle Key Vaultクラスタ間のオブジェクト転送操作が自動化および簡素化されるため、この機能は組織にメリットをもたらします。
次のオブジェクト・タイプをソース・クラスタからターゲット・クラスタに転送できます:
- 対称キー
- 秘密キー
- 公開キー
- 不透明オブジェクト
- 証明書
- 証明書リクエスト
- シークレット
KMIPおよびカスタム属性を含む、転送されたオブジェクトのすべての属性は、転送プロセス中にそのまま維持されます。
UUIDを指定して個々のオブジェクトを転送できますが、ウォレットを使用すれば複数のオブジェクトを転送できます。
ノート:
この機能はプレビュー状態であり、将来のリリースで変更される可能性があります。キー転送パッケージを使用するための環境の準備
このトピックでは、ソースOracle Key VaultクラスタからターゲットOracle Key Vaultクラスタへの転送プロセスのステージについて説明します。
転送プロセスの実行
このトピックでは、キー転送パッケージを使用するための環境を準備するステップについて説明します。
- ソース・クラスタで転送キーを作成し、ターゲット・クラスタにそのキーをコピーします。転送キーにより、ターゲット・クラスタに転送されるソース・クラスタ内のオブジェクト・タイプをラップ(暗号化)し、ターゲット・クラスタでアンラップ(復号化)します。
okv_key_transfer.shファイルで転送キーを作成します。 - オブジェクト(それらの値および属性)が、ソース・クラスタのエンドポイント・ソフトウェアを使用して、中間リポジトリにダウンロードされます。次に、ダウンロードされたオブジェクト値が、転送キーによって暗号化されます。このステップを実行できる回数に制限はありません。
- オブジェクトはターゲット・クラスタのエンドポイント・ソフトウェアを介して、中間リポジトリからターゲット・クラスタにアップロードされます。また、以前にアップロードされたオブジェクトは、アップロード・プロセスの現在の実行ではアップロードされません。アップロード・プロセスの後、ファイルは中間リポジトリから削除されます。
- 転送キーは破棄されます。
ソースからターゲット・クラスタへのキーの転送
ソース・エンドポイントとターゲット・エンドポイントは、次のステップを実行するのと同じコンピュータ上にある必要があります:
ノート:
エンドポイントがパスワードで保護されている場合は、パスワードの入力を求められる場合があります。ノート:
前述のステップの再実行では、ソース・クラスタから新規ファイルのみがターゲット・クラスタにアップロードされます。このように、前回の実行でアップロードされたオブジェクトがスキップされるため、アップロード時間が短縮されます。様々なシナリオでのコマンドおよびログの詳細
このトピックでは、様々なシナリオで実行する必要があるコマンドについて説明します。
コマンド
- UUIDを使用して単一オブジェクトをダウンロードするには:
オブジェクトは、オブジェクト・タイプに基づいて保存されます:$ ./okv_key_transfer.sh download --path <path> --uuid <UUID>- 秘密キーは<path>/pvt_keysに保存されます。
- 他のオブジェクトは<path>/objectsに保存されます。
- ウォレットからすべてのオブジェクトをダウンロードするには:
オブジェクトは、オブジェクト・タイプに基づいて保存されます:$ ./okv_key_transfer.sh download --path <path> --wallet <wallet_name>- 秘密キーは<path>/<wallet_name>pvt_keysに保存されます。
- 他のオブジェクトは<path>/<wallet_name>/objects.に保存されます。
ノート:
- ファイルには、
<UUID>_object_register_details.txtの形式で名前が付きます。 <path>は、オブジェクトがダウンロードされる場所の絶対パスにする必要があります。
- UUIDを使用した単一オブジェクトのアップロード
$ ./okv_key_transfer.sh upload --path <path> --uuid <UUID> [--wallet <wallet_name>]uuidは、ソース・クラスタ内のオブジェクトの一意の識別子です。- ソース・ファイルは、アップロード後に
<path>から削除されます。
ノート:
--walletオプションを使用してウォレットの一部として以前にダウンロードされたオブジェクトは、ウォレット固有のサブディレクトリに格納されています。このようなシナリオでは、UUIDで特定のオブジェクトをアップロードするときに、<path-to-source-wallet-name>を--pathの値として使用します:$ ./okv_key_transfer.sh upload --path <path-to-source-wallet-name> --uuid <UUID> - 複数オブジェクトのアップロード:
$ ./okv_key_transfer.sh upload --path <path> [--wallet <wallet_name>]- 最初に、<path>/pvt_keysからすべての秘密キーがアップロードされます。
- その後、<path>/objectsから他のすべてのオブジェクトがアップロードされます。
- アップロードの完了後に、<path>からファイルを削除します。
ノート:
--walletオプションを使用してウォレットから以前にダウンロードされたオブジェクトは、ウォレット固有のサブディレクトリに格納されています。このようなシナリオでは、アップロード時に<path-to-source-wallet-name>を--pathの値として使用します:説明:- <path>は、ソース・クラスタからダウンロードされたオブジェクトの詳細を含むディレクトリへの絶対パスです。
- <wallet_name>は、オブジェクトが追加されるターゲット・クラスタ上のウォレットを指定する、オプションのパラメータです。
アップロード時にウォレットが指定されていないと、エンドポイントのデフォルト・ウォレットにオブジェクトがアップロードされます。エンドポイントにデフォルト・ウォレットが定義されていないと、オブジェクトはアップロードされますが、ウォレットにはアップロードされません。
ログ
<LOG_DIR>/okv_key_transfer_logs.txtファイルのログ・ファイルには、次の詳細が記録されます:
- 操作のタイプ。
- 含まれるオブジェクトの詳細。
ログ・ファイルは、次の操作に対して生成されます:
- オブジェクトのダウンロード: 失敗した場合は、オブジェクトのUUIDおよび失敗の理由が記録されます。
- 完全なウォレットのダウンロード: ログ・エントリには次のものが含まれます:
- ウォレット内のオブジェクトの数。
- 失敗したオブジェクトがある場合は、そのオブジェクトおよび失敗の理由。
- 正常にダウンロードされたオブジェクトの数。
- オブジェクトのアップロード: 失敗した場合は、オブジェクトのUUIDおよび失敗の理由が記録されます。
- 完全なウォレットのアップロード: ログ・エントリには次のものが含まれます:
- 失敗したオブジェクトがある場合は、そのオブジェクトおよび失敗の理由。
- 指定されている場合は、ターゲット・ウォレット。
- 正常にアップロードされたオブジェクトの数およびスキップされたオブジェクト。


