AWS User Notificationsでマネジメントコンソールへのサインインを通知する

2023.06.05

AWS User Notifications サービスを利用して AWS マネジメントコンソールへのサインインをメール通知する設定を試してみました。

サインイン通知は次のブログでも紹介している通り、Amazon EventBridge ルールを作成する方法でも実現できますが、通知文を整形する必要がありました。AWS User Notifications で設定する場合は通知内容を AWS 側で見やすくしてくれるメリットがあります(裏では Amazon EventBridge ルールが作成されます)。


参考ブログの方法(Amazon EventBridge で設定し、入力トランスフォーマーで通知内容を整形)の通知例です。

本ブログで設定する AWS User Notifications の通知例です。

AWS マネジメントコンソールへのサインイン通知設定

今回設定する環境は AWS Organizations の管理アカウントに対してサインイン通知を設定します。管理アカウントは非常に強い権限を持つためアクセスしたユーザーを通知により確認したいシチュエーションを想定しています。

通知ハブの設定

通知データが保存するされる通知ハブはメインで利用している東京リージョンとしています。

配信チャネルの設定

配信チャンネル(通知先)として、今回はメールアドレスを設定します。

E メールの配信チャネルの詳細な設定方法は次のブログで記載しているので、本ブログでは割愛します。

モバイルデバイス(モバイルアプリケーション)に通知したい場合は次のブログが参考になります。

チャットチャンネル(Slack, Microsoft Teams, Chime)に通知したい場合は AWS Chatbot サービスで設定します。

通知設定の設定

次に、通知設定を設定します。

設定画面が長いので、分割して説明していきます。まず、イベントルール設定です。

イベントパターンではAWS Console Sign-inを選択します。イベントタイプは執筆時点でサインインイベント一択です。通知するユーザーを選択できるため、今回は任意のユーザーとしています。

リージョンの設定では、有効なすべてのリージョンを選択しています。AWS CloudTrail における IAM ユーザーの ConsoleLogin イベントログはバージニア北部リージョンだけではなく、各リージョンのログとして記録される場合もあるためです。

また、AWS IAM Identity Center のアクセスに関する ConsoleLogin イベントログは AWS IAM Identity Center を構築しているリージョンで記録されます。


次に、集約設定です。

集約設定は複数の通知を 1 つにまとめるかどうかの設定となります。推奨設定となる 5 分以内のイベントをまとめる設定と 12 時間以内のイベントをまとめる設定、通知をまとめない設定があります。

今回は、次の理由により通知をまとめないDo not aggrefateを指定しています。

  • 管理アカウントへのサインインのため、サインイン回数は少ない想定(大量の通知で埋もれる可能性が少ない)
  • AWS マネジメントコンソールへの通知をまとめると通知メールからユーザーを特定できなくなる(マネジメントコンソールからは確認可能)


参考として、Receive within 5 minutes (recommended)設定の場合に 5 分以内に 2 回サインインした通知結果を掲載します。通知内容から 2 回サインインあったことは分かりますが、ユーザー名まで確認できないことが分かります。メールのリンクからマネジメントコンソールを開いて確認することはできますが、少し手間となります。


最後に、配信チャネルを設定します。先程、設定した E メールを設定しています。

通知設定を作成をクリックして設定は完了です。

設定後にステータスがアクティブとなっていることを確認します。

通知テスト

AWS IAM Identity Center によるアクセスとアカウント内の IAM ユーザーのサインイン、ルートユーザーのサインインをそれぞれ試しています。

AWS IAM Identity Center のアクセス通知

AWS アクセスポータルから通知対象アカウントのマネジメントコンソールにアクセスした通知結果です。User Identity から IAM Identity Center が作成した IAM ロール名(アクセス許可セット名)とユーザー名が分かります。リージョンは IAM Identity Center を構築しているバージニア北部リージョンです。

IAM ユーザーのサインイン通知

通知対象のアカウント内に作成している IAM ユーザーでマネジメントコンソールにサインインした通知結果です。User Identity から IAM ユーザー名aws-ctが分かります。リージョンはバージニア北部リージョンです。

別の IAM ユーザーtest-userの例です。リージョンはオハイオリージョンです。

ルートユーザーのサインイン通知

通知対象のアカウントにルートユーザーでサインインした通知結果です。User Identity からrootを利用していることがわかります。リージョンはバージニア北部リージョンです。

通知センターから履歴を確認

AWS User Notifications の通知センター画面から通知の履歴を確認できます。

以上で、通知テストは終わります。

さいごに

AWS User Notifications のマネジメントコンソールへのサインイン通知を設定し、AWS IAM Identity Center ユーザー、IAM ユーザー、ルートユーザーで通知を試してみました。

以上、このブログがどなかたのご参考になれば幸いです。