AWS KMS keys を削除する - AWS Key Management Service

AWS KMS keys を削除する

AWS KMS key を削除することは破壊的であり、リスクが伴います。これは、キーマテリアルと KMS キーに関連付けられているすべてのメタデータを削除し、元に戻すことはできません。KMS キーを削除すると、その KMS キーで暗号化されたデータを復号できなくなります。これは、そのデータが回復不能になることを意味します。KMS キーの削除は、そのキーをもう使用しないことが確実である場合にのみ行ってください。不明な場合は、削除するのではなく、KMS キーを無効化することを検討します。無効化した KMS キーは、後で使用する必要が生じた場合に再度有効化できますが、削除した KMS キーは復元できません。

スケジュールできるのは、カスタマーマネージドキーの削除のみです。AWS マネージドキー または AWS 所有のキー を削除することはできません。

KMS キーを削除する前に、その KMS キーで暗号化された暗号文の数の確認が必要な場合があります。AWS KMS は、この情報や暗号文を保存しません。この情報を取得するには、KMS キーの過去の使用状況を特定する必要があります。ヘルプについては、KMS キーの過去の使用状況を確認する を参照してください。

明示的に削除をスケジュールし、必須の待機期間が終了しない限り、AWS KMS は KMS キーを削除しません。

KMS キーを削除する理由には次の 1 つ以上のものが考えられます。

  • 不要になった KMS キーのキーライフサイクルを完了する

  • 使用しない KMS キーの維持に伴う管理オーバーヘッドとコストを回避する

  • KMS キーリソースクォータに対してカウントされる KMS キーの数を減らすには

注記

AWS アカウント を終了または削除すると、KMS キーにアクセスできなくなり、それらに対して課金されることはなくなります。アカウントの終了と関連のない KMS キーの削除をスケジュールする必要はありません。

AWS KMS は、KMS キーの削除をスケジュールするとき、および KMS キーが実際に削除されたときに、AWS CloudTrail ログにエントリを記録します。

マルチリージョンのプライマリキーおよびレプリカキーの削除の詳細については、マルチリージョンキーを削除する を参照してください。

待機期間について

KMS キーを削除することは、破壊的でリスクを伴うため、AWS KMS で待機期間を 7 ~ 30 日に設定する必要があります。デフォルトの待機時間は、30 日です。

ただし、実際の待機期間は、スケジュールした待機期間よりも最大 24 時間長くなる場合があります。KMS キーが削除される実際の日付と時刻を取得するには、DescribeKey オペレーションを使用します。または、AWS KMS コンソール、KMS キーの詳細ページ、[General configuration] (一般的な設定) セクションで、スケジュールされた削除の日付を参照してください。必ずタイムゾーンをメモしておきます。

削除の待機期間中は、KMS キーステータスおよびキーの状態が削除保留中になります。

待機期間終了後、AWS KMS は KMS キー、そのエイリアス、関連するすべての AWS KMS メタデータを削除します。

待機期間を設定することにより、KMS キーが不要であり、今後も使用することがないことを確認できます。待機期間中にユーザーまたはアプリケーションが KMS キーの使用を試みた場合に警告するように Amazon CloudWatch アラームを設定できます。KMS キーを復元するには、待機期間の終了前にキーの削除をキャンセルします。待機期間の終了後は、キーの削除はキャンセルできず、AWS KMS は KMS キーを削除します。

非対称 KMS キーの削除

認可されたユーザーは、対称または非対称 KMS キーを削除できます。これらの KMS キーの削除をスケジュールする手順は、どちらの種類のキーも同じです。ただし、非対称 KMS キーのパブリックキーは AWS KMS の外部でダウンロードして使用できるため、特に暗号化に使用される非対称 KMS キー (キーの使用法が ENCRYPT_DECRYPT) では、オペレーションに重大な追加リスクが生じます。

  • KMS キーの削除をスケジュールすると、KMS キーのキーステータスが削除保留中に変わり、KMS キーを暗号化オペレーションで使用できなくなります。ただし、削除をスケジュールしても、AWS KMS の外部にあるパブリックキーには影響しません。パブリックキーを持つユーザーは、引き続きそのパブリックキーを使ってメッセージを暗号化できます。キーの状態が変更されたという通知は受信しません。削除がキャンセルされない限り、パブリックキーで作成された暗号文は復号できません。

  • 削除保留中の KMS キーを使用する試みを検出するアラーム、ログ、その他の戦略では、AWS KMS の外部でのパブリックキーの使用は検出できません。

  • KMS キーが削除されると、その KMS キーに関連するすべての AWS KMS アクションは失敗します。ただし、パブリックキーを持つユーザーは、引き続きそのパブリックキーを使ってメッセージを暗号化できます。これらの暗号文は復号できません。

キーの使用方法が ENCRYPT_DECRYPT である非対称 KMS キーを削除する必要がある場合は、CloudTrail ログエントリを使用して、パブリックキーがダウンロードおよび共有されているかどうかを確認します。完了している場合は、パブリックキーが AWS KMS の外部で使用されていないことを確認します。次に、削除するのではなく、KMS キーを無効にすることを検討します。

マルチリージョンキーを削除する

許可されているユーザーは、マルチリージョンのプライマリキーとレプリカキーの削除をスケジュールできます。ただし、AWS KMS では、レプリカキーを持つマルチリージョンのプライマリキーは削除されません。また、プライマリキーが存在する限り、削除されたマルチリージョンのレプリカキーを再作成することもできます。詳細については、「マルチリージョンキーを削除する」を参照してください。

キーの削除のスケジュールとキャンセル

次の手順は、AWS Management Console、AWS CLI、AWS SDK for Java を使用して、AWS KMS で 単一リージョン AWS KMS keys のキーの削除をスケジュールおよびキャンセルする方法を説明しています。

マルチリージョンキーの削除のスケジューリングについては、マルチリージョンキーを削除する を参照してください。

警告

KMS キーを削除することは破壊的であり、リスクを伴います。KMS キーが不要であり、今後も使用しないことが確実である場合にのみ実行してください。不明な場合は、削除するのではなく KMS キーを無効化するべきです。

KMS キーを削除する前に、削除するための許可を取得する必要があります。キーポリシーのみで AWS KMS のアクセス許可を指定している場合は、KMS キーを削除するためにアクセス許可を追加する必要がある場合があります。これらのアクセス許可の追加については、「キーの削除をスケジュールおよびキャンセルするためのアクセス許可を追加する」を参照してください。

AWS KMS は、KMS キーの削除をスケジュールするとき、および KMS キーが実際に削除されたときに、AWS CloudTrail ログにエントリを記録します。

キーの削除をスケジュールおよびキャンセルする方法

キー削除のスケジュールとキャンセル (コンソール)

AWS Management Console では、複数の KMS キーの削除を一度にスケジューリングおよびキャンセルできます。

キーの削除をスケジュールするには

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

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

  3. ナビゲーションペインで、[Customer managed keys] (カスタマーマネージドキー) を選択します。

    AWS マネージドキー または AWS 所有のキー の削除をスケジュールすることはできません。

  4. 削除する KMS キーの横にあるチェックボックスをオンにします。

  5. [Key actions] (キーのアクション)、[Schedule key deletion] (キーの削除をスケジュール) の順に選択します。

  6. 待機中に、警告、および削除のキャンセルに関する情報を読み、検討してください。削除をキャンセルする場合はページ下部の [Cancel (キャンセル)] を選択します。

  7. [Waiting period (in days)] (待機期間 (日数)) に、日数として 7~30 の値を入力します。

  8. 削除する KMS キーを確認します。

  9. [<日数>日後に、このキーの削除をスケジュールすることを確認する。] の横にあるチェックボックスをオンにします。

  10. [Schedule deletion] (削除をスケジュールする) を選択します。

KMS キーのステータスが [Pending deletion] (削除保留中) に変わります。

キーの削除をキャンセルするには

  1. AWS KMS コンソール (https://console.aws.amazon.com/kms) を開きます。

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

  3. ナビゲーションペインで、[Customer managed keys] (カスタマーマネージドキー) を選択します。

  4. 復元する KMS キーの横にあるチェックボックスをオンにします。

  5. [Key actions] (キーのアクション)、[Cancel key deletion] (キーの削除をキャンセル) の順に選択します。

KMS キーのステータスが [Pending deletion] (削除保留中) から [Disabled] (無効) に変わります。KMS キーを使用するには、有効化する必要があります。

キーの削除のスケジュールとキャンセル (AWS CLI)

次の例のように、aws kms schedule-key-deletion コマンドを使用して、カスタマーマネージドキーからキーの削除をスケジュールします。

AWS マネージドキー または AWS 所有のキー の削除をスケジュールすることはできません。

$ aws kms schedule-key-deletion --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --pending-window-in-days 10

正しく使用すると、AWS CLI は以下の例に示すような出力を返します。

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "DeletionDate": 1598304792.0, "KeyState": "PendingDeletion", "PendingWindowInDays": 10 }

次の例のように、aws kms cancel-key-deletion コマンドを使用して AWS CLI からキーの削除をキャンセルします。

$ aws kms cancel-key-deletion --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

正しく使用すると、AWS CLI は以下の例に示すような出力を返します。

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

KMS キーのステータスが [Pending Deletion] (削除保留中) から [Disabled] (無効) に変わります。KMS キーを使用するには、有効化する必要があります。

キーの削除のスケジュールとキャンセル (AWS SDK for Java)

次の例では、AWS SDK for Java で KMS キーの削除をスケジュールする方法を示します。この例では、事前に AWSKMSClientkms としてインスタンス化している必要があります。

String KeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; int PendingWindowInDays = 10; ScheduleKeyDeletionRequest scheduleKeyDeletionRequest = new ScheduleKeyDeletionRequest().withKeyId(KeyId).withPendingWindowInDays(PendingWindowInDays); kms.scheduleKeyDeletion(scheduleKeyDeletionRequest);

次の例では、AWS SDK for Java でキーの削除をキャンセルする方法を示します。この例では、事前に AWSKMSClientkms としてインスタンス化している必要があります。

String KeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; CancelKeyDeletionRequest cancelKeyDeletionRequest = new CancelKeyDeletionRequest().withKeyId(KeyId); kms.cancelKeyDeletion(cancelKeyDeletionRequest);

KMS キーのステータスが [Pending Deletion] (削除保留中) から [Disabled] (無効) に変わります。KMS キーを使用するには、有効化する必要があります。

キーの削除をスケジュールおよびキャンセルするためのアクセス許可を追加する

IAM ポリシーを使用して AWS KMS のアクセス許可を許可している場合、AWS 管理者アクセス ("Action": "*") または AWS KMS フルアクセス ("Action": "kms:*") を持つすべての IAM ユーザーとロールは、KMS キーの削除をスケジュールおよびキャンセルすることをすでに許可されています。キーポリシーのみで AWS KMS にアクセス許可を付与している場合は、IAM ユーザーとロールに KMS キーの削除を許可するために、許可を追加する必要がある場合があります。これらのアクセス許可は、AWS KMS コンソールで、または AWS KMS APIを使用して追加できます。

キーの削除をスケジュールおよびキャンセルするアクセス許可の追加 (コンソール)

AWS Management Console を使用すると、キーの削除をスケジュールおよびキャンセルするアクセス許可を追加できます。

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

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

  3. ナビゲーションペインで、[Customer managed keys] (カスタマーマネージドキー) を選択します。

  4. アクセス許可を変更する KMS キーのエイリアスまたはキー ID を選択します。

  5. [Key policy] (キーポリシー) タブを選択します。[Key deletion] (キーの削除) で、[Allow key administrators to delete this key] (キー管理者にこのキーの削除を許可する) を選択し、[Save changes] (変更の保存) を選択します。

    注記

    [Allow key administrators to delete this key] (キーの管理者にこのキーを削除を許可する) オプションが表示されない場合は、通常、AWS KMS API を使用してこのキーポリシーを変更したことを意味します。この場合は、キーポリシードキュメントを手動で更新する必要があります。kms:ScheduleKeyDeletion アクセス許可および kms:CancelKeyDeletion アクセス許可をキーポリシーのキー管理者ステートメント ("Sid": "Allow access for Key Administrators") に追加した後、[Save changes] (変更の保存) を選択します。

キーの削除をスケジュールおよびキャンセルするためのアクセス許可を追加する (AWS CLI)

AWS Command Line Interface を使用すると、キーの削除をスケジュールおよびキャンセルするアクセス許可を追加できます。

キーの削除をスケジュールおよびキャンセルするアクセス許可を追加するには

  1. aws kms get-key-policy コマンドを使用して、既存のキーポリシーを取得し、ポリシードキュメントをファイルに保存します。

  2. 任意のテキストエディタでポリシードキュメントを開き、キー管理者にアクセス許可を追加するポリシーステートメント ("Sid": "Allow access for Key Administrators" を使用するポリシーステートメントなど) に kms:ScheduleKeyDeletion アクセス許可および kms:CancelKeyDeletion アクセス許可を追加します。その後、ファイルを保存します。次の例は、これらの 2 つのアクセス許可を持つポリシーステートメントを示しています。

    { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSKeyAdmin"}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }
  3. aws kms put-key-policy コマンドを使用して、キーポリシーを KMS キーに適用します。