会社でAWSにログインしたときに不正ログイン通知が届く設定が昔からのこっており、
誰がログインしたのか申告制という運用だったので、IAMユーザ名を自動で出力するようにがんばった記録です
途中ですので
-
IAMユーザーのログインイベントを検出するために、Amazon EventBridgeを使用します。EventBridgeはAWSのイベント駆動型サービスであり、AWSアカウント内のさまざまなイベントに対してルールベースのアクションを設定できます。
-
EventBridgeのルールを作成します。ルールはイベントソース(CloudTrail)とイベントパターン(ログインイベント)に基づいて定義されます。例えば、次のようなイベントパターンを設定することができます:
{
"source": ["aws.cloudtrail"],
"detail-type": ["AWS Console Sign In via CloudTrail"]
}
このイベントパターンは、AWS CloudTrailのログインイベントを検出します。
-
ルールのターゲットとして、AWS Lambda関数を指定します。Lambda関数はイベントがトリガーされると実行されるコードのエンドポイントです。
-
Lambda関数内でログインイベントを受け取り、必要な情報を抽出します。IAMユーザーのユーザー名やその他の詳細情報を取得することができます。
-
Slackへの通知を行うために、Lambda関数内でSlackのWebhookを使用します。WebhookはSlackにメッセージを送信するためのエンドポイントです。
-
Lambda関数は抽出した情報を使ってSlackへの通知メッセージを作成し、SlackのWebhookにPOSTリクエストを送信します。通知メッセージはユーザー名やログインタイムスタンプなどの情報を含むことができます。
-
Slack側でWebhookを受け取り、通知メッセージを指定したチャンネルに表示します。メッセージはログインしたIAMユーザーの情報を示し、ログインが行われたことを通知します。