普段あまりお金をかけないように 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
使おうや って書いてあったのではじめからここを参照すればよかったかなと思いました。