みなさん、こんばんは、新人のRenです。そろそろ新人も卒業なので、次回からRenに変更させていただこうかと。

今回は、Guard DutyからAmazon SNS経由で通知をメールに送る方法をご紹介しようと思います。非常に簡単な手順で通知が送れるようになり、非常に便利です。

SNS(Amazon Simple Notification Service)の準備

 ①コンソールを開き、「Amazon Simple Notification Service」を選びます。

 ②「トピックの作成」→「トピック名」に名前を入力

  ・送信者名になります

④コンソールから「サブスクリプション」を選択
・Amazon Simple Notification Service

⑤「サブスクリプションの作成」→「トピックARN=前手順で作成したトピック」
・②で決めたトピック名を選択

⑥「プロトコル」を「Eメール」にして、「エンドポイント」にメールアドレスを入力
・メールアドレス入力後、「サブスクリプションの作成」をクリック

⑦指定したメールアドレスにメールが届くので、「Confirm Subscription」で承認します。

Cloud Watchでイベントルールの作成

①コンソール→「ルール」→「ルールの作成」
  ・Cloud Watch

 ②「サービス名」→「Guard Duty」を選択

 ③「イベントタイプ」→「Guard Duty Finding」を選択

 ④「イベントパターンのプレビュー」→「編集」をクリック

 ⑤サンプルを貼り付けて保存する

  ・「検索」をすべて対象とする
   { "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ] }

  ・上記以外にもサンプルによって検索対象を決めることが出来る

⑥「ターゲット」→「ターゲットの追加」→「SNSトピック」
  ・事前に作成したもの

 ⑦「入力の設定」→「インプットトランスフォーマ」

・「入力パス」に下記コードを貼り付ける
   { "severity": "$.detail.severity", "Finding_ID": "$.detail.id", "eventFirstSeen": "$.detail.service.eventFirstSeen", "eventLastSeen": "$.detail.service.eventLastSeen", "count": "$.detail.service.count", "Finding_Type": "$.detail.type", "region": "$.region", "Finding_description": "$.detail.description" }

 ⑧「入力テンプレート」に下記コードを貼り付ける

・メールが届く時のテンプレートになります。
   "重要度 のGuardDuty結果が発生しました。検索タイプ: リージョン: タイプの説明: 初回発生日時: 最新発生日時 発生数 詳細はGuardDuty コンソール( https://console.aws.amazon.com/guardduty/home?region=#/findings?search=id%3D )を確認してください。"

⑨「設定の詳細」→「ルールの詳細を設定する」
・「名前」と「ルール」を入力後、「ルールの作成」をクリック

Guard Duty通知テスト

①コンソールを開く
  ・Guard Duty

②「設定」→「結果のサンプル」→「結果のサンプルの生成」

③設定がしっかり出来ているとサンプルのEメールが届き、手順は完了です!
 ・下図が実際に届いたサンプルです

まとめ

今回はSNSとCloud Watchを使い、通知を送りました。非常に簡単な手順で5分~10分もあれば設定できます。Guard Dutyを利用しているが検出結果を確認し忘れたり、うまく活用できなかったりしている方は是非参考にしてみてください。