削除保留中の KMS キーの使用を検出するアラームの作成 - AWS Key Management Service

削除保留中の KMS キーの使用を検出するアラームの作成

AWS CloudTrail、Amazon CloudWatch Logs、Amazon Simple Notification Service (Amazon SNS) の機能を組み合わせて、アカウントのユーザーが削除保留中の KMS キーの使用を試みたときに通知する Amazon CloudWatch アラームを作成することができます。この通知を受け取った場合は、KMS キーの削除をキャンセルして、削除する決定を検討し直す必要があります。

以下の手順では、「Key ARN is pending deletion」エラーメッセージが CloudTrail ログファイルに書き込まれるたびに通知を受信するアラームの作成方法について説明します。このエラーメッセージは、暗号化オペレーションで、ユーザーまたはアプリケーションが KMS キーの使用を試みたことを示します。この通知はエラーメッセージにリンクされているため、ListKeysCancelKeyDeletionPutKeyPolicy などの削除保留中の KMS キーで許可される API オペレーションを使用するときにはトリガーされません。このエラーメッセージを返す AWS KMS API オペレーションのリストを表示するには、「AWS KMS キーのキーステータス」を参照してください。

受信した E メール通知には、KMS キーや暗号化オペレーションは表示されません。この情報は、CloudTrail ログで見つけることができます。その代わりに、アラームの状態が [OK] から [アラーム] に変わったことが E メールで報告されます。CloudWatch アラームと、状態の変更の詳細については、「Amazon CloudWatch ユーザーガイド」の「Amazon CloudWatch アラームの使用」を参照してください。

警告

この Amazon CloudWatch アラームは、AWS KMS の外部にある非対称 KMS キーの公開キーの使用は検出できません。公開キーの暗号化に使用される非対称 KMS キーを削除する際の特別なリスク (復号できない暗号テキストの作成など) の詳細については、非対称 KMS キーの削除 を参照してください。

CloudWatch アラームの要件

CloudWatch アラームを作成する前に、AWS CloudTrail の追跡を作成し、CloudTrail ログファイルを Amazon CloudWatch Logs に配信するように CloudTrail を設定する必要があります。アラームの通知用の Amazon SNS トピックも必要です。

  • CloudTrail トレイルを作成します

    CloudTrail はアカウントの作成時に、AWS アカウント で自動的に有効になります。ただし、AWS KMS のイベントなど、アカウントのイベントの継続的な記録を取得するには、証跡を作成します。

  • CloudWatch Logs のログファイルを配信するように CloudTrailを設定します

    CloudTrail ログファイルの CloudWatch Logs への配信を設定します。これにより、CloudWatch Logs は、削除保留中の KMS キーの使用を試みる AWS KMS API リクエストのログをモニタリングできます。

  • Amazon SNS トピックを作成します。

    アラームがトリガーされると、Amazon Simple Notification Service (Amazon SNS) トピックの E メールアドレスに E メールメッセージを送信して通知します。

CloudWatch アラームを作成する

この手順では、削除保留中のインスタンスを検索する CloudWatch ロググループのメトリクススフィルタを作成します。次に、ロググループのメトリクスに基づいて CloudWatch アラームを作成します。詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「フィルターを使用したログイベントからのメトリクスの作成」を参照してください。

  1. CloudTrail ログを解析する CloudWatch メトリクススフィルターを作成します。

    以下の必須値を使用して、「ロググループのメトリクススフィルターを作成する」の手順に従ってください。他のフィールドについては、デフォルト値を受け入れ、必要に応じて名前を指定します。

    フィールド
    フィルターパターン

    { $.eventSource = kms* && $.errorMessage = "* is pending deletion."}

    メトリクス値 1
  2. ステップ 1 で作成したメトリクスフィルターに基づいて CloudWatch アラームを作成します。

    以下の必須値を使用して、「ロググループのメトリクススフィルターを作成する」の手順に従ってください。他のフィールドについては、デフォルト値を受け入れ、必要に応じて名前を指定します。

    フィールド
    メトリクスフィルター

    ステップ 1 で作成したメトリクスフィルターの名前。

    しきい値タイプ [Static] (静的)
    条件 メトリクス名1 より大きい場合必ず
    アラームへのデータポイント 1 のうち 1
    欠損データ処理 欠損データを良好 (しきい値に違反していない) として扱う

この手順を完了すると、新しい CloudWatch アラームが ALARM 状態に入るたびに通知が届きます。このアラームの通知を受信した場合は、データの暗号化または復号化に削除が予定されている KMS キーがまだ必要であることを意味します。その場合は、KMS キーの削除をキャンセルし、削除する決定を検討し直す必要があります。