コラム
しばらく使われていないIAMユーザの情報をTeamsへ通知する
-
TAG
AWS Lambda Microsoft Teams -
UPDATE
2023/02/27
はじめに
こんにちは。BTC クラウドCoEの長濱です。
突然ですが、退職者やプロジェクトを離任された方のIAMユーザの情報がそのままになっていることはないでしょうか。
今回は上記のようなことを防ぐために、しばらく使用されていないIAMユーザの情報をMicrosoft Teams(以下、Teams)へ通知する方法をご紹介します。
構成
今回の実装ではAmazon Event Bridge(以下、Event Bridge)とAWS Lambda(以下、Lambda)を組み合わせたシンプルなものになります。
- ランタイム:Python 3.9
- Python:3.11.2
実装の際にPythonライブラリのzip化が必要となるため、ローカルで使用しているPythonのバージョンを記載しております。
実装
①Lambdaの構築
Lambdaの作成
1.[関数の作成]をクリックします。
2.関数名、ランタイムを入力、選択します。
詳細設定は設定を変更せず、[関数の作成]をクリックします。
Layerの追加
1.requestsライブラリをインストールします。
$ mkdir python $ cd python $ pip install requests
2.pythonフォルダをzip化します。
windowsの場合は、右クリック後、[送る]>[圧縮(zip形式)フォルダー]をクリックします。
3.AWSコンソール上から[レイヤー]をクリックします。
4.[レイヤーを作成]をクリックします。
5.名前を入力し、2.で作成したzipファイルのアップロード後、[作成]をクリックします。
7.作成したLambda関数の設定画面から[レイヤーの追加]をクリックします。
8.6.で作成したレイヤーを選択し、[追加]をクリックします。
受信Webhookの作成と環境変数への設定
こちらのドキュメントを基に受信Webhookを作成していきます。
1.Teamsのチャネル右側にある[…]をクリックします。
2.[コネクタ]をクリックします。
3. Incoming Webhookを検索し、[追加]をクリックします。
4,[追加]をクリックします。
5. Webhookの名前を入力し、[作成]をクリックします。
6. 受信WebhookのURLが発行されるため、メモします。
[完了]をクリックします。
7.作成したLambda関数の設定画面上から[環境変数]>[編集]をクリックします。
8.キーに「WEB_HOOK」、値に6.でメモした受信Webhookを入力し、[保存]をクリックします。
Lambdaのスクリプトを作成
スクリプトはこちらをご参照ください。
コードをコピペし、[Deploy]をクリックします。
Lambdaの実行ロールを編集
1.作成したLambdaの設定画面から[アクセス権限]>ロール名をクリックします。
2.[許可を追加]>[ポリシーをアタッチ]をクリックします。
3.[ポリシーを作成]をクリックします。
4.IAMを選択します。
5.以下の2つのアクションを選択し、[次のステップ:確認]をクリックします。
- GenerateCredentialReport
- GetCredentialReport
6.ポリシー名を入力し、[ポリシーの作成]をクリックします。
7.6.で作成したポリシーを選択し、[ポリシーをアタッチ]をクリックします。
タスクのタイムアウト値を変更
実行する際に既定のタイムアウト値では短すぎる場合があるため、タイムアウト値を変更します。
1.[一般設定] > [編集]をクリックします。
2.タイムアウト値を5分に変更し、[保存]をクリックします。
②EventBridgeの設定
1.関数の概要から[トリガーを追加]をクリックします。
2.EventBridgeを選択し、ルール名、スケジュール式を入力後[追加]をクリックします。
今回は1週間に1回通知が来るように設定しました。
動作確認
作成したLambdaの[テスト]タブ上で[テスト]をクリックすると
テストが実施できます。
実行結果はこちらになります。
左にIAMユーザ名、右側にログインしていない期間を表示しています。
まとめ
今回はLambdaとEventBridgeを使用してしばらく使われていないIAMユーザの情報をTeamsへ通知する機能を実装しました。あまりIAMに関するAWS APIを触る機会が無かったので、勉強になりました。
-
PICK UP
ピックアップ
-
ピックアップコンテンツがありません
-
RANKING
人気の記事
-
-
1
AWS Secrets Managerを使用したK…
AWS Secrets Managerを使用したKubernetes Secre…
2021/08/23
-
2
AWS Lake Formationで行およびセル…
AWS Lake Formationで行およびセルレベルのきめ細かなアクセス制御…
2021/12/13
-
3
公共システムのコスト見直しのアプローチと調達仕様書…
公共システムのコスト見直しのアプローチと調達仕様書への記載事項(AWS Comp…
2023/12/21
-
4
望雲彼方に ~クラウド移行その2(インフラエンジニ…
望雲彼方に ~クラウド移行その2(インフラエンジニア編)~
2020/06/12
-
5
EKSを理解する(第3回)Pod単位のセキュリティ…
EKSを理解する(第3回)Pod単位のセキュリティグループ割り当て
2020/11/27
-
-
ARCHIVE
アーカイブ
-
- July 2024 (1)
- January 2024 (1)
- December 2023 (2)
- June 2023 (2)
- May 2023 (1)
- April 2023 (1)
- March 2023 (2)
- February 2023 (2)
- January 2023 (1)
- December 2022 (2)
- October 2022 (2)
- September 2022 (2)