
【手順付き】AWS ルートユーザーのコンソールログインをメール通知する方法
こんにちは、フニです。
本記事では、EventBridge と SNS を使って AWS ルートユーザーのコンソールログインをメールで通知する手順についてご紹介します。
概要
ルートユーザーは AWS アカウントですべての操作が可能な特権ユーザーであり、日常運用では使わないことがベストプラクティスとされています。
とはいえ、ルートユーザーの利用が必要になる場合もあり、「誰かがルートユーザーでログインしたら即座に気づきたい」というニーズもあります。
本記事では、EventBridge と SNS を組み合わせて実装する手順についてご紹介します。
詳細は以下の公式ドキュメントをご参照ください。
やってみた
構成イメージ
ルートユーザーがコンソールにログイン
│
▼
CloudTrail
│ ConsoleLogin イベント
▼
EventBridge ルール(us-east-1)
│
▼
SNS トピック → メール通知
仕組みはシンプルで、CloudTrail がルートユーザーのコンソールログイン(ConsoleLogin)イベントを記録し、それを EventBridge のルールで拾って SNS トピック経由でメール通知する、という流れになります。
前提
- EventBridge / SNS を操作できる IAM 権限を持っていること
- 通知を受け取るメールアドレスがあること
- CloudTrail 証跡が有効化されていること
CloudTrail のイベント履歴(90 日間の閲覧用ログ)だけでは、EventBridge にイベントが流れません。
管理イベントを記録する証跡の有効化が必須です。詳細は以下の公式ドキュメントをご参照ください。
手順 1: SNS トピックとサブスクリプションの作成
通知の送信先となる SNS トピックを作成します。
リージョンは必ず バージニア北部(us-east-1) を選択してください。
- マネジメントコンソールで SNS コンソールを開きます。

- 「トピック」→「トピックの作成」を選択し、タイプは「スタンダード」、名前(例:
RootUserLogin-SNS)を入力して作成します。


- 作成したトピックの画面で「サブスクリプションの作成」を選択します。プロトコルに「Eメール」、エンドポイントに通知を受け取るメールアドレスを入力して作成します。


- 入力したメールアドレスに AWS から確認メールが届くので、本文の「Confirm subscription」をクリックしてサブスクリプションを確定します。


- SNS コンソールに戻り、サブスクリプションのステータスが「確認済み(Confirmed)」になっていることを確認します。

手順 2: EventBridge ルールの作成
ルートユーザーのログインイベントを検知するルールを作成します。
リージョンは必ず バージニア北部(us-east-1) を選択してください。
- マネジメントコンソールで EventBridge コンソールを開きます。

- 「ルール」→「ルールを作成」を選択し、以下画像を参考に設定します。

"ConsoleLogin": ["Success"] でログインに成功した場合のみ通知を行っていますが、必要に応じて変更してください。
{
"source": ["aws.signin"],
"detail-type": ["AWS Console Sign In via CloudTrail"],
"detail": {
"eventSource": ["signin.amazonaws.com"],
"eventName": ["ConsoleLogin"],
"userIdentity": {
"type": ["Root"]
},
"responseElements": {
"ConsoleLogin": ["Success"]
}
}
}



- 名前(例:
RootUserLogin-EventBridge)を入力して作成します。

動作確認
- ルートユーザーで AWS マネジメントコンソールにログインします。

- ログイン後、SNS に登録したメールアドレスに通知メールが届きます。

ルートユーザーログインのたびにメールが届けば設定は成功です。
さいごに
今回は、EventBridge と SNS を使ったルートユーザーログイン通知の設定手順についてご紹介しました。
仕組み自体はシンプルですが、ルートユーザーの利用を確実に検知できるセキュリティの基本対策でした。
この記事が誰かの助けになれば幸いです。
参考








