カスタマーマスターキーのローテーション - AWS Key Management Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタマーマスターキーのローテーション

暗号化のベストプラクティスでは、暗号化キーの広範な再利用を推奨していません。AWS Key Management Service (AWS KMS) のカスタマーマスターキー (CMK) 用の新しい暗号化資料を作成するには、新しい CMK を作成してから、新しい CMK を使用するようにアプリケーションまたはエイリアスを変更します。または、既存の カスタマー管理の CMK の自動キーローテーションを有効にすることができます。

カスタマーマネージド CMK の自動キーローテーション を有効にすると、AWS KMS は毎年 CMK の新しい暗号化マテリアルを生成します。また、AWS KMS は CMK の古い暗号化マテリアルを永続的に保存するため、CMK が暗号化したデータを復号化するために使用できます。AWS KMS は、 CMK を削除するまで、ローテーションされたキーマテリアルを削除しません。

キーローテーションでは、CMK のバッキングキーのみが変更されます。バッキングキーとは、暗号化オペレーションで使用される暗号化マテリアルです。CMK は、バッキングキーの変更の有無や回数にかかわりなく、同じ論理リソースのままです。次の図に示すとおり、CMK のプロパティは変更されまません。

自動キーローテーションには次の利点があります。

  • キー ID、キー ARN、リージョン、ポリシー、アクセス許可などの CMK のプロパティは、キーがローテーションされても変更されません。

  • CMK ID または ARN を参照するアプリケーションまたはエイリアスを変更する必要はありません。

  • キーローテーションを有効にすると、AWS KMS は毎年自動的に CMK をローテーションします。更新を覚えている、またはスケジュールする必要はありません。

ただし、自動キーローテーションは、CMK で保護されるデータには効果がありません。CMK で生成されたデータキーの更新や、CMK で保護されているデータの再暗号化は行われず、データキーの侵害による影響は軽減されません。

新しい CMK を作成し、元の CMK の代わりに使用することを決める場合があります。これには、既存の CMK のキーマテリアルをローテーションするのと同じ効果があり、多くの場合、手動キーローテーションとみなされます。キーローテーションのスケジュールを制御する場合は、手動ローテーションすることをお勧めします。また、非対称の CMKカスタムキーストア内の CMK、インポートされたキーマテリアルを持つ CMK など、自動キーローテーションの対象にならない CMK をローテーションする方法も利用できます。

キーローテーションと料金

顧客管理の CMK のローテーションには、追加の月額料金が発生する可能性があります。詳細については、「 AWS キーマネジメントサービスの料金表」を参照してください。バッキングキーとローテーションの詳細については、AWS Key Management Service 暗号化の詳細

キーの自動ローテーションの仕組み

AWS KMS のキーローテーションは、透過的で使いやすいように設計された暗号化のベストプラクティスです。AWS KMS は、 お客様が管理する CMKに対してのみオプションの自動キーローテーションをサポートします。

  • バックアップキー管理 AWS KMS は、キーローテーションが無効になっている場合でも、CMK のすべてのバッキングキーを保持します。CMK を削除した場合に限り、バッキングキーが削除されます。CMK を使用して暗号化する場合、AWS KMS は現在のバッキングキーを使用します。CMK を使用して復号化すると、AWS KMS は暗号化に使用されたバッキングキーを使用します。

  • キーローテーションの有効化と無効化 カスタマー管理の CMK で、自動キーローテーションはデフォルトで無効になっています。キーローテーションを有効化(または再度有効化)すると、AWS KMS は有効日から 365 日後に CMK を自動的にローテーションします。

  • 無効化した CMK。 CMK が無効になっている間は、AWS KMS はローテーションしません。ただし、キーローテーションのステータスが変更することはなく、CMK を無効にしている場合に変更することもできません。CMK が再び有効になったときに、バッキングキーが 365 日以上経過している場合、AWS KMS は直ちに、それ以降は 365 日ごとにローテーションを行います。バッキングキーが 365 日未満の場合、AWS KMS は元のキーローテーションスケジュールを再開します。

  • CMK の削除を保留中。 CMK が削除を保留している間、AWS KMS はローテーションしません。キーローテーションのステータスは false に設定されています。削除が保留中の場合は変更することができません。削除をキャンセルすると、以前のキーローテーションのステータスが元に戻ります。バッキングキーが 365 日以上経過している場合、AWS KMS は直ちに、それ以降は 365 日ごとにローテーションを行います。バッキングキーが 365 日未満の場合、AWS KMS は元のキーローテーションスケジュールを再開します。

  • AWS 管理の CMK。 AWS マネージド CMKのキーローテーションを管理することはできません。AWS KMS は、AWS マネージド CMK を 3 年(1095 日)ごとに自動的にローテーションします。

  • AWS 所有の CMK AWS が所有する CMK のキーローテーションを管理することはできません。AWS 所有 CMK の キーローテーション 戦略は、CMK を作成および管理する AWS サービスによって決定されます。詳細については、サービスのユーザーガイドまたは開発者ガイドの「 保管時の暗号化 」トピックを参照してください。

  • AWS のサービス。AWS サービスでサーバー側の暗号化に使用する カスタマー管理の CMK で、自動キーローテーションを有効にできます。年間ローテーションは透過的で、AWS のサービスと互換性があります。

  • キーローテーションのモニタリング。 AWS KMS がキーマテリアルを自動的にローテーションするときAWS マネージド CMKまたはカスタマー管理 CMKと書き込むと、KMS CMK RotationイベントをAmazon CloudWatch EventsRotateKey Eventを AWS CloudTrail ログに書き込みます。これらのレコードを使用して、CMK がローテーションされたことを確認できます。

  • サポートされていない CMK タイプ。 自動キーローテーションは次のタイプの CMK ではサポートされていませんが、これらの CMK は手動でローテーションできます。

キーの自動ローテーションを有効または無効にする方法

AWS KMS コンソールまたは AWS KMS API を使用して、自動キーローテーションを有効または無効にし、カスタマー管理の CMK のローテーションステータスを表示できます。

自動キーローテーションを有効にすると、AWS KMS は有効日から 365 日後に CMK をローテーションし、それ以降は 365 日ごとにローテーションします。

キーローテーションの有効化と無効化 (コンソール)

  1. AWS マネジメントコンソールにサインインし、AWS Key Management Service (AWS KMS) (https://console.aws.amazon.com/kms) コンソールを開きます。

  2. AWS リージョンを変更するには、ページの右上隅にある [リージョンセレクター] を使用します。

  3. ナビゲーションペインで、[カスタマーマネージド型キー] をクリックします。(AWS 管理キーのローテーションを有効または無効にすることはできません。 3 年ごとに自動的にローテーションされます)

  4. CMK のエイリアスまたは キー ID を選択します。

  5. [キーローテーション] タブを選択します。

    [ Key rotation ] タブは、AWS KMS が生成したキーマテリアルを持つ対称型 CMK の詳細ページにのみ表示されます( OriginAWS_KMS)。非対称の CMK、インポートされたキーマテリアルを持つ CMK、またはカスタムキーストア内の CMK を自動的にローテーションすることはできません。ただし、手動でローテーションすることはできます。

  6. [この CMK を毎年自動的にローテーションします] チェックボックスをオンまたはオフにします。

    注記

    CMK が無効になっている場合や削除が保留中の場合は [この CMK を毎年自動的にローテーションします] のチェックボックスがオフになっています。これを変更することはできません。CMK を有効にしたり削除をキャンセルすると、キーローテーションのステータスが元に戻ります。詳細については、「キーの自動ローテーションの仕組み」および「キー状態: CMK への影響」を参照してください。

  7. [Save] (保存) をクリックします。

キーローテーションを有効または無効にする(AWS KMS API)

AWS キーマネジメントサービス(AWS KMS)API を使用して、自動キーローテーションを有効または無効にしたり、カスタマーマネージド CMK の現在のローテーションステータスを表示できます。これらの例では、 AWS コマンドラインインターフェイス(AWS CLI), を使用していますが、サポートされている任意のプログラミング言語を使用できます。

EnableKeyRotation 操作では、指定した CMK の自動キーローテーションが有効になります。Dis ableKeyRotation 操作によって無効になります。これらのオペレーションで CMK を識別するには、そのキー ID またはキー ARN を使用します。デフォルトでは、顧客管理の CMK でのキーローテーションは無効になっています。

次の例では、指定したシンメトリック CMK でキーローテーションを有効にし、 GetKeyRotationStatus オペレーションを使用して結果を確認します。それから、キーローテーションを無効にし、再度、GetKeyRotationStatusを使用して変更を確認します。

$ aws kms enable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": true } $ aws kms disable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": false }

手動でのキーローテーション

自動キーローテーションを有効にする代わりに、新しい CMK を作成して現在の CMK の代わりに使用する場合があるかもしれません。新しい CMK に現在の CMK とは異なる暗号化マテリアルがある場合、新しい CMK を使用すると、既存の CMK でバッキングキーを変更するのと同じ効果があります。1 つの CMK を別のものと置き換えるプロセスは、手動キーローテーションと呼ばれます。

ローテーションの頻度をコントロールできるように、手動でキーをローテーションする方がよい場合があります。また、非対称 CMK、カスタムキーストアの CMK、インポートされたキーマテリアルを使用する CMK など、自動キーローテーションに適さない CMK のための優れたソリューションです。

注記

新しい CMK の使用を開始するときは、元の CMK が暗号化されたデータを AWS KMS が復号化できるように、元の CMK を有効のままにしてください。データを復号するとき、KMS はデータの暗号化に使用された CMK を識別し、同じ CMK を使用して復号します。元の CMK と新しい CMK の両方を有効にしている限り、AWS KMS はどちらか CMK で暗号化されたデータを復号化できます。

新しい CMK は現在の CMK とは別のリソースであるため、異なるキー ID と ARN を持っています。CMK を変更すると、アプリケーションの CMK ID または ARN への参照を更新する必要があります。エイリアスは、CMK とわかりやすい名前を関連付けるので、このプロセスを容易にします。エイリアスを使用して、アプリケーションの CMK を参照します。それから、アプリケーションが使用する CMK を変更するには、エイリアスのターゲット CMK を変更します。

エイリアスのターゲット CMK を更新するには、AWS KMS API で UpdateAlias オペレーションを使用します。たとえば、このコマンドは、新しい CMK を指すように TestCMK エイリアスを更新します。オペレーションはどのような出力も返さないため、この例ではListAliasesエイリアスが別の CMK に関連付けられていることを示し、エイリアスが別の CMK に関連付けられていることを示します。LastUpdatedDateフィールドが更新されます。

$ aws kms list-aliases { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestCMK", "AliasName": "alias/TestCMK", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1521097200.123, "LastUpdatedDate": 1521097200.123 }, ] } $ aws kms update-alias --alias-name alias/TestCMK --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 $ aws kms list-aliases { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestCMK", "AliasName": "alias/TestCMK", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1521097200.123, "LastUpdatedDate": 1604958290.722 }, ] }