様々なユースケース・シナリオでOracle Key Vaultを使用してセキュリティ・オブジェクトを管理できます(Oracle Wallet、JKSキーストア、JCEKSキーストア、資格証明ファイルのアップロードおよびダウンロードと、TDE直接接続およびTDE構成済Oracle Databaseの使用)。
トピック:
okvutil upload
およびokvutil download
コマンドを使用して、Oracle Key Vaultサーバーを対象にOracle Walletをアップロードおよびダウンロードできます。
トピック:
エンドポイント管理者は、Key Vaultエンドポイント・ソフトウェア(okvutil
ユーティリティ)を使用して、長期保持、リカバリおよび共有のために、Oracle WalletファイルをOracle Key Vaultにアップロードできます。
Oracle Walletをアップロードする場合、Oracle Key Vaultエンドポイント・ソフトウェアは、ウォレット内の各項目を読み取ることができます。ウォレットの内容は、個々の項目としてアップロードされます。エンドポイントのウォレットにダウンロードする場合、同じ項目セットをダウンロードして元のウォレットを再作成することも、変更した項目セットをダウンロードして新しいウォレットを作成することも可能です。パスワード・ベースのウォレットと自動ログイン・ウォレットの両方を、アップロードおよびダウンロードできます。ウォレットの内容は、いずれかのタイプの新しいウォレットに、後でダウンロードできます。たとえば、アップロードされたパスワード保護済ウォレットを自動ログイン・ウォレットとしてダウンロードしたり、アップロードされた自動ログイン・ウォレットをパスワード保護されたウォレットとしてダウンロードしたりできます。
Oracle Key Vaultを使用して、以前にアップロードされたOracle Walletの内容から新しい仮想ウォレットを構築することもできます。たとえば、5つの対称鍵と3つの不透明オブジェクトが含まれるOracle Walletを以前にアップロードしたと想定します。元の5つの対称鍵のうち3つと、元の3つの不透明オブジェクトのうちの1つのみから構成される、新しい仮想ウォレットを作成できます。この仮想ウォレットは元のウォレットと同様にダウンロードでき、鍵のサブセットのみに対するアクセス権を持つエンドポイントを提供します。このプロセスは、元のウォレットを変更しません。
アップロード・プロセスまたはokvutil
upload
コマンドは、Oracle Wallet内のすべてをアップロードします。それには通常、Oracle Advanced SecurityのTDEマスター・キー、ウォレット・メタデータ、および明示的に追加した鍵または機密情報が含まれます。
Oracle Walletには、現在のTDEマスター・キー、過去のすべてのTDEマスター・キー、SSLまたはTLS証明書、およびこれらのオブジェクトに関連するメタデータなどのセキュリティ・オブジェクトが含まれています(Oracle Key Vaultに不透明オブジェクトとして格納)。これらのオブジェクトのすべてとメタデータは、ダウンロード・プロセス中にKey VaultがOracle Walletを再構築できるように、Oracle Key Vaultにアップロードされています。
Oracle WalletがあるサーバーがKey Vaultエンドポイントとしてエンロールされ、プロビジョニングされていることを確認します。
詳細は、「エンドポイントの追加、削除、または再エンロール」を参照してください。
エンドポイントが、使用する仮想ウォレットへのアクセス権を持っていることを確認します。
エンドポイントは、Oracle Key Vaultの仮想ウォレットに対して読取り、変更、およびウォレット管理アクセス権を持っている必要があります。
詳細は、「仮想ウォレットへのアクセス権のユーザーとエンドポイントへの付与」を参照してください。
okvutil upload
コマンドを実行して、ウォレットをアップロードします。
次に例を示します。
okvutil upload -l "/etc/oracle/wallets" -t wallet -g "HRWallet" Enter wallet password (<enter> for auto-login): password Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password Upload succeeeded
この例の詳細は次のとおりです。
-l
は、アップロードするウォレットのディレクトリ場所を指定します。
-t
はタイプを示します。この場合はOracle Walletです。
-g
は、このウォレットがステップ2で構成されたKey Vault 仮想ウォレットの一部になるように、その仮想ウォレットを指定します。
パスワード要求: 「okvutilのパスワード入力要求のしくみ」を参照してください。
この段階で、Oracle Key Vaultの仮想ウォレットを別のエンドポイントと共有したり、ダンロードしたりできるようになります。それ以外の場合は、「Oracle Walletのダウンロード」に移動します。
okvutil uploadの詳細は、「okvutil uploadコマンド」
を参照してください。
これでアップロードは完了です。これで、ウォレットを共有したり、ダウンロードして同じシステムに戻したり、システムの他の部分で使用したりできます。
okvutil downloadコマンドを使用して、Oracle Key VaultサーバーからエンドポイントにOracle Walletをダウンロードできます。
エンドポイントが、ダウンロードする仮想ウォレットにおける読取りアクセス権を持っていることを確認します。
「仮想ウォレットへのアクセス権のユーザーとエンドポイントへの付与」を参照してください。
okvutil download
コマンドを実行して、ウォレットをダウンロードします。
次に例を示します。
okvutil download -l "/etc/oracle/wallets/orcl/ -t WALLET -g HRWallet Enter new wallet password(<enter> for auto-login): Oracle_wallet_password Confirm new wallet password: Oracle_wallet_password Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password
この例の詳細は次のとおりです。
-l
は、作成されるウォレットの場所です。
-t
はタイプを示します。この場合はOracle Walletです。
-g
は、ステップ1で構成されたOracle Key Vault仮想ウォレットを指定します。
パスワード要求: 「okvutilのパスワード入力要求のしくみ」を参照してください。
ウォレットがすでに存在し、-o
パラメータを使用して既存のウォレットに上書きしなかった場合は、次のアクションが実行されます。
既存のウォレットの名前は、ewallet.p12.
current_timestamp
(timestamp
はEpoch以降の秒数)という形式のバックアップ名に変更されます。
新たにダウンロードされたウォレットにはewallet.p12
という名前が付けられます。
okvutil downloadの詳細は、「okvutil downloadコマンド」
を参照してください。
Oracle Key VaultからダウンロードしたOracle WalletがTDEウォレットとして使用される場合、ダウンロードの前に既存のウォレットを閉じ、パスワード保護されている場合は、後で開きなおします。(自動ログイン・ウォレットは、次にアクセスしたときに自動的に開かれます。)
ウォレットを閉じて再び開くと、ウォレットの内容がTDEデータベースにロードされます。
Oracle Database 11gリリース2の場合:
ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "Oracle_wallet_password"; ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Oracle_wallet_password";
Oracle Database 12cの場合:
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "Oracle_wallet_password"; ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "Oracle_wallet_password";
Oracle RACなどの共有サーバー構成で実行している場合は、データベースを再起動します。
関連項目:
|
Oracle Walletをアップロードおよびダウンロードする場合の推奨事項は、次のとおりです。
元のウォレットの内容に変更がある場合は(キー・ローテーションやキー更新操作など)、Key Vaultにウォレットの最新のコピーが保持されるように、Oracle Key Vaultにウォレットを再アップロードします。
okvutil upload
およびdownload
コマンドには、上書き(-o
)オプションがあります。このオプションを指定する場合、アップロードされるデータと競合する仮想ウォレット内のデータが上書きされるため、注意してください。-o
オプションを使用する前に、ウォレット・ファイルのローカル・バックアップを作成してください。
Oracle Key Vaultサーバー上の複数の仮想ウォレットに対して、同一の物理的なOracle Walletをアップロードしないでください。Oracle Walletを複数のエンドポイントと共有する場合は、エンドポイント・グループを作成します。詳細は、「エンドポイント・グループの管理」を参照してください。
okvutil upload
およびokvutil download
コマンドを使用して、JKSおよびJCEKSキーストアをアップロードおよびダウンロードできます。
トピック:
JKSおよびJCEKSキーストアを長期保持、リカバリおよび共有のためにOracle Key Vaultにアップロードし、必要に応じてそれらをエンドポイントにダウンロードできます。
ウォレットと同様に、JKSまたはJCEKSキーストアをアップロードする場合、Oracle Key Vaultはキーストア内の各項目を読み取ることができます。キーストアの内容は、個々の項目としてアップロードされます。
okvutil uploadコマンドを使用して、Oracle Key VaultサーバーにJavaキーストア(JKS)またはJava Cryptography Extensionキーストア(JCEKS)をアップロードできます。
JavaキーストアがあるサーバーがKey Vaultエンドポイントとしてエンロールされ、プロビジョニングされていることを確認します。
詳細は、「エンドポイントの追加、削除、または再エンロール」を参照してください。
エンドポイントに対してアクセス制御が構成されていることを確認します。
キーストアを仮想ウォレットにアップロードする場合、エンドポイントがこのウォレットへの読取り、変更およびウォレット管理アクセス権を持っていることを確認します。
詳細は、「仮想ウォレットへのアクセス権のユーザーとエンドポイントへの付与」を参照してください。
okvutil upload
コマンドを実行して、キーストアをアップロードします。
次の例に、キーストアを仮想ウォレットにアップロードする方法を示します。
次の例は、JKSキーストアをアップロードする方法を示しています。
okvutil upload -l "/etc/oracle/fin_jks.jks" -t JKS -g "FinanceGrp" Enter source Java keystore password: Java_keystore_password Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password Upload succeeded
この例の詳細は次のとおりです。
-l
は、アップロードされるJavaキーストアの場所です。
-t
は、JKSまたはJCEKSキーストアのタイプです。アップロードおよび後でダウンロードするときは、必ず正しいタイプのJavaキーストアをアップロードしてください。
-g
は、Javaキーストアの内容のアップロード先となるOracle Key Vaultの仮想ウォレットです。
パスワード要求: 「okvutilのパスワード入力要求のしくみ」を参照してください。
次の例は、JCEKSキーストアをアップロードする方法を示しています。
okvutil upload -l "/etc/oracle/hr_jceks.jceks" -t JCEKS -g "HRGrp" Enter source Java keystore password: password Enter Oracle Key Vault endpoint password: password Upload succeeded
okvutil uploadの詳細は、「okvutil uploadコマンド」
を参照してください。
これでアップロードは完了です。これで、Javaキーストアをダウンロードして同じシステムに戻したり、システムの他の部分で使用したりできます。
okvutil download
コマンドを使用して、アップロード済のJKSまたはJCEKSキーストアをダウンロードできます。
エンドポイントが、ダウンロードする仮想ウォレットにおける読取りアクセス権を持っていることを確認します。
「仮想ウォレットへのアクセス権のユーザーとエンドポイントへの付与」を参照してください。
エンドポイント管理者として、コマンドラインから、okvutil download
コマンドを実行してJavaキーストアをダウンロードします。
次に例を示します。
okvutil download -l "/etc/oracle/new_java_files/hr_jceks.jceks" -t JCEKS Enter new Java keystore password: password Confirm new Java keystore password: password Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password
この例の詳細は次のとおりです。
-l
は、アップロードされたJavaキーストアをダウンロードするディレクトリです。
-t
は、JKSまたはJCEKSキーストアのタイプです。必ず正しいタイプのJavaキーストアをダウンロードしてください。
パスワード要求: 「okvutilのパスワード入力要求のしくみ」を参照してください。
okvutil downloadの詳細は、「okvutil downloadコマンド」
を参照してください。
JKSおよびJCEKSキーストアをアップロードおよびダウンロードする場合の推奨事項は、次のとおりです。
元のJKSまたはJCEKSキーストアの内容に変更がある場合は、Key Vaultにキーストアの最新のコピーが保持されるように、Oracle Key Vaultにキーストアを再アップロードします。
okvutil upload
およびdownload
コマンドには、上書き(-o
)オプションがあります。このオプションはファイルを上書きするため、指定する場合は注意してください。キーストアをダウンロードする前に、そのバックアップを作成することをお薦めします。
Oracle Key Vaultサーバー上の複数の仮想ウォレットに対して、同一の物理的なJKSまたはJCEKSキーストアをアップロードしないでください。Javaキーストアを複数のエンドポイントと共有する場合は、エンドポイント・グループを作成します。詳細は、「エンドポイント・グループの管理」を参照してください。
okvutil upload
およびokvutil download
コマンドを使用して、資格証明ファイルをアップロードおよびダウンロードできます。
トピック:
資格証明ファイルは、不透明オブジェクトとして格納することでアップロードできます。
不透明オブジェクトの例は、次のとおりです。
X.509証明書を含むファイル
Kerberosキータブ
パスワードを含むファイル
SSH鍵を含むファイル
これらの資格証明ファイルをアップロードすると、長期保持用の一元的でセキュアな場所が得られます。資格証明ファイルは、アップロードした後で、同じサーバーの場所に取得またはリカバリ(ダウンロード)したり、他の信頼できるサーバーの場所と共有したりできます。Oracle Key Vaultは、最大128 KBのサイズの資格証明ファイルをサポートします。
資格証明ファイルは、Oracle Key Vaultエンドポイントがアクセスできるサーバー・インフラストラクチャ(データベース・サーバーやアプリケーション・サーバーを含む)のどこにでも配置できます。アップロード・プロセスでは、資格証明ファイルは変更されません。Oracle Key Vaultは、資格証明ファイルを不透明オブジェクトとしてアップロードし、ファイルの内容を解析しません。
okvutil uploadコマンドを使用して、資格証明ファイルをアップロードできます。
資格証明ファイルがあるサーバーがKey Vaultエンドポイントとしてエンロールされ、プロビジョニングされていることを確認します。
詳細は、「エンドポイントの追加、削除、または再エンロール」を参照してください。
エンドポイントに対してアクセス制御が構成されていることを確認します。
資格証明ファイルを仮想ウォレットにアップロードする場合、エンドポイントがウォレットへの読取り、変更およびウォレット管理アクセス権を持っていることを確認します。
詳細は、「仮想ウォレットへのアクセス権のユーザーとエンドポイントへの付与」を参照してください。
okvutil upload
コマンドを実行します。
次に例を示します。
okvutil upload -l "/etc/oracle/app/creds/hr.keytab" -t kerberos -g HRWallet -d "Kerberos keytab file for HR group, 06_11_14"
Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password
この例の詳細は次のとおりです。
-l
は、アップロードされるhr.keytab
資格証明ファイルのディレクトリ・パスです。ディレクトリの場所は、二重引用符で囲みます。
-t
は、資格証明ファイルのタイプを指定します。この例ではKerberosキータブ・ファイルです。KERBEROS
の他に、指定できるタイプは次のとおりです。
SSH鍵ファイルの場合、SSH
機密情報(たとえばアップロードまたはダウンロードされたファイル)が格納されている他のファイルの場合、OTHER
-g
は、すでに存在するHRWallet
グループに資格証明ファイルを追加します。このパラメータを使用すると、デフォルトの仮想ウォレットではなく、HRアプリケーション・ユーザーの必要に応じた専用のウォレットに資格証明をアップロードできます。この例では、HRWallet
はKey Vault仮想ウォレットで、そのアクセス制御はステップ2で構成されました。
-d
は、オプションの説明です。ベスト・プラクティスとしては、資格証明ファイルの使用目的の概要と、アップロードを実行した日付を入れておきます。この情報は、あとで参照し、資格証明ファイルを追跡する助けになります。この説明は、必要に応じて、後からOracle Key Vault管理コンソールで変更できます。
パスワード要求: 「okvutilのパスワード入力要求のしくみ」を参照してください。
出力結果は、次のようになります。
Upload succeeded
okvutil uploadの詳細は、「okvutil uploadコマンド」
を参照してください。
これでアップロードは完了です。これで、資格証明ファイルをダウンロードして同じシステムに戻したり、システムの他の部分で使用したりできます。
okvutil download
コマンドを使用して、資格証明ファイルをダウンロードできます。
次のいずれかの方法を使用して、ダウンロードする必要のある資格証明ファイルの一意のIDを見つけます。
Oracle Key Vault管理コンソール: 鍵管理者ロールを付与されたユーザーまたは仮想ウォレットに必要なアクセス権を持っているユーザーとしてログインします。(「Oracle Key Vault管理コンソールへのログイン」を参照。) Oracle Key Vault管理コンソールで、「Keys & Wallets」タブから「All Items」を選択して、アップロードされたファイルを検索します。ダウンロードする、アップロードされたファイルの一意のIDを書き留めます。資格証明ファイルは、不透明オブジェクトとしてリストされます。
okvutil list command: 資格証明ファイルへのアクセス権を持つエンドポイント、または資格証明ファイルが含まれている仮想ウォレットから、okvutil list
コマンドを実行します。ファイルのアップロード時に入力した説明に基づいて、ダウンロードする必要のある資格証明ファイルの一意のIDを見つけます。
コマンドラインから、okvutil download
コマンドを実行して、アップロードされた資格証明ファイルをダウンロードします。
次に例を示します。
okvutil download -l "/etc/oracle/app/newcreds/hr.keytab" -t kerberos -i 6ba7b810-9dad-11d1-80b4-00c04fd430c8
Enter Oracle Key Vault endpoint password: Key_Vault_endpoint_password
この例の詳細は次のとおりです。
-l
は、アップロードされた資格証明をダウンロードするディレクトリです。
-t
は、資格証明ファイルのタイプを指定します。この例ではKerberosキータブ・ファイルです。KERBEROS
の他に、指定できるタイプは次のとおりです。
SSH鍵ファイルの場合、SSH
機密情報(たとえばアップロードまたはダウンロードされたファイル)が格納されている他のファイルの場合、OTHER
-i
は、資格証明ファイルの一意のIDです。
出力は、次のようになります。
Download succeeded
okvutil downloadの詳細は、「okvutil downloadコマンド」
を参照してください。
資格証明ファイルをアップロードおよびダウンロードする場合の推奨事項は、次のとおりです。
アップロードの完了後は、資格証明ファイルが次に変更されたときに再アップロードしてください。そうしないと、アップロードされたファイル(およびそれ以降にダウンロードされたバージョン)は最新でないものになります。資格証明ファイルの最終変更日を、アップロードされたバージョンのタイムスタンプと定期的に比較してください。
okvutil upload
およびdownload
コマンドには、上書き(-o
)オプションがあります。このオプションは、アップロードした資格証明ファイルを上書きするため、指定する場合は注意してください。アップロードとダウンロードのプロセスを開始する前に、資格証明ファイルのバックアップを作成することをお薦めします。
複数のサーバー・エンドポイント間で、1つの資格証明ファイルを共有できます。仮想ウォレットに不透明オブジェクトを追加し、続いて、すべてのエンドポイントがその仮想ウォレットへのアクセス権を持っていることを確認します。オプションで、エンドポイント・グループを定義し、すべてのサーバー・エンドポイントをそのグループのメンバーにします。okvutil upload
コマンドの-g
オプションを使用して、この共通のウォレットを使用して共有する証明書ファイルを、Oracle Key Vaultにグループとしてアップロードします。ウォレットを定義して、それをエンドポイント・グループにアタッチします。グループのすべてのメンバーが、そのウォレットへのアクセス権を持ちます。
エンドポイントに対する直接接続を実行するようにTransparent Data Encryption (TDE)を構成し、TDEマスター・キーを集中管理できます。
トピック:
Oracle Database 11gリリース2 (11.2)以降では、TDE直接接続を使用することで、ローカルOracle Walletファイルを使用するかわりに、ネットワーク接続を介してTransparent Data Encryption (TDE)マスター・キーを集中管理できます。
接続の構成には、Oracle Key Vaultに接続するPKCS#11ライブラリの使用が含まれます。構成を実行すると、その後のTDEマスター・キーはすべてOracle Key Vaultで格納および管理されます。この項では、使用できる2つのシナリオについて説明します。
データベースにまだTDEウォレットがない場合は、「Oracle Key Vaultと新しいTDE対応データベースの間での接続の構成」に記載の手順に従ってください。
TDEにデータベースがすでに構成されている場合は、既存のウォレット・ファイルを移行する必要があります。「既存のTDEウォレットのOracle Key Vaultへの移行」を参照してください。
TDE鍵管理は、ハードウェア・セキュリティ・モジュール(HSM)との連携と同じように、Oracle Key Vaultと連携動作します。暗号化と復号化の前に、ウォレットを開く必要があります。ウォレットを閉じると、表と表領域にある暗号化データは使用できません。適用される規制に適合した状態を保つため、TDEマスター暗号化鍵は定期的にローテーションしてください。
Oracle Key Vaultは、初期のTDEリリースを管理するために使用されるSQL文(特にALTER SYSTEM
とADMINISTER KEY MANAGEMENT
SQL文の使用)をサポートします。
クラスタ化されたデプロイメントを移動または使用する他のデータベース機能とともに、複数のトポロジにTDEをデプロイできます。
両方のエンドポイントのマスター暗号化鍵を同期状態に保つ必要があるため、データの移動とレプリケーションはOracle Advanced Security TDEの大きな課題です。これらの課題に対応するため、Oracle Key Vaultは一般的なOracle Database機能をサポートします。
データ移動では、Oracle Key Vaultは次をサポートします。
Oracle Recovery Manager (RMAN)のバックアップおよびリカバリ操作
Oracle Data Pump
トランスポータブル表領域(Oracle Database 12c以降)
クラスタ化デプロイメントでは、Oracle Key Vaultは次をサポートします。
Oracle Active Data Guard
Oracle Real Application Clusters(Oracle RAC)
Oracle GoldenGate
Oracle Key Vaultと、まだTransparent Data Encryption用に構成されていないデータベースの間の接続を構成できます。
Oracle
プロセスを手動で開始する前に、ORACLE_BASE
環境変数が設定されていることを確認します。
または、$ORACLE_BASE/okv/$ORACLE_SID/okvclient.ora
ファイルからkey_vault_endpoint_installation_dir
/conf/okvclient.ora
ファイルへのソフト・リンクを作成します。Oracle Real Application Clusters環境のすべてのデータベース・インスタンスでこの手順を実行します。
COMPATIBILITY
初期化パラメータが11.2.0.0
以降に設定されていることを確認します。
詳細は、「エンドポイント・データベース要件」を参照してください。
TDEデータを含むTDE対応データベース用にエンドポイントをエンロールおよびプロビジョニングします。
エンドポイントを初期エンロールする場合、エンドポイント・タイプに合ったOracle Databaseを使用してTDEと統合する必要があります。「エンドポイントの追加、削除、または再エンロール」のステップ4を参照してください。詳細は、「エンドポイントの追加、削除、または再エンロール」を参照してください。
エンドポイントが、使用する仮想ウォレットへのアクセス権を持っていることを確認します。
エンドポイントは、読取り、変更、およびウォレット管理アクセス権を持っている必要があります。
詳細は、「仮想ウォレットへのアクセス権のユーザーとエンドポイントへの付与」を参照してください。
次のようにして、このデータベース上のsqlnet.ora
ファイルを、Oracle Key Vaultを参照するように構成します。
ENCRYPTION_WALLET_LOCATION=(SOURCE=METHOD=HSM))
Transparent Data Encryptionは、Oracle Key Vaultを含むすべての外部鍵管理システムのパラメータ値として、HSM
を使用します。
デフォルトで、sqlnet.ora
ファイルは、ORACLE_HOME
/network/admin
ディレクトリ、またはTNS_ADMIN
環境変数で設定された場所にあります。エンドポイントは、PKCS#11ライブラリ・サポートを使用してTDEマスター暗号化鍵を管理します。このため、構成設定や管理コマンドは、HSMで使用されるものと類似しています。
重要: この段階では、Oracle Key VaultはTDEを使用でき、すべてのTDE関連のSQL文を使用できます。すべてのTDEコマンドと文には、エンドポイントのエンロール・プロセスの際に、「タスク2: エンドポイントへのOracle Key Vaultクライアント・ソフトウェアのインストール」で指定したKey Vaultエンドポイント・パスワードを使用します。
SQL*Plusの場合、データベースに再接続します。
変更は、現在のSQL*Plusセッションをログアウトし、もう一度再接続してから表示されます。
V$ENCRYPTION_WALLET
動的ビューを問い合せて、sqlnet.ora
ファイル内のMETHOD_DATA
の設定が変更されたことを確認します。
これで、問合せの出力にHSM
が表示されます。
SELECT * FROM V$ENCRYPTION_WALLET;
Key VaultがTDEマスター・キーを直接管理できるように、Key Vaultと統合するようにTDEを構成します。
簡潔には、次の操作をする必要があります。
ルート・ユーザーとしてroot.sh
スクリプトを実行して、liborapkcs.so
ファイル(lib
ディレクトリ内)を/opt/Oracle/extapi/64/hsm/Oracle/1.0.0
ディレクトリにコピーします。
詳細は、「タスク2: エンドポイントへのOracle Key Vaultクライアント・ソフトウェアのインストール」のステップ6を参照してください。
データベース上のパスワード保護されたウォレットの場合は、ウォレットを開きます。(自動ログイン・ウォレットは自動的に開かれます。)
Oracle Database 11gリリース2の場合は、ALTER SYSTEM
システム権限を付与されたユーザーとして、次を実行します。
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Key_Vault_endpoint_password";
Oracle Database 12cの場合は、SYSKM
管理権限を付与されたユーザーとして、次を実行します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "Key_Vault_endpoint_password";
マスター暗号化鍵を設定します。
Oracle Database 11gリリース2の場合:
ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "Key_Vault_endpoint_password";
Oracle Database 12cの場合:
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY IDENTIFIED BY "Key_Vault_endpoint_password";
これで構成は完了です。sqlnet.ora
ファイルを正しく構成して、TDEの必要な他の構成を完了すると、暗号化鍵を設定した場合(ALTER SYSTEM SET ENCRYPTION KEY
またはADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY
を使用)、Oracle Key VaultにTDEマスター・キーが作成されます。表の暗号化や、データベースへの暗号化された表領域の作成ができます。
関連項目: 表や表領域の暗号化の詳細は、『Oracle Database Advanced Securityガイド』 |
既存のTDEウォレットをOracle Key Vaultに移行し、必要に応じて、TDEによって以前に暗号化されたデータベース内容を、Oracle Walletを使用してリストアできます。
トピック:
TDEウォレットがすでに存在する場合は、Oracle Key Vaultを認識するようにsqlnet.ora
ファイルを変更してから、既存のTDEウォレットをKey Vaultに移行する必要があります。
Oracle Walletは、現在のTDEマスター・キーとともに、TDEマスター・キーをローテーションさせる毎回のキー更新操作によって上書きされた、過去のTDEマスター・キーを保持しています。この過去のTDEマスター・キーは、過去のTDEマスター・キーの1つを使用して作成されたOracle Databaseバックアップをリストアする際に助けになります。Oracle WalletファイルからOracle Key VaultへのTDE移行の際、Key Vaultは新しいマスター・キーを生成します。このマスター・キー生成の後は、Oracle Key Vaultがすべての新しいキーを保持します。
移行を実行する前に、Oracle WalletをKey Vaultにアップロードすることをお薦めします。これにより、移行を開始する前に、過去のすべての鍵情報とともにウォレットのバックアップを保管できます。(以前に暗号化されたデータ・バックアップのいずれかをリストアする必要がある場合は、TDEによって以前に暗号化されたデータベース内容のOracle Walletを使用したリストアを参照してください)。移行が完了したら、クライアント・システムで、手動で古いウォレットを削除してください。
共有サーバーまたはOracle RAC構成で運用している場合、データベースを再起動して、新しいTDEマスター・キーが、共有サーバー構成のすべてのエンドポイント・データベース・ノードに更新されるようにする必要があります。
okvutil upload
コマンドを使用して、既存のTDEウォレットをOracle Key Vaultに移行できます。次のステップ7および8に示されているとおり、同じSQLPLUSセッションでウォレットを移行する前に、ソフトウェア・ウォレットを閉じてHSMウォレットを開くことが非常に重要です。
移行するデータが含まれているデータベースをバックアップします。
データベースのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
エンドポイントのエンロールを完了します。
エンドポイントのエンロールに関する詳細は、「エンドポイントのエンロールとプロビジョニングの概要」を参照してください。
まだしていなければ、okvutil upload
コマンドを使用して、既存のOracle WalletをKey Vaultにアップロードします。
この手順では、過去のTDEマスター・キーがすべて含まれているウォレットのコピーがOracle Key Vaultにあることを保証します。
このコマンドの詳細は、「okvutil uploadコマンド」を参照してください。
HSMのOracle Databasesqlnet.ora
ファイルを次のように構成します。
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=HSM)(METHOD_DATA=(DIRECTORY=wallet_location)))
デフォルトで、sqlnet.ora
ファイルは、ORACLE_HOME
/network/admin
ディレクトリ、またはTNS_ADMIN
環境変数で設定された場所にあります。
SQL*Plusの場合、データベースに再接続します。
変更は、データベース・セッションを再起動するまで表示されません。
V$ENCRYPTION_WALLET
動的ビューを問い合せて、sqlnet.ora
ファイル内のMETHOD_DATA
の設定が変更されたことを確認します。これで、問合せの出力にMETHOD=HSM
が表示されます。
SELECT * FROM V$ENCRYPTION_WALLET;
エンドポイントがOracle Database 11gリリース2の場合は、ローカルのOracle Walletを閉じてHSMウォレットを開きます。
ローカルのOracle Walletを閉じます。
自動ログイン・ウォレットが開いている場合、次のコマンドを実行します。
oracle$ cd <wallet location> oracle$ mv cwallet.sso cwallet.sso.bak sqlplus> alter system set wallet close;
パスワード保護ウォレットが開いている場合、次のコマンドを実行します。
sqlplus> alter system set wallet close identified by "<wallet password>";
HSMウォレットを開きます。
sqlplus> alter system set wallet open identified by "<HSM connect string>";
TDEウォレットからOracle Key Vaultに移行します。
Oracle Database 11gリリース2の場合:
エンドポイント・クライアント・ソフトウェアのインストール時にウォレットのパスワードを入力した場合、次のコマンドを実行します。
sqlplus> alter system set encryption key identified by "<endpoint password
>" migrate using "<wallet password
>";
エンドポイント・クライアント・ソフトウェアのインストール時に自動ログイン・オプションを選択した場合、次のコマンドを実行します。
sqlplus> alter system set encryption key identified by "null" migrate using "<wallet password
>";
Oracle Database 12cの場合は、SYSKM
管理権限を付与されたユーザーとして、次を実行します。
sqlplus>administer key management set encryption key identified by
"<endpoint password>
" MIGRATE USING "<wallet password
>" with backup;
注意: administer key management コマンドでwith backup 句は必要ですが、Oracle Key VaultではTDEによって無視されます。 |
ウォレットを開きます。エンドポイントでOracle Key Vaultに接続するパスワードが必要な場合は、パスワードを入力します。
Oracle Database 11gリリース2の場合:
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Key_Vault_endpoint_password";
Oracle Database 12cの場合:
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "Key_Vault_endpoint_password";
移行の完了後、自動ログイン・ウォレットを使用している場合、cwallet.sso.bak
ファイルの名前をcwallet.sso
に変更してそれを再有効化します。
Oracleデータベース・エンドポイントが、ローカルのOracle WalletファイルからOracle Key Vaultの使用に変換された場合、その後、このローカル・ウォレット・ファイルにある鍵を使用して暗号化されたバックアップをリストアする必要がある場合があります。
この場合、Oracle Key Vaultから、リストア・プロセスでバックアップを復号化する際に使用するローカル・ウォレット・ファイルに、必要な鍵をダウンロードする必要があります。たとえば、Finance_DB
データベースが最近移行して、移行前のウォレットをアップロードした後で、Oracle Key VaultへのTDE直接接続を使用するようになったと想定します。システム障害のために、Oracle Key Vaultへの移行前に取ったデータベース・バックアップからリストアする必要が生じた場合も、以前にアップロードしたFinance_DB
ウォレット・データが含まれるOracle仮想ウォレットからダウンロードしたOracle Walletを使用して、データベースの内容をリストアできます。
Oracle Walletを使用して以前にTDE暗号化したデータベース内容をリストアする手順:
okvutil download
コマンドを使用して、Oracle Key VaultからこのOracle Walletをダウンロードします。
「okvutil downloadコマンド」を参照してください。
Oracle Walletをダウンロードしたエンドポイントで、sqlnet.ora
ファイルに次の設定を追加します。
METHOD_DATA=wallet_file_path METHOD=FILE ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=wallet_file_path)))
ENCRYPTION_WALLET_LOCATION
設定は1行で記述します。
ステップ1でパスワード保護されたウォレットを作成した場合、指定したパスワードを使用してウォレットを開きます。
Oracle Database 11gリリース2の場合は、ALTER SYSTEM
システム権限を付与されたユーザーとして、次を実行します。
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "wallet_password";
Oracle Database 12cの場合は、SYSKM
管理権限を付与されたユーザーとして、次を実行します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "wallet_password";
ウォレットを開くと、サーバーは更新されたsqlnet.ora
ファイルの内容を読み取ることができます。この時点で、エンドポイント・サーバーは元のバージョンのウォレットとともに実行できる状態にリストアされました。
TDEを構成したOracle Databaseで、 Oracle Database Real Application Cluster (Oracle RAC)環境にOracle Walletをアップロードした場合、クラスタ内のノードは、仮想ウォレットを共有する必要があります。
クラスタが仮想ウォレットを共有できるようにするには、次のいずれかの手法を使用します。
仮想ウォレットを、クラスタ内のすべてのノードの共有デフォルト・ウォレットとして定義します。
クラスタ内の各ノードが別々のデフォルト・ウォレットを持っている場合、すべての他のノードのデフォルト・ウォレットへのアクセス権を各ノードに付与することで、同じ効果が得られます。他のノードのデフォルト・ウォレットへのアクセス権を各ノードに付与するプロセスを単純化するために、エンドポイント・グループを使用できます。
最初の方法に対するこの手法の優位性は、デフォルト・ウォレットをすでに持っている複数のノードがあり、それらにウォレットを共有させる場合でも、デフォルト・ウォレットを再割当てする必要がないことです。最初の方法では、エンドポイントのデフォルト・ウォレットを再割当てするためにエンドポイントを再エンロールする必要があるため、これは特に重要です。他のノードのデフォルト仮想ウォレットへのアクセス権を各ノードに付与するプロセスを単純化するために、エンドポイント・グループを使用できます。
単一インスタンス・データベース環境の場合と同様、パスワード保護されたウォレットをダウンロードしたら、手動で開く必要があります。プライマリ・ノード上に1つのウォレットがあり、その後、そのウォレットを他のノードにダウンロードする場合、これらの各ノード上でウォレットを明示的に開く必要があります。
Oracle GoldenGateの共有シークレットおよびTDEマスター・キーを含むOracle WalletをOracle Key Vaultサーバーに移行できます。
トピック:
Oracle Key Vaultが使用されず、Oracle TDE対応のデータベースがOracle GoldenGateおよびOracle Walletとともに構成されている環境の場合、このデータベース(ソース・データベースと呼ばれます)は、マスター・キーが格納されている同じOracle Walletに、Oracle GoldenGateの共有シークレットを格納します。
このため、Oracle Key Vaultエンドポイントとしてソース・データベースを構成する場合、Oracle GoldenGateの共有シークレットは、マスター・キーがTDE対応のソース・データベース用に格納されている、同じOracle Key Vaultの仮想ウォレットに格納されます。
Oracle GoldenGateの共有シークレットとTDEマスター・キーが含まれるOracle Walletを、okvutil
コマンドライン・ユーティリティを使用してOracle Key Vaultに移行する場合、TDE対応のソース・データベースのデフォルト・ウォレットには、共有シークレットおよびマスター・キーとともに移行されたOracle Wallet全体が格納されます。
また、構成されたターゲット・データベースがOracle Databaseの場合、すべてのTDEコマンドをレプリケートできるように、このターゲット・データベースがTDE対応であることを確認する必要があります。ソースおよびターゲットの2つのOracle TDE対応データベースでは、Oracle Wallet内に同じマスター・キーを持つ必要がないことに注意してください。このターゲット・データベースを新しいKey Vaultエンドポイントとして構成した場合、独立のKey Vaultエンドポイントで通常行うのと同様に、Oracle Key Vaultとの間でウォレットをアップロードおよびダウンロードできます。追加の構成は必要ありません。
Oracle GoldenGateデプロイメントでTDE直接接続を使用するには、2つの構成手順を実行する必要があります。
「Oracle Key Vaultと新しいTDE対応データベースの間での接続の構成」のステップに従って、Oracle GoldenGateデプロイメント内のソース・データベースとOracle Key Vaultの間の接続を構成します。
ソース・データベース上で、Oracle WalletにおけるOracle GoldenGateシークレットの格納を構成します。
詳細は、『Oracle Database Advanced Securityガイド』を参照してください。
これで構成は完了です。sqlnet.ora
ファイルを正しく構成して、ソース・データベース上でTDEに必要な他の構成を完了すると、暗号化鍵を設定した場合(ALTER SYSTEM SET ENCRYPTION KEY
またはADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY
を使用)、Oracle Key VaultにTDEマスター・キーが作成されます。表の暗号化や、データベースへの暗号化された表領域の作成ができます。ソース・データベースで作成された暗号化データは、この手順が実行された後に、ターゲット・データベース上で引き続きレプリケートされます。他のOracle GoldenGate共有シークレットは、Oracle Key Vaultに格納されました。
TDE構成済データベースがあるOracle GoldenGate環境では、Oracle Walletには、TDEマスター・キーとOracle GoldenGate共有シークレットの両方が含まれます。
このOracle WalletのOracle Key Vaultへの移行は、「既存のTDEウォレットのOracle Key Vaultへの移行」で従う手順と類似しています。
このOracle GoldenGate環境で使用されるターゲット・データベースは(Oracle TDE対応データベースの場合)、Oracle Key Vaultを使用するか、Oracle Walletを使用し続けるかのどちらかにも構成できることに注意してください。これらのデータベースは、スタンドアロンのTDEデータベース・エンドポイントの場合と同じように扱ってください。このため、このタイプのウォレットは、「既存のTDEウォレットのOracle Key Vaultへの移行」の手順に従って移行することをお薦めします。
この移行を完了すると、構成は完了です。sqlnet.ora
ファイルを正しく構成して、TDEの必要な他の構成を完了すると、暗号化鍵を設定した場合(ALTER SYSTEM SET ENCRYPTION KEY
またはADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY
を使用)、Oracle Key VaultにTDEマスター・キーが作成されます。引き続き、暗号化された表または表領域をデータベースに作成し、使用することができます。ソース・データベースで作成された暗号化データは、この手順が実行された後に、ターゲット・データベース上で引き続きレプリケートされます。
Oracle Active Data Guard環境では、Oracle Key VaultサーバーへのOracle Walletのアップロード、TDE直接接続の使用、エンドポイント間でのウォレットの移行、ロジカル・スタンバイ・データベースでのTDEウォレットの移行と確認などのアクティビティを実行できます。
トピック:
Oracle Walletを使用するTDE対応のプライマリおよびスタンバイ・データベースがあるOracle Active Data Guard環境では、初期TDE構成後、およびその後でプライマリ・データベース上のマスター・キーをキー更新する場合はいつでも、プライマリ・データベースからスタンバイへOracle Walletファイルを物理的にコピーする必要があります。
そのため、Oracle Key VaultをTDE対応のActive Data Guardデータベースとともに使用する場合、プライマリおよびスタンバイ・データベースは、エンドポイントとしてOracle Key Vaultに登録されている必要があります。プライマリおよびスタンバイ・データベースに登録されたエンドポイントの両方が、Oracle Key Vault上に同じデフォルト仮想ウォレットを持っていることを確認する必要があります。
このようにして、2つのデータベースは、ウォレット・ファイルをプライマリ・データベースからスタンバイ・データベースに手動でコピーすることなく、鍵およびウォレットの集中管理を実現できます。
Active Data Guard環境にOracle Walletをアップロードできます。
プライマリおよびスタンバイ・データベースとして、それぞれ1つのエンドポイントを登録します。
「エンドポイントの追加、削除、または再エンロール」を参照してください。
それぞれのデータベース上で各エンドポイント用のokvclient.jar
ファイルをダウンロードします。
「タスク2: エンドポイントへのOracle Key Vaultクライアント・ソフトウェアのインストール」を参照してください。
移行または逆移行を実行する必要がある場合は、エンドポイント・パスワードがTDEウォレット・パスワードと同じであることを確認します。
プライマリおよびスタンバイ・データベースのエンドポイントの両方が、同じデフォルト仮想ウォレットを使用していることを確認します。
Oracle Active Data Guard環境でTDE直接接続を実行するための手順は、標準Oracle Database環境の場合と同じです。
詳細は、「Oracle Key VaultでのTDE直接接続の使用について」を参照してください。
Oracle Active Data Guard環境でOracle Walletを移行できます。
okvutil upload
コマンドを使用して、プライマリ・データベース上にあるローカルのOracle Walletの内容をOracle Key Vaultにアップロードします。
「okvutil uploadコマンド」を参照してください。
「既存のTDEウォレットのOracle Key Vaultへの移行」の説明に従って、移行手順を実行します。
スタンバイ・データベース上で既存のOracle Walletを閉じます。
Oracle Database 11gリリース2の場合は、ALTER SYSTEM
システム権限を付与されたユーザーとして、次を実行します。
ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "Key_Vault_endpoint_password";
Oracle Database 12cの場合は、SYSKM
管理権限を付与されたユーザーとして、次を実行します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "Key_Vault_endpoint_password";
スタンバイ・データベースを停止します。
次に例を示します。
SHUTDOWN IMMEDIATE
スタンバイ・データベースを再起動します。
次に例を示します。
STARTUP
Oracle Walletを開きます。
Oracle Database 11gリリース2の場合は、ALTER SYSTEM
システム権限を付与されたユーザーとして、次を実行します。
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Key_Vault_endpoint_password";
Oracle Database 12cの場合は、SYSKM
管理権限を付与されたユーザーとして、次を実行します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "Key_Vault_endpoint_password";
スタンバイ・データベース上で適用プロセスを開始します。
スタンバイ・データベース上での適用プロセスの開始に関する情報は、『Oracle Data Guard概要および管理』を参照してください。
ロジカル・スタンバイ・データベースを構成済で、Oracle Databaseリリース12cを使用している場合、Oracle Key VaultにTDEウォレットを移行できます。
同じデフォルトの仮想ウォレットを持つようにプライマリおよびスタンバイ・エンドポイントを登録します。
「エンドポイント・グループの管理」を参照してください。
必要に応じて、各エンドポイントにokvclient.jar
ファイルをダウンロードしてインストールします。
「エンロールとプロビジョニングのファイナライズ」を参照してください。
プライマリ・データベースで移行を実行します。
「既存のTDEウォレットのOracle Key Vaultへの移行」を参照してください。
ロジカル・スタンバイでSQL Applyプロセスを完了してから、スタンバイ・データベースを再起動します。
SQL Applyプロセスの詳細は、『Oracle Data Guard概要および管理』を参照してください。
移行に成功したというステータスを確認するには、V$ENCRYPTION_WALLET
動的ビューを問い合せます。
Oracle Databaseリリース12c環境のロジカル・スタンバイ構成で、Oracle TDEウォレットを移行した後に構成を確認するには、V$ENCRYPTION_WALLET
動的ビューのWRL_TYPE
およびWALLET_ORDER
列を問い合せます。
V$ENCRYPTION_WALLET
ビューを問い合せることで、プライマリ・キーストアを追跡できます。単一ウォレットのみを構成している場合、WALLET_ORDER
列はSINGLE
に設定されます。2ウォレットまたは混在構成の場合、列は、アクティブ・マスター・キーが存在する場所に応じて、PRIMARY
またはSECONDARY
に設定されます。次の問合せについて検討します。
次の問合せでは、単一ウォレットのみが構成されています。
SELECT WRL_TYPE, WALLET_ORDER FROM V$ENCRYPTION_WALLET; WRL_TYPE WALLET_OR -------------------- --------- FILE SINGLE
ロジカル・スタンバイ構成の次の問合せでは、アクティブ・マスター・キーがOracle Key Vault仮想ウォレットに移行されています。
SELECT WRL_TYPE, WALLET_ORDER FROM V$ENCRYPTION_WALLET; WRL_TYPE WALLET_OR -------------------- --------- FILE SECONDARY HSM PRIMARY
この問合せでは、論理構成のプライマリ・データベースとスタンバイ・データベースの両方で、HSM
がPRIMARY
ウォレットとして示されます。