ルート鍵のローテーション
ルート鍵のローテーション (つまり、新規バージョンの鍵の作成) を定期的に行うことがベスト・プラクティスです。 定期的なローテーションによって、鍵の「暗号期間」と呼ばれる期間が短くなります。また、担当者の離職、プロセスの不具合、セキュリティー問題の検出などの特定のケースでもローテーションを利用できます。
鍵の漏えいが疑われる場合は、できる限り早くその鍵を無効にしてください。 詳しくは、ルート鍵の無効化を確認してください。
ルート鍵はデータ暗号鍵 (DEK) の作成に使用されるだけでなく、マスター鍵 (IBM がハードウェア・セキュリティー・モジュールを使用して保護しているもの) と一緒に、DEK の「ラップ」の作成にも使用されることを思い出してください。 その結果作成される「ラップされたデータ暗号鍵」(WDEK) によって、データの暗号化に使用する DEK が保護されます。 使用したい DEK をユーザーが持っている場合は、wrap
呼び出しを使用して WDEK を作成するときに、その鍵を渡すことができます。
DEK を指定しなかった場合は、Key Protect が自動的に DEK を作成します。
新規バージョンのルート鍵にローテートするとすぐに新規 WDEK が作成されるわけではありません。そうではなく、次にユーザーがラップおよび再ラップを開始したときに、新規ルート鍵を使用して新規 WDEK が作成されます。 新規 WDEK をアンラップして使用することで、古いバージョンの DEK で暗号化されたデータも読み取れることに留意してください。また、古いバージョンの WDEK もまだアンラップして DEK を取得することができます。
ローテーションのたびに鍵の新しい「バージョン」が作成され、鍵バージョンごとに IBM Cloud アカウントに課金されます。 詳しくは、 料金 を確認してください。
手動および自動でのローテート
Key Protect を使用してローテートできるのはルート鍵だけです。 標準鍵はローテートできません。
ルート鍵は、手動でローテートするか、または鍵の所有者が設定したスケジュールに従ってローテートさせることができます。 どちらを選択するかは、ユーザーの好みやユース・ケースのニーズによって決まります。
-
ローテーション・ポリシーの設定
最もシンプルな鍵ローテーション方法は、 自動ローテーション間隔を設定することです。そうすれば、それ以上ユーザーは何も行わなくてもルート鍵が更新されます。 このようなローテーションの間隔は、30 日単位の間隔 (つまり、30 日間隔、60 日間隔、90 日間隔、最大で 12 カ月 (360 日) まで) 設定できます。 このポリシーの管理は、UI または Key Protect API で管理できます。 ローテーション・ポリシーの設定方法について詳しくは、ローテーション・ポリシーの設定を確認してください。 CLI を使用してプロセスを設定することもできます。サービスに最初にインポートした鍵をローテートするためには、ローテートするたびに、その鍵の新しい鍵素材を生成して提供する必要があります。 そのため、鍵素材がインポートされた鍵には、自動ローテーション・ポリシーを使用できません。 したがって、インポートしたルート鍵は手動でローテートする必要があります。 インポートした鍵のメタデータ (鍵 ID など) は、Key Protect で生成された鍵の場合と同じく、鍵をローテートしても変わらないことに注意してください。
-
手動でキーを回転させる
セキュリティー管理者として、ルート鍵のローテーション頻度をもっと制御したい場合があります。 鍵の自動ローテーション・ポリシーを設定したくない場合は、既存の鍵を置換するための新しい鍵を手動で作成し、新しい鍵を参照するようにアプリケーションを更新することができます。このプロセスを簡易化するため、Key Protect を使用して、任意のタイミングでルート鍵をローテートできます。 このシナリオでは、各ローテーション要求で Key Protect がユーザーに代わって鍵を作成して置換します。 鍵のメタデータと鍵 ID は変更されません。 手動での鍵のローテートについて詳しくは、鍵の手動ローテートを確認してください。
ルート鍵を手動でローテートしても、その鍵に現在設定されているローテーション・ポリシーが影響を受けることはありません。 したがって、定期的なローテーション・ポリシーを設定しておき、必要に応じて手動でさらに鍵を更新することをお勧めします。
鍵をローテートする頻度
Key Protect でルート鍵を生成したら、その鍵をローテートする頻度を決定します。 鍵を定期的にローテートするのがベスト・プラクティスです。
ローテーション・タイプ | 頻度 | 説明 |
---|---|---|
ポリシー・ベースの鍵のローテーション | 30 日単位の間隔 (つまり、30 日間隔、60 日間隔、90 日間隔など) | セキュリティーのニーズに応じて、1 カ月から 12 カ月までの範囲でルート鍵のローテーション間隔を選択します。 ルート鍵のローテーション・ポリシーを設定すると、鍵の初期の作成日に基づいてクロックが即時に開始されます。 この鍵を手動でローテートすることを選択した場合はいつでも、ローテーション期間はそのローテーションに基づいてリセットされます。 |
手動での鍵のローテーション | 1 時間当たり最大 1 回のローテーション | Key Protect では、鍵ごとに 1 時間あたり 1 回しかローテーションできません。 |
getkey
、getkeymetadata
、getkeys
などの API で使用可能なlastRotateDate
フィールドを使用して、鍵が最後にローテートされた日付を確認できます。
鍵のローテーションの仕組み
ローテーション中のルート鍵は、アクティブ状態のままです。 ただし、古いバージョンは非アクティブ化されるので、「無効」と見なすことができます。 そして、その最新バージョンのルート鍵が、今後実行されるあらゆるアクションに使用されるようになります。 アンラップでは、古いバージョンのルート鍵で生成された WDEK をまだ使用できますが、ラップと再ラップでは、最新バージョンのルート鍵が使用されます。 古い鍵バージョンを使用して行えるのは、その特定の鍵バージョン以下のバージョンを使用して暗号化されたデータをアンラップして取得することだけです。 新規 DEK を作成したり、その DEK をラップして WDEK を作成したりするために、古いバージョンのルート鍵を使用することはできません。 詳しくは、無効にされた鍵バージョンの管理を確認してください。
鍵のローテーションの仕組みについて詳しくは、鍵のローテーション・プロセスの概要を確認してください。
IBM Cloud データ・サービスについて鍵のローテーション・オプションを有効にするには、データ・サービスが Key Protect と統合されている必要があります。 IBM Cloud データ・サービスの資料を参照するか、または、統合されたサービスのリストで詳細を確認してください。
鍵のローテーションのモニター
鍵をローテートすると、Key Protect は、そのルート鍵を使用する IBM Cloud データ・サービスに、データを保護するよう通知します。 この通知により、鍵の関連データ暗号鍵 (DEK) を最新の鍵バージョンで再ラップするアクションがこれらのサービスでトリガーされます。
関連付けられているすべての DEK が再ラップされたことを Key Protect がそれらのサービスから確認すると、IBM Cloud Logs の UI に、ローテーションが完了したことを示すイベントが表示されます。
廃止された鍵バージョンの管理
Key Protect は、各ローテーション要求を使用して新しいバージョンのルート鍵を作成します。 このサービスは、古い鍵バージョンを無効にし、鍵が削除されるまで無効にしたものを保持します。 無効にされた鍵バージョンは鍵をラップするためには使用できなくなりますが、アンラップ操作には使用可能なままです。
Key Protect で、無効にされたルート鍵バージョンを DEK のアンラップに使用していることが検出された場合、このサービスにより、最新の鍵バージョンに基づく新しくラップされた DEK が提供されます。
鍵のローテーション後のデータの再ラップ
無効にされた鍵バージョンでは古い DEK にしかアクセスできないので、エンベロープ暗号化のワークフローを保護するために、鍵をローテートしたら DEK を再ラップして、最新の鍵で保存データを保護してください。
あるいは、無効にされた鍵バージョンを DEK のアンラップに使用していることが Key Protect で検出されると、その DEK はサービスによって自動的に再暗号化され、最新のルート鍵に基づいているラップされたデータ暗号鍵 (WDEK) が返されます。
最新の鍵バージョンで DEK が保護されるように、新規 WDEK を保管し、将来のアンラップ操作に使用してください。
Key Protect API を使用してデータ暗号鍵を再ラップする方法については、鍵の再ラップを参照してください。
鍵のローテーション・プロセスの概要
背景では、鍵のローテーション・プロセスが Key Protect API によって駆動されます。 Key Protect API を使用して鍵をローテートする方法については、鍵のローテートを参照してください。
次の図は、鍵のローテーションの状況図を示しています。
ローテーション要求が行われるごとに、Key Protect は、新しい鍵素材を鍵に関連付けることで、新しいルート鍵バージョンを作成します。
鍵は、鍵が作成された日の正確に同じ時刻にローテートするわけではありません。 つまり、鍵が元々午前 8 時に作成された場合、ローテーションがスケジュールされた日の午前 8 時に必ずしもローテーションされるとは限りません。 代わりに、ローテーションは 24 時間のウィンドウの任意の時点で発生する可能性があります。
次の作業
-
Key Protect を使用して個々のルート鍵に自動ローテーション・ポリシーを設定する方法について詳しくは、ローテーション・ポリシーの設定を参照してください。
-
手動でルート鍵をローテートする方法について詳しくは、鍵の手動ローテートを確認してください。
-
ルート鍵として使用可能な鍵のバージョンを表示する方法について詳しくは、鍵のバージョンの表示を確認してください。