【Amazon EventBridge】Input Transformer でメール通知をわかりやすく整形する方法

【Amazon EventBridge】Input Transformer でメール通知をわかりやすく整形する方法

Amazon EventBridge の Input Transformer 機能を使って、わかりづらい json のメール通知を見やすく整形する方法を紹介します。
2026.07.31

はじめに

こんにちは、フニです。
本記事では、Amazon EventBridge の Input Transfomer 機能を活用して、メール通知をわかりやすく整形する方法について紹介します。

どう変わるの?

適用前

メール整形を実施していない場合、わかりづらい内容の通知が届きます。

image.png

適用後

Input Transformer 機能を導入することで、メール本文を整形でき、わかりやすい通知を受け取れるようになります。

CleanShot 2026-07-31 at 08.43.00@2x.png

やってみた

前提条件

https://dev.classmethod.jp/articles/eventbridge-sns-root-user-login/

上記ブログを基準として、Amazon EventBridge で通知設定が完了していることを前提とします。


1. 作成した EventBridge を編集する

AWS コンソール画面にログイン後、Amazon EventBridge コンソール画面に移動します。

CleanShot 2026-07-31 at 08.56.59@2x.png

左のルールタブから作成しておいた EventBridge ルールに移動し、編集を押下します。

CleanShot 2026-07-31 at 08.55.56@2x.png

CleanShot 2026-07-31 at 08.58.10@2x.png

2. ターゲットの入力変換を有効化する

画像を参考に、ターゲットの入力変換を有効化します。

CleanShot 2026-07-31 at 08.59.48@2x.png

3. 入力トランスフォーマー(Input Transformer)を設定する

画像と以下内容を参考に設定を適用します。

CleanShot 2026-07-31 at 09.01.58@2x.png

①サンプルトリガーイベント

以下のように、イベントが発生した時のサンプル json を提供しています。
今回はルートユーザーログイン検知のため AWS Console Sign In via CloudTrail を利用します。

{
  "version": "0",
  "id": "6f87d04b-9f74-4f04-a780-7acf4b0a9b38",
  "detail-type": "AWS Console Sign In via CloudTrail",
  "source": "aws.signin",
  "account": "123456789012",
  "time": "2016-01-05T18:21:27Z",
  "region": "us-east-1",
  "resources": [],
  "detail": {
    "eventVersion": "1.02",
    "userIdentity": {
      "type": "Root",
      "principalId": "123456789012",
      "arn": "arn:aws:iam::123456789012:root",
      "accountId": "123456789012"
    },
    "eventTime": "2016-01-05T18:21:27Z",
    "eventSource": "signin.amazonaws.com",
    "eventName": "ConsoleLogin",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "0.0.0.0",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36",
    "requestParameters": null,
    "responseElements": {
      "ConsoleLogin": "Success"
    },
    "additionalEventData": {
      "LoginTo": "https://console.aws.amazon.com/console/home?state=hashArgs%23&isauthcode=true",
      "MobileVersion": "No",
      "MFAUsed": "No"
    },
    "eventID": "324731c0-64b3-4421-b552-dfc3c27df4f6",
    "eventType": "AwsConsoleSignIn"
  }
}

②入力パス

イベント発生時の json から活用が必要なデータを変数として保存します。
今回は以下4つの変数を保存しました。

{
  "accountId": "$.detail.userIdentity.accountId",
  "eventTime": "$.detail.eventTime",
  "ipAddress": "$.detail.sourceIPAddress",
  "result": "$.detail.responseElements.ConsoleLogin"
}

③テンプレート

メール通知の本文の整形を定義します。②入力パスで定義した変数を活用できます。
注意点として、各行を "" で囲む必要があります。

"AWS ルートユーザーログインを検知しました。(結果:<result>)"
"[発生日時]:<eventTime> (UTC)"
"[AccountID]:<accountId>"
"[対象IP]:<ipAddress>"
"心当たりがない場合は、即時確認を行ってください。"

④出力

①サンプルトリガーイベントのイベントが発生した際に、③テンプレートで定義した内容による予想結果です。
今回の設定では、以下のような形でメール通知が飛んでくることが事前に確認できます。

"AWS ルートユーザーログインを検知しました。(結果:Success)"
"[発生日時]:2016-01-05T18:21:27Z (UTC)"
"[AccountID]:123456789012"
"[対象IP]:0.0.0.0"
"心当たりがない場合は、即時確認を行ってください。"

実際、ルートユーザログインを試した際に以下のような通知が届いていたら完了です。

CleanShot 2026-07-31 at 08.43.00@2x.png

メール整形の制約

Input Transformer でのメール整形には、以下のような制約があります。

  • ① SNS トピックでメール通知を実施している場合、メールタイトルの変更はできません。つまり、AWS Notification Messageというタイトルが固定されます。
  • ② 一方で、SNS トピック名からメールが届くようになっていて、AWSAccountID のようなユニークな値で登録すると把握はできるかと思います。
  • ③ 本文の内容には、各行に "" がそのまま出力されます。

CleanShot 2026-07-31 at 09.31.36@2x.png

このような制約が許容できない場合は、AWS Lambda のようなソリューションを検討してください。

https://repost.aws/ja/knowledge-center/change-sns-email-for-eventbridge

さいごに

今回は、Amazon EventBridge の Input Transfomer 機能を活用して、メール通知をわかりやすく整形する方法について紹介しました。
メール整形をしないと json 原文でメールが届くため、内容がわかりづらいですが、Input Transformer を活用すると、簡単にメール通知本文を整形できます。
一部制約はありますが、許容範囲であれば追加でリソースやコード管理も不要となる方法ですので検討できるかと思います。

この記事が、誰かの助けになれば幸いです。

参考

https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-transform-target-input.html

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事