この記事は公開されてから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のメトリクスフィルターをご活用いただければと思います。