サイトアイコン 協栄情報ブログ

【AWS初心者向け】AWSコンソール不正ログインの監視設計について

どうも、ご無沙汰しております。
クラ本部の黒田です。

ブログ投稿は久しぶりでしたね。
皆さんはいかがお過ごしでしょうか。

昨年のAWS案件が12月末にお客様に無事納品しましたので、今年から、新たな案件現場からスタートしております。
ワクワクして、たまらないです….
それでは、今回お客様のご要望に合わせてセキュリティー監視についてご提案しました内容をご紹介いたします。

はじめに

今回、ご紹介の技術ブログは、AWS CloudTrailを利用してAWSコンソールへのログインを監視し、Amazon EventBridgeスケジュールを使用して特定の時間帯にCloudWatchアラームの有効化と無効化を自動で切り替えることで業務時間内外のセキュリティ管理を自動化し、効率的な監視システムを構築することを目的としています。

目的

利点

応用

構成図

構築概要

  1. CloudTrail証跡の設定とログ送信:
    • CloudTrail証跡を作成し、ログをCloudWatch Logsのロググループに送信します。
  2. ロググループからのメトリクスフィルター作成:
    • CloudWatchロググループに「ConsoleLogin」イベントのためのメトリクスフィルターを作成します。
  3. メトリクスフィルターからのアラーム作成とSNS通知設定:
    • 作成したメトリクスフィルターを使用して「ConsoleLogin」アラームを作成し、SNSトピックを通じた通知設定を行います。
  4. Amazon EventBridge Schedulerによるアラームアクションの自動化:
    • EventBridge Schedulerを使用して、業務時間内にCloudWatchアラームアクションを自動的に無効化し、業務時間外に再び有効化する設定を行います。

事前準備

  1. AWSアカウント:
    • AWSサービスを使用するためには、AWSアカウントが必要です。まだアカウントを持っていない場合は、AWSの公式サイトからサインアップしてください。
  2. 適切な権限:
    • CloudTrailの設定、CloudWatchログの設定、EventBridgeのスケジュール作成などを行うためには、適切なIAM権限が必要です。これには、CloudTrailの管理、CloudWatchのメトリクスとアラームの作成、EventBridgeのスケジュールの作成などが含まれます。
  3. S3バケット:
    • CloudTrailログを保存するためのAmazon S3バケットが必要です。既にバケットがある場合はそれを使用し、ない場合は新規に作成する必要があります。
  4. IAMロール:
    • CloudTrailとEventBridgeスケジュールが使用するIAMロールを事前に作成しておく必要があります。これらのロールには、CloudTrailがS3バケットとCloudWatchロググループにログを書き込むための権限や、EventBridgeがCloudWatchアラームを有効/無効にするための権限が必要です。
  5. CloudWatchロググループ:
    • CloudTrailログをCloudWatch Logsに送信するためのロググループを作成します。既にロググループがある場合はそれを使用し、ない場合は新規に作成する必要があります。
  6. SNSトピック:
    • アラーム通知を送信するためのAmazon SNSトピックが必要です。既にトピックがある場合はそれを使用し、ない場合は新規に作成する必要があります。

構築手順 

  1. ログイベント設定:
    • 管理イベントとデータイベントを有効化し、S3イベントを選択。
    • 設定を完了し、証跡を作成。
項目
フィルター名 ConsoleLogin
メトリクス空間 CloudTrailMerics
メトリクス名 ConsoleLogin
メトリクス値 1
期間    10秒
フィルターパターン { ($.eventName = ConsoleLogin) }
  1. メトリクスフィルターの作成:
    • CloudWatchロググループで「メトリクスフィルターの作成」を選択。
    • { ($.eventName = ConsoleLogin) } フィルターパターンを設定。
    • フィルター名、メトリクス空間、メトリクス名を指定し、メトリクス値を「1」と設定。



  2. アラーム設定:
    • 期間を10秒に設定し、SNSトピックを選択(新規作成するか、または既存トピックを指定)。)。
    • アラーム名と説明を記入し、アラームを作成。



    • 作成したアラームのアクション項目が有効になっていることを確認
      ※ この時点から、全てのユーザーがAWSアカウントにサインインすると通知される。

動作確認

スケジューラのタイプ cron ベース時間設定 アクション
アラームアクション無効化 09時実行 DisableAlarmActions
アラームアクション有効化 18時実行 EnableAlarmActions
  1. アラームアクション無効時:
    • アクション無効状態でAWSコンソールにサインインし、通知が来ないことを確認。
  2. アラームアクション有効時:
    • アクション有効状態でAWSコンソールにサインインし、通知が来ることを確認。
    • 受信した通知メールを確認し、メール内のURLから詳細を確認。

確認ポイント

  1. CloudTrailイベント履歴を確認し、ログインしたユーザー、時間、IPアドレスなどの詳細を確認。→どの時間にどのユーザがどこからログインしたのかの情報特定できること。
  2. 通知時間と確認時間が長く空いた場合、(例えば:朝から前日の通知を確認する場合)検知通知が表示されないケースもあります。その場合は{ ($.eventName = ConsoleLogin) } で手動検索を行い、必要に応じてアクションを選択しログイベントを確認。

最後に

以上、AWSサービスを利用してコンソールログインの監視とアラーム管理を自動化するための一連の構築手順の説明となります。
監視範囲に合わせて、ユーザログイン出来なかったエラーで引っかかっているケースを監視し、ユーザログインしようとしましたが、何らかのエラーでログイン出来なかった場合に通知するアラートを作成したりすることもおすすめします。

参考記事:AWS CloudTrailでIAMユーザーのサインイン失敗を検出してみる

このブログ内容を読んで頂いてから、AWSのセキュリティと監視機能の効率的な利用方法を一層理解してもらえるようになれれば幸いです。

それでは、また!

モバイルバージョンを終了