技術1課の櫻井です。 今回は、5月に一般公開となったAWS User Notificationsを利用することで、 Slackへのマネージメントコンソールサインイン通知が簡単に実装できるようなので試してみました。
1. SNSトピックの設定
まずはSNSトピックから作成します。SNSのコンソールに移動して「トピックの作成」を選択してください。
スタンダードキューで問題ありませんのでそちらを選択してトピックの名前を記入した後、画面下部の「トピックの作成」を選択します。
正常にトピックが作成されたらSNSでの作業は完了です。 次はChatBotのコンソールへ移動してください。
2. AWS ChatBot の設定
はじめにチャットクライアント(通知先にするチャットアプリケーション)を指定します。今回はSlackを選択します。
自分が所属するワークスペースへのアクセス許可を求められますので許可してください。
無事に承認されたら次はチャネル(チャンネル)の設定を行います。「新しいチャネルを設定」を押してください。
設定名を付けたら、Slackチャネル(チャンネル)のIDを入力します。チャンネルのIDはチャンネルの詳細画面下部に記載しているCから始まる文字列です。
次にChatBotが利用するIAMロールの設定を行います。初めて設定する方は、「チャネルロール」→「テンプレートを使用してIAMロールを作成する」を選択してください。
最後に「通知」欄でリージョンと先ほど作成したSNSトピックを指定して「設定」を選択したらChatBotの設定は完了です。 User Notificationsのコンソールへ移動しましょう。
3. User Notificationsの設定
通知ハブ
User Notificationsの保存されるリージョンを指定します。今回は東京リージョンを指定しています。
通知チャネル
次にUser Notificationsの通知先である通知チャネルを確認します。「チャットチャネル」タブを選択すると先ほどChatBotで設定したSlackチャンネルの情報が記載されています。
通知設定
これで本題の「コンソールへのサインインがあったら通知する」という部分を設定できます。通知設定の「通知設定を作成」を選択してください。
はじめに通知の名前を設定します。
「イベントルール」欄でAWS サービスの名前を「AWS Console Sign-in」に、イベントタイプを「サインインイベント」に設定します。
リージョンはオプトインが必要なリージョンを除いたすべてのリージョンを指定してください。 サインイン処理はランダムなリージョンで実施され、処理が行われたリージョンのCloudTrailに情報が記録されるため東京以外も指定する必要があります。 オプトインが必要なリージョンは以下の通りです。これらリージョンをオプトインしていない場合は選択する必要はありません。
- Africa (Cape Town)
- Asia Pacific (Hong Kong)
- Asia Pacific (Hyderabad)
- Asia Pacific (Jakarta)
- Asia Pacific (Melbourne)
- Europe (Milan)
- Europe (Spain)
- Europe (Zurich)
- Middle East (Bahrain)
- Middle East (UAE)
集約設定はサインインした際に即時通知されるようにしたいので「集約しない」を選択します。
最後に配信チャネル(通知先)を指定します。今回はSlackなので「AWS ChatBot」を選択して先ほど設定したSlackチャネルを指定して「通知設定を作成」を押すと設定は完了です。
実際の通知
設定は完了したので実際にサインインしてみます。
Slackチャンネルに通知が届きました。
- サインインしたIAMユーザー
- サインインした端末の情報
- サインイン結果
- サインイン時間
などが記載されています。
まとめ
2021年にサインイン処理の使用が、ランダムなリージョンで行われて記録されるように変更されたことで実装が煩雑になったサインイン通知ですが、User Notificationsを利用することで簡単にシンプルな構成で実装することができました。皆さんも是非試してみてください。