AWS管理コンソールのログイン試行をCloudTrailで監視し、失敗時にメール通知を行う

スポンサーリンク
ハンズオン
スポンサーリンク

はじめに

このハンズオンでは、AWSの管理コンソールに対するログイン操作をCloudTrailで監視し、15分間に5回ログインが失敗した場合にメールで通知する方法を紹介します。

AWSのセキュリティ監視の基本を理解し、異常なログイン試行を検知するスキルを身につけることが目的です。

環境構成

今回のハンズオンの環境構成です。

ハンズオンの概要

このハンズオンでは、以下の手順で構成します。

  • CloudTrailでログイン試行のログを収集
  • CloudWatchメトリクスフィルターの設定
  • アラーム設定とSNSによる通知設定

1. CloudTrailでログイン試行のログを収集

CloudTrailを作成します。

  1. AWS管理コンソールにログインし、CloudTrailサービスを開きます。左メニューの「証跡」を選択してください。
  2. 「証跡の作成」を選択してください。
  3. 「証跡属性の選択」の入力画面が表示されます。以下を入力し「次へ」を選択します。(XXXXXXXXは適宜変更してください。)
    • 証跡名:LoginMonitoringTrail
    • ストレージの場所:新しいS3バケットを作成します
    • 証跡ログバケットおよびフォルダ:ws-cloudtrail-logs-loginmonitoringtrail-XXXXXXXX
    • ログファイルの SSE-KMS 暗号化:有効のチェックを外す(ハンズオンのため有効かしません。本運用ではログファイルの暗号化を推奨します。)
    • ログファイルの検証:有効
    • SNS 通知の配信:有効のチェックを外す
    • CloudWatch Logs:有効
    • ロググループ:新規
    • ロググループ名:aws-cloudtrail-logs-loginmonitoringtrail-XXXXXXXX
    • IAM ロール:新規
    • ロール名:CloudTrailRoleLoginMonitoringTrail

  4. 「ログイベントの選択」の入力画面が表示されます。以下を入力し「次へ」を選択します。
    • イベントタイプ:「管理イベント」のみチェック
    • API アクティビティ:「書き込み」のみチェック

  5. 「確認と作成」の画面が表示されます。内容を確認して「証跡の作成」を選択します。

2. CloudWatchメトリクスフィルターの設定

ログフィルターの作成します

  1. CloudWatchのロググループページに移動し、指定したロググループ「aws-cloudtrail-logs-loginmonitoringtrail-XXXXXXXX」を開きます。
  2. 「メトリクスフィルター」タブを選択し、「メトリクスフィルターの作成」を選択します。
  3. 「パターンを定義」の入力画面が表示されます。「フィルターパターン」には以下を入力し、「Next」を選択してください。
    { ($.eventName = "ConsoleLogin") && ($.responseElements.ConsoleLogin= "Failure") }
    

  4. 「メトリクスの割り当て」の入力画面が表示されます。以下を入力し「Next」を選択します。
    • フィルタ名:LoginFailuresMetric
    • メトリクス名前空間名:LoginFailuresMetric
    • メトリクス名:LoginFailuresMetric
    • メトリクス値:1

  5. 「プレビューと作成」の画面が表示されます。内容を確認して「メトリクスフィルターを作成」を選択します。

3. アラーム設定とSNSによる通知設定

SNSトピックを作成します。

  1. SNSサービスに移動し、「トピック」を選択します。
  2. 「トピックの作成」の入力画面が表示されます。以下を入力し「トピックの作成」を選択します。
    • タイプ:スタンダード
    • 名前:LoginFailureNotification
    • 表示名:ログイン連続失敗通知

  3. トピックを作成した後、「サブスクリプションの作成」を選択してください。
  4. 以下を入力し「サブスクリプションの作成」を選択します。
    • プロトコル:Eメール
    • エンドポイント:通知先のメールアドレス

  5. 作成後、SNSからメールが通知されるので「Confirm Subscription」を選択し、サブスクリプションを有効化してください。

CloudWatchアラームの設定をします。

  1. CloudWatchに戻り、「aws-cloudtrail-logs-loginmonitoringtrail-XXXXXXXX」のロググループを開き、「メトリクスフィルター」タブを開きます。「LoginFailuresMetric」を選択し、「アラームを作成」を選択します。
  2. 「メトリクスと条件の指定」の入力画面が表示されます。以下を入力し「次へ」を選択します。
    • メトリクス名:LoginFailuresMetric
    • 統計:合計
    • しきい値の種類:静的
    • LoginFailuresMetric が次の値の時:以上
    • ~よりも:5

  3. 「アクションの設定」の入力画面が表示されます。以下を入力し「次へ」を選択します。
    • アラーム状態のトリガー:アラーム状態
    • 次のSNSトピックに通知:既存のSNSトピックを選択
    • 通知の送信先:LoginFailureNotification

  4. 「名前と説明を追加」の入力画面が表示されます。以下を入力し「次へ」を選択します。
    • アラーム名:LoginFailuresAlerm

  5. 「プレビューと作成」の画面が表示されます。内容を確認して「アラームの作成」を選択します。

動作確認

存在しないユーザなど、不正なログイン情報でログインを連続で実施してください。

15分間に5回以上失敗するとメールが通知されます。

まとめ

このハンズオンでは、AWS管理コンソールのログイン操作をCloudTrailで監視し、15分間で5回失敗した場合にメールで通知するシステムを構築しました。

アラームの設定値を変更することで期間と失敗回数を調整することも可能です。

AWSのセキュリティ監視の基本を理解する上で、このハンズオンが参考になれば幸いです。

 

 

タイトルとURLをコピーしました