【AWS User Notifications】複数のIAMユーザのコンソールサインイン通知を、単一の通知設定で実装する

2024/09/23に公開

想定読者

  • AWS User Notificationsを利用したことがある方
  • AWS User Notificationsをこれから使ってみようと考えている方

AWS User Notificationsの紹介

AWSアカウントの不正ログインを速やかに検知するため、IAMユーザーのコンソールサインインをメールやアプリ等に通知したいときがある。その際、全リージョンに適用するのが容易であることを理由に【3】、筆者はAWS User Notificationsの利用を好んでいる。

以下、AWSドキュメントから引用【1】。

AWS User Notifications is an AWS service that acts as a central location for your AWS notifications in the AWS Management Console. This includes notifications such as Amazon CloudWatch alarms, AWS Support case updates, and communications from other services. You can use User Notifications to set up delivery channels notify you about events of interest. You receive a notification when an event matches a rule that you specify. You can receive notifications for events through multiple channels, including email, AWS Chatbot chat notifications, or AWS Console Mobile App push notifications.

通知設定

複数IAMユーザーに通知設定するときの課題

あるAWS利用者が、IAMユーザーを複数で使い分けているとき、その通知先を同一にしたいときがあると思う。

AWS User Notificationでは、2024年9月現在、以下の通りである。上記のような設定は煩雑に感じるかもしれない。

  • 通知設定と配信チャネルが1:1の関係である。
  • 設定するIAMユーザが単一であるように見える。
    以下、画像はAWSマネジメントコンソールより、AWS Console Sign-inの設定をするときに現れる画面。「ARNによる特定のユーザー」に設定できるARNが1つのみであるかのように見える。

一見、IAMユーザー毎に通知設定を作る必要があるように見えるが、
このARNを1つの通知設定で複数設定することで、単一の通知設定で実現できる。

通知仕様

  • IAMユーザ1でコンソールサインインしたとき、メールアドレスAに通知を送信する。
  • IAMユーザ2でコンソールサインインしたとき、メールアドレスAに通知を送信する。

設定箇所、及び設定値

※AWS User Notificationsの設定手順は割愛する。具体的な手順は【2】を参照。
※メールアドレスAの配信チャネルは設定済みとする。

「高度なフィルター - オプション」項目で、以下のようにJSONのイベントパターンを記述する。

{
  "detail": {
    "userIdentity": {
      "arn": [
        "arn:aws:iam::<AWS Account ID>:user/<IAMユーザー1>",
        "arn:aws:iam::<AWS Account ID>:user/<IAMユーザー2>" 
      ]
    }
  }
}

これで通知設定を何個も作る必要はないね。

参考資料

  1. AWS User Notifications (参照 2024-09-23)
  2. AWS User Notificationsでマネジメントコンソールへのサインインを通知する | DevelopersIO (参照 2024-09-23)
  3. CloudTrailのConsoleLoginイベントが見えないので調べた #AWS - Qiita (参照 2024-09-23)

Discussion