このページでは、Cloud Key Management Service での鍵のローテーションについて説明します。鍵のローテーションは、既存の鍵に代わる新しい暗号鍵を作成するプロセスです。暗号鍵を定期的に、または特定のイベントの後にローテーションすることで、鍵が不正使用された場合の影響を軽減できます。鍵をローテーションする具体的な手順については、鍵のローテーションをご覧ください。
鍵をローテーションする理由
対称暗号化では、セキュリティのために、定期的に自動で鍵をローテーションすることをおすすめします。Payment Card Industry Data Security Standard(PCI DSS)などの一部の業界標準では、鍵を定期的にローテーションする必要があります。
Cloud Key Management Service は、非対称鍵の自動ローテーションをサポートしません。詳細については以下の非対称鍵に関する考慮事項をご覧ください。
鍵をローテーションすると、次のようなメリットがあります。
同じ鍵バージョンで暗号化されるメッセージの数を制限すると、暗号解読による攻撃を防ぐことができます。推奨される鍵の存続期間は、鍵のアルゴリズムと、生成されたメッセージの数または同じ鍵バージョンで暗号化された合計バイト数によって異なります。たとえば、Galois/Counter Mode(GCM)の対称暗号鍵の推奨される鍵の有効期間は、以下に記載の通り暗号化されたメッセージの数に基づきます。https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf
鍵が不正使用された場合、定期的なローテーションにより、実際の不正使用されやすいメッセージの数が制限されます。
鍵バージョンが不正使用されている疑いがある場合、できるだけ早く無効にして、アクセス権を取り消してください。
定期的な鍵のローテーションにより、セキュリティ侵害が発生した場合や、アプリケーションをより強力な暗号アルゴリズムに移行する必要がある場合にも、システムが手動ローテーションに復元可能になります。実際のセキュリティ インシデントが発生する前に、鍵のローテーション手順を検証してください。
鍵が不正使用されているために、または別のアルゴリズムを使用するようにアプリケーションを変更するために、鍵を手動でローテーションすることもできます。
鍵をローテーションする頻度
定期的に鍵を自動的にローテーションすることをおすすめします。ローテーション スケジュールでは、ローテーションの頻度と、必要に応じて最初のローテーションが発生する日時を定義します。ローテーション スケジュールは、鍵の存続期間、または鍵バージョンで暗号化されたメッセージの数またはボリュームに基づいて設定できます。
一部のセキュリティ規制では、定期的な自動鍵ローテーションが必要となります。事前定義された鍵のローテーション(90 日ごとなど)により、管理上の複雑さが最小限になり、セキュリティが向上します。
また、不正使用された鍵がある場合や、セキュリティ ガイドラインのためにアプリケーションをより強力な鍵アルゴリズムに移行する必要がある場合は、鍵を手動でローテーションする必要があります。手動ローテーションのスケジュールを将来の日時に設定できます。鍵を手動でローテーションしても、その鍵に対する既存の自動ローテーション スケジュールが一時停止されたり、変更されたり、その他の影響を受けたりすることはありません。
アプリケーションのセキュリティの主要なコンポーネントとしては、不定期または手動のローテーションを使用しないでください。
非対称鍵に関する考慮事項
Cloud KMS では非対称鍵の自動ローテーションがサポートされません。新しい非対称鍵バージョンを使用するには、追加の手順が必要です。
署名に使用する非対称鍵の場合、新しい鍵バージョンの公開鍵部分を配布する必要があります。その後、
CryptoKeyVersions.asymmetricSign
メソッドの呼び出しで新しい鍵バージョンを指定して署名を作成し、新しい鍵バージョンを使用するようにアプリケーションを更新できます。暗号化に使用する対称鍵の場合、新しい鍵バージョンの公開部分を配布してデータを暗号化するアプリケーションに組み込み、新しい鍵バージョンの非公開部分へのアクセスを復号化するアプリケーションに許可する必要があります。
次のステップ
- 鍵をローテーションします。
- 鍵を有効または無効にします。
- データの再暗号化の詳細を確認する。