KMS の Customer Managed Key がなんのために使われていたのか確認したい
普段あまりお金をかけないように AWS をちょこちょこ使っていますが、ふと 12 月の利用料金を見たら謎に $1 の費用が発生してました。
Cost Explorer で確認したところ、 KMS でコストが発生していたので、何にコストが発生しているのかなんのために残っているかなどを調査してみました。
先に結論
- 基本は CloudTrail の Event history をトレースすることになる
CreateKeyやCreateAlias、GenerateDataKeyのイベントから何に使おうとしたのか確認できる
背景
冒頭でも少し説明しましたが少し詳細に説明します。
KMS で余計なコストが発生しておりコンソールを確認してみると、エイリアスがない・タグもつけていないし、作られた経緯が不明な Customer Managed Key を見つけました。
こいつにコストがかかっているので削除してやろうと考えましたが、何に使っているのかよくわかっていないのでそれを確認します。
削除していいのか確認していった手順
Customer Managed Keys の中身を確認
まずはどんなキーなのか直接情報としてみたほうが早いので、コンソールから対象のキー情報について確認しました。
キーの作成日時を確認すると 2023/10/30 に作成されているようです。
Key policy には自分が書いたことないような Sid が設定されていて、何かテンプレートから自動で作成されたものだなとわかりました。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow access through SNS for all principals in the account that are authorized to use SNS",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
...
}
}また、 Aliases には特にリソースなどが設定されておらず、なんかしらんけど SNS のメッセージ配信の暗号化に使うものかな?みたいなところまではわかりました。

本題の CloudTrail での CMK の追跡
Event history で Resource type を KMS に絞ってイベントを確認します。

キーの作成日時は 2023/10/30 とわかっているので、この日のイベントを確認すると、確かにキーが作成されているイベントが記録されていました。

早速 CreateKey の中身を確認すると、どうやら CloudFormation からリソースが作られているようです。

ここで CloudFormation の CloudTrail を参照しても良いのですが、同時にエイリアスも作成されているので、 CreateAlias も確認してどんなエイリアスが作成されたのか確認してみます。

aliasName に Stack-StepFunctionsSample-EventBridgeCustomE みたいな文字列があるので、 これで終了です。
Step Functions のテンプレートを使って作成されたキーで、他のリソースは削除したんだけど KMS だけ削除し忘れていた というところです。

すでに他の関連するリソースは削除しているので、安心して削除できそうです。
最後に
結論としてはすっぱり削除して良いものだとわかりましたが、 AWS の公式ドキュメントにもしっかりと CloudTrail 使おうや って書いてあったのではじめからここを参照すればよかったかなと思いました。
関連記事
Related Articles
AWS Summit Japan 2025に参加したので感想とか自分のメモとか
AWS Summit Japan 2025 に参戦してきたので、その振り返り感想とか自分が今回学んだこととか印象に残ったことのまとめになります。
AWSの主要なストレージ・データベースサービスのAWS CDK におけるデフォルト RemovalPolicy を整理する
AWS CDK の L2 コンストラクタ利用時のデフォルトの RemovalPolicyを整理してまとめます。
AWS Summit Japan 2024に参加したので感想とか自分のメモとか
AWS Summit Japan 2024 に参戦してきたので、その振り返り感想とか自分が今回学んだこととか印象に残ったことのまとめになります。