セキュリティグループが変更されたらCloudWatchアラームで通知する

2016.01.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

CloudWatchアラームで特定のセキュリティグループで変更操作があった時にアラートを飛ばす設定で、
フィルタパターンについてお客様よりご質問がありましたので試してみました。

前提としてCloudTrailを有効にしてCloudWatch Logsにログを出力している必要があります。

・参考 AWS管理コンソールの不正ログインをCloudTrail と CloudWatch Logsで検知する | Developers.IO

設定方法

フィルタを作成する

CloudWatchコンソールで作業します。 ロググループを選択して「メトリックスフィルタの作成」をクリック。

20160127-takahashi

特定のセキュリティグループのみ変更についてのフィルタパターンを入れ
メトリックスの割り当て」をクリック。

  • 特定のセキュリティグループのみ変更についてのフィルタパターン
{ ($.requestParameters.groupId = "sg-********") && (($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = DeleteSecurityGroup) || ($.eventName = UpdateSecurityGroup)) }

20160127-1-takahashi

参考フィルタパターン

  • セキュリティグループの変更についてのフィルタパターン
 { ($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = CreateSecurityGroup) || ($.eventName = DeleteSecurityGroup) }
  • 複数のセキュリティグループの変更についてのフィルタパターン
{ (($.requestParameters.groupId = "********") || ($.requestParameters.groupId = "********")) && (($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = DeleteSecurityGroup) || ($.eventName = UpdateSecurityGroup)) }
メトリックス名を入れ「フィルタの作成」をクリック。

20160127-2-takahashi
フィルタの作成が完了したらアラームを作成します。

20160127-3-takahashi

アラームを作成する

変更が1回でも実施されたら通知されるように設定しました。

20160127-4-takahahsi

こちらでアラームの作成は完了です。

※設定したmailアドレスにSNSからsubscriptionのメールがきたら、
「Confirm subscription」をクリックして通知を受け取るようにしてください。

実際に対象のセキュリティグループを更新してしばらくするとアラームを検知してメール通知されます。

20160128_takahashi

まとめ

CloudTrail イベントをCloudWatchアラームで通知する設定はフィルタを作成するのが難しいですね。
下記ユーザーガイドにいくつかパターンがあるので参考になるかと思います。

参考URL Creating CloudWatch Alarms for CloudTrail Events: Examples | AWS CloudTrail User Guide