マスター鍵のローテーション-標準プラン
マスター・キーを Hyper Protect Crypto Services インスタンスにロードすると、マスター・キーをオンデマンドでローテーションできるため、業界標準および暗号のベスト・プラクティスに適合します。
マスター鍵は、サービス・インスタンスで管理する暗号鍵をラップするために使用されます。 マスター鍵のローテーションを使用して、元のマスター鍵を廃棄し、鍵ストレージ全体を再暗号化する新しいマスター鍵をロードします。
マスター鍵がローテートされている場合でも、一部の KMS 鍵アクション (鍵のリスト、鍵メタデータの取得、鍵の削除など) を実行できますが、鍵を作成したり鍵をローテートしたりすることはできません。 マスター鍵のローテーション中に PKCS #11 API も GREP11 API も呼び出すことはできません。
マスター鍵のローテーションの仕組み
マスター・キーのローテーションは、暗号化ユニットの 2 つのタイプのマスター・キー・レジスター (新規マスター・キー・レジスターと現行マスター・キー・レジスター) 間で値を安全に転送して機能します。 サービス・インスタンスの初期化に使用するアプローチによっては、ローテーション・プロセスが若干異なります。
スマート・カードおよび管理ユーティリティーを使用したマスター鍵のローテート
管理ユーティリティーを使用して作成されたマスター鍵は、マスター鍵パーツが保管されているスマート・カードを使用してローテートできます。 マスター・キーをローテーションする前に、使用するキー・パーツを作成する必要があります。
新しいマスター・キーの値は、2 つまたは 3 つのキー・パーツで作成できます。マスター鍵をローテートするためには、現行マスター鍵レジスターが同じ検証パターンを持つ Valid
状態であり、新規マスター鍵レジスターが Empty
である必要があります。
サービス・インスタンスにリカバリー暗号装置が割り当てられているかどうかに関係なく、管理ユーティリティーを使用してマスター鍵をローテートできます。
次のフローは、このモードでのマスター鍵のローテーションの仕組みを示しています。
- Trusted Key Entry アプリケーションで 「ロード」 ボタンをクリックして、新規マスター鍵レジスターをロードします。 新規マスター鍵レジスターの状態が、
Empty
からFull uncommitted
に変更されます。 - Trusted Key Entry アプリケーションで 「コミット」 ボタンをクリックして、新しいマスター鍵の値をコミットします。 新規マスター鍵レジスターの状態が
Full committed
に変わります。 - Trusted Key Entry アプリケーションで「 ローテート 」ボタンをクリックして、鍵ストレージを再暗号化し、新しいマスター鍵をアクティブ化します。
- 鍵ストレージの暗号鍵が、現行マスター鍵レジスターの値を使用して復号され、その後、新規マスター鍵レジスターの値を使用して再暗号化されます。 再ラップはハードウェア・セキュリティー・モジュール (HSM) 内で行われるため、安全です。
- 新規マスター鍵がアクティブになり、
Valid
状態の現行マスター鍵レジスターにロードされます。新規マスター鍵レジスターはクリアされて、Empty
状態に戻ります。
次のチャートは、マスター鍵のローテーション時のマスター鍵レジスターの状態変化を示しています。 詳しい手順については、スマート・カードと管理ユーティリティーを使用したマスター鍵のローテーションを参照してください。
リカバリー用暗号装置を使用したマスター鍵のローテート
サービス・インスタンスにリカバリー用暗号装置が割り当てられている場合、鍵パーツ・ファイルを使用する以外に、ibmcloud tke auto-mk-rotate
コマンドを使用してマスター鍵をローテートすることもできます。 このコマンドを使用すると、ランダムな新規マスター・キーの値がサービス・インスタンスのリカバリー暗号化ユニットのいずれかに生成され、サービス・インスタンスの他の暗号化ユニットに安全に移動されます。
サービス・インスタンスにリカバリー用暗号装置が割り当てられており、サービス・インスタンスで PKCS #11 鍵ストアが有効になっていない場合にのみ、ibmcloud tke auto-mk-rotate
コマンドを使用してマスター鍵をローテートします。 現在、マドリッド (eu-es
) 以外のサポートされている地域では、リカバリー暗号装置が有効になっています。 サポートされるリージョンについて詳しくは、地域とロケーションを参照してください。
マスター鍵のローテーションの前に新規マスター鍵を準備する必要はありません。 IBM TKE CLI プラグインを使用してマスター・キーをローテーションするには、事前に動作可能な暗号化ユニットとリカバリー暗号化ユニットの両方の現行マスター・キー・レジスターがすべて
Valid
状態であって、なおかつ現行マスター・キーがロード済みで、新規マスター・キー・レジスターがすべて空である必要があります。
ローカル・ワークステーションのファイルから新規マスター鍵の値をロードするオプションと比較すると、このモードの主な相違点は、最初にリカバリー用暗号装置内で新規マスター鍵の値がランダムに生成されて、その後で、その他の暗号装置にエクスポートされる点です。
次のフローは、このモードでのマスター鍵のローテーションの仕組みを示しています。
- サービス・インスタンスに割り当てられたリカバリー用暗号装置の新規マスター鍵レジスターに、新しいランダムなマスター鍵の値が生成されます。 新規マスター鍵レジスターの状態が、
Empty
からFull uncommitted
に変更されます。 - 新規マスター鍵の値が、サービス・インスタンスに割り当てられている暗号装置の新規マスター鍵レジスターと、サービス・インスタンスのその他のリカバリー用暗号装置にコピーされます。 これで、すべての新規マスター鍵レジスターが、
Full uncommitted
状態になります。 - 新規マスター鍵がコミットされて、すべての新規マスター鍵レジスターの状態が
Full committed
に変わります。 - 鍵ストレージが再暗号化されます。 サービス・インスタンスで管理される暗号鍵が、現行マスター鍵レジスターの現行マスター鍵を使用して復号されて、新規マスター鍵レジスターの新規マスター鍵を使用して再暗号化されます。
- 新規マスター鍵が、
Valid
状態のサービス・インスタンスの操作可能な暗号装置およびリカバリー用暗号装置の現行マスター鍵レジスターにロードされ、新規マスター鍵レジスターがクリアされて、Empty
状態に戻ります。
リカバリー暗号化ユニットを使用してマスター・キーをローテーションする方法について詳しくは、リカバリー暗号化ユニットを使用したマスター・キーのローテーションを参照してください。
鍵パーツ・ファイルを使用したマスター鍵のローテート
鍵パーツ・ファイルから作成されたマスター鍵は、TKE CLI プラグインを使用してローテートできます。 マスター鍵がローテートされると、マスター鍵パーツはローカル・ワークステーション上のファイルに保管されます。
管理ユーティリティーを使用する場合と同様に、最初に、使用する 2 つまたは 3 つの鍵パーツを作成する必要があります。 マスター鍵をローテートするためには、現行マスター鍵レジスターが同じ検証パターンを持つ Valid
状態であり、新規マスター鍵レジスターが Empty
である必要があります。
サービス・インスタンスにリカバリー暗号装置が割り当てられているかどうかに関係なく、TKE CLI プラグインを使用してマスター鍵をローテートできます。
次のフローは、このモードでのマスター鍵のローテーションの仕組みを示しています。
cryptounit-mk-load
コマンドを使用して、新しいマスター鍵レジスターをロードします。 新規マスター鍵レジスターの状態が、Empty
からFull uncommitted
に変更されます。cryptounit-mk-commit
コマンドを使用して、新しいマスター鍵の値をコミットします。 新規マスター鍵レジスターの状態がFull committed
に変わります。cryptounit-mk-rotate
コマンドを使用して、鍵ストレージを再暗号化し、新しいマスター鍵をアクティブ化します。- 鍵ストレージの暗号鍵が、現行マスター鍵レジスターの値を使用して復号され、その後、新規マスター鍵レジスターの値を使用して再暗号化されます。 再ラップは HSM 内で行われるため、安全です。
- 新規マスター鍵がアクティブになり、
Valid
状態の現行マスター鍵レジスターにロードされます。新規マスター鍵レジスターはクリアされて、Empty
状態に戻ります。
詳細な手順については、鍵パーツ・ファイルを使用したマスター鍵のローテートを参照してください。
次の作業
マスター鍵をローテートするためのオプションについて詳しくは、以下を参照してください。