AWS ルートユーザのログインをメール通知してみた!

本記事ではEventBridgeとAmazon SNSを使用してルートユーザのログインを通知する仕組みを作成します。

Simple Notification Service (Amazon SNS)とは

Amazon SNSとは、サーバレスでメッセージの配信を可能にするサービスです。エンドポイントとしてAmason SQL、AWS Lambda、HTTP、Eメールなどがサポートされています。

EventBridgeとは

EventBridgeとは、AWSで発生するイベントを様々なアプリケーションに配信するサービスです。今回はルートユーザログインをトリガーとするEventBridgeルールを作成しAmazon SNSに連携します。

早速やってみる

今回はこちらの手順でメール通知を行います。

また、今回の構成図はこちらになります。

EventBridgeでログイン検知→Amazon SNSからメール送信

Amazon SNSの設定

1.リージョンを「バージニア北部」に変更し、Amazon SNS > トピック >トピックの作成を選択します。タイプを「スタンダード」にし名前を入力後、トピックを作成します。(今回はTestで作成)

2.トピックの作成が完了したら「サブスクリプションの作成」を選択します。

3.先ほど作成したトピックとプロトコルにEメールを選択します。
エンドポイントにメールアドレスを入力し、「サブスクリプションの作成」を選択します。

4.入力したメールアドレスに以下のメールが届いていることを確認します。
「Confirm subscription」にアクセスし「Subscription confirmed!」の表示を確認します。

5.作成したトピックを開きステータスが「確認済み」になっていれば完了です。

EventBridgeの設定

1.リージョンを「バージニア北部」に変更し、EventBridge>ルール>ルールを作成を選択します。ルールタイプを「イベントパターンを持つルール」にし名前を入力後「次へ」(今回はtestで作成)

2.作成のメソッドで「カスタムパターン」を選択し、イベントパターンに以下のJSONを入力し「次へ」(その他は初期設定)

{
  "detail-type": ["AWS Console Sign In via CloudTrail"],
  "detail": {
    "userIdentity": {
      "type": ["Root"]
    },
    "eventSource": ["signin.amazonaws.com"],
    "eventName": ["ConsoleLogin"],
    "responseElements": {
      "ConsoleLogin": ["Success"]
    }
  }
}

3.ターゲットタイプで「AWSのサービス」を選択し、先ほど作成したSNSトピックを選択し「レビューと作成」まで進みルールを作成します。(タグは未設定)

動作確認

1.リソースを作成したアカウントにルートユーザでログインします。

2.「AWS Notification Message」というメールが届いたら完了です。

終わりに

本記事ではAmazon SNSとEventBridgeを用いたルートユーザ通知を行いました。

EventBridgeのターゲットをLambdaに変更することでTeamsやSlackへの通知も可能です。機会があれば別の記事で紹介したいと思います。ここまでご覧いただきありがとうございました。

執筆担当者プロフィール
石河 幸介

石河 幸介(日本ビジネスシステムズ株式会社)

2021年新卒入社。プロフェッショナルサービス事業本部に所属。 Azure・AWSに興味があります! 初年度にAzure Solutions Architect Expertを取得。 趣味はバレーボール。

担当記事一覧