【AWS】GuardDutyの通知メールをカスタマイズしてみる
はじめに
GuardDutyでイベントを検知したらメール通知することができます。
※メール通知設定の記事はこちら
しかし、通知されるメール本文は正直見にくいですよね。。
情報量が多いということとJSON形式なので、何が起きたのかを瞬時に判断することが辛いです。以下画像のようなメールが届きます。

今回は、このJSON形式のメールを見やすくなるようカスタマイズしてみたいと思います。
メール文のカスタマイズ
前提
GuardDutyのメール通知設定がすでに済んでいることを前提にすすめます。
※メール通知の設定が済んでいない方はこちらを参考に
EventBridgeルールの設定
EventBridgeの設定を変更していきます。
1.AWS コンソール「EventBridge」を選択します。
2.左側メニューの「ルール」をクリック
3.設定済みの通知設定ルールをクリックし、「編集」をクリックします。
ターゲット入力を設定 > 「入力トランスフォーマー」を選択します。
入力パスの欄に以下JSONをペーストします。
{
"Account_ID": "$.detail.accountId",
"Finding_ID": "$.detail.id",
"Finding_Type": "$.detail.type",
"Finding_description": "$.detail.description",
"eventFirstSeen": "$.detail.service.eventFirstSeen",
"region": "$.region",
"severity": "$.detail.severity",
}

入力テンプレートの欄に以下JSONをペーストします。
"重要度 <severity> のGuardDutyイベントが発生しました。"
"アカウントID: <Account_ID>"
"発生日時: <eventFirstSeen>"
"検出タイプ: <Finding_Type>"
"リージョン: <region>"
"タイプの説明: <Finding_description>"
"詳細はGuardDuty コンソール( https://console.aws.amazon.com/guardduty/home?region=#/findings?search=id%3D )を確認してください。"

入力後、「確認」を押し、「ルール更新」をクリックすれば、EventBridgeの設定は完了です。それでは、メール本文がカスタマイズされているか確認しましょう。
通知確認
GuardDutyでイベントを検出させてメールを確認してみましょう。
GuardDuty疑似イベント発生
GuardDutyに疑似的なイベントを発生させます。以下のようなAWS CLIコマンドを打つとサンプルイベントを発生させることができます。
コマンドは、CloudShellで打つのが簡単だと思いますので、試してみるとよいかと思います。"detector-id"部分はGuardDutyの表示画面から確認し書き換えてください。
aws guardduty create-sample-findings \
--detector-id XXXXXXXXXXXXXXXXXXXXXXXXX \
--finding-types "Backdoor:EC2/DenialOfService.Dns"
サンプルイベントに関しての詳細はこちら
GuardDuty左側メニュー → 検出結果をクリック
サンプルイベントが検出していることが分かります。

通知メールの確認
通知設定しているメールBoxを開きますと、以下画像のようなメールが届いています。
記事冒頭のメールよりもだいぶスッキリして見やすくなったと思います。

まとめ
GuardDutyのイベントはいち早く認識することと迅速な対応が肝要です。
そのため、通知メールを受け取った際は、状況をすぐに判断できることが重要になります。メールの本文をカスタマイズして、情報を的確に把握し速やかに対応できるよう備えましょう。
ぜひ、参考にしていただければと思います。
参考
関連の記事
【初めてのAWS】GuardDutyの紹介
【AWS】GuardDutyの有効化
【AWS】GuardDutyでイベント検知したらメール通知する仕組みを作る