CloudWatch Logsのメトリクスフィルターでセキュリティイベントをチェックする


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

CloudWatch Logsのメトリクスフィルターを利用することでログに出力したキーワードでメトリクスを作成できます。これらのメトリクスを利用してシステム監視が容易に行えます。

CloudWatch Logsメトリクスフィルターとは

CloudWatch LogsメトリクスフィルターでCloudWatch Logsに出力されたデータを検索及びフィルタイングできます。これらのメトリクスフィルタを使用して、ログデータを数値の CloudWatch メトリクスに変換し、グラフを作成したり、アラームを設定したりできます。

主な設定要素

フィルタパターン

フィルタパターンを使用して、ログファイルの検索対象を指定します。メトリクスフィルターを作成して、ログイベント内の語句を照合し、ログデータをメトリクスに変換できます。メトリクスフィルターが語句に一致すると、メトリクスの数が増えます。例えば、ログイベントの中で ERROR\ という単語の出現回数を数えるメトリクスフィルターを作成します

メトリクス名

モニタリングされたログ情報が発行される CloudWatch メトリクスの名前です。例えば、ErrorCount というメトリクスに発行できます。

メトリクス値

一致するログが見つかるたびにメトリクスに発行する数値。例えば、「Error」など特定の語句の発生回数をカウントする場合、その値は発生するごとに「1」になります。

実際に設定してみる

CloudTrailの証跡ログをCloudWatch Logsに出力するように設定し、証跡ログをモニタリングし、特定のアクティビティの発生時に通知を受けることができます。

1.CloudTrail証跡ログをCloudWatch Logsに出力するように設定する

詳細の設定手順は下記のAWS公式ドキュメントを参照ください。

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

2.フィルターパターンを作成

今回はAWSコンソールにログイン失敗のイベント監視を行いたいと思います。それで利用するフィルターパターンは以下となります。

 {($.eventName=ConsoleLogin) && ($.errorMessage="Failed authentication")}

今回のCISベンチマークのチェック事項であるため、CIS関連の名前空間とメトリクス名を設定します。また、検出した場合のメトリクス値を1にします。

3.フィルターメトリクスからCloudwatchアラームを作成

5分内にログイン失敗したことがあれば、アラートする。

アラーム状態の場合、SNS経由してメール通知します。

4.検知してみる

ログインする時にわざとパスワードを間違えてログインしてみてみると、通知メールが届きます。

纏め

今回、Cloudwatch Logsのメトリクスフィルターを利用してメトリクスを作成し、監視する方法をご紹介しました。これを利用することでいろんなCloudTrialイベントを監視できます。セキュリティチェックのために、Cloudwatch Logsのメトリクスフィルターをご活用いただければと思います。

Last modified: 2022-07-09

Author