利用しないKMSキーを削除したいですが、KMSキーを削除すると戻せないので、削除する前に、そのKMSキーが利用されたのかが確認する必要があります。

一応、スケージュール削除という機能がありますが、使用中の本番KMSキーを削除すると、大騒ぎなので、削除する前にKMSキーの使用状況を確認するのはお勧めです。
AWS KMS keys を削除する – AWS Key Management Service (amazon.com)

公式ドキュメントドキュメントにCloudTrailを利用して過去の使用状況を確認するという方法があります。ただし、CloudTrailから直接に検索すると、指定できるフィルターが限られていてデータ量が多い場合、検索速度も遅いので今回CloudWatch Logs Insightsを使用して証跡を検索する方法をご紹介します。

前提条件

CloudTrailログファイルをモニタリングするために、CloudWatch Logsへ送信することができます。設定方法について下記の公式ドキュメントをご参考いただければと思います。

CloudWatch Logs へのイベントの送信 – AWS CloudTrail (amazon.com)

KMS使用証跡を確認する

CloudWatch Logs Insights は、Amazon Route 53、AWS Lambda、AWS CloudTrail、Amazon VPC などの AWS のサービスからのログフィールドと、ログイベントを JSON として出力するアプリケーションログやカスタムログを自動的に検出します。

Logs Insightsを開くと、以下の画面が表示されます。検索対象ロググループ、検索期間等指定できます。手動で検索項目、検索条件等も入力できます。

検索対象グループを指定すると、AWS認識できるロググループなら、自動的に認識したフィールド一覧が表示されます。

使いたいフィールドを確認できるので、結構便利に使えます。

今度、直近1ヶ月にKMSキーを使用する証跡があるかを確認したいため、下記の検索SQLを使用しました。

fields @timestamp, eventName ,@message
| sort @timestamp desc
| limit 20
| filter (eventName in ["Decrypt","GenerateDataKey" ] and resources.0.ARN like "beedeb95-99be-xxxxxxxxxx" )

検索してみると、下記の結果が出てきました。特に利用証跡がないため、KMSキーを削除しても良いではないかと思います。

ちなみに、データがある場合、下記の感じで結果一覧が表示されます。

CloudWatch Logs Insights料金

CloudWatch Logs Insightsはスキャンしたログ量により、料金かかります。最初の5GBデータが無料で、超えた分はスキャンしたデータ 1 GB あたり 0.0076USDとなります。※2021/12東京リージョンの価格

詳細は、下記の料金ページをご参照ください。

料金 – Amazon CloudWatch | AWS

纏め

いかがでしょうか。CloudWatch Logs Insightsはログ分析に便利でしょう。KMSの利用証跡だけではなく、CloudWatch Logsに収集しうたログに対して、検索したり、分析したりいろいろできますので、これからも活用したいと思います。

Last modified: 2021-12-05

Author