Amazon GuardDuty のサービス検出タイプに反応する Amazon EventBridge ルールを作成しましたが、応答の形式が JSON になっています。メール応答をカスタム Amazon Simple Notification Service (Amazon SNS) 通知で受信できるようにしたいです。
解決策
前提条件: Amazon SNS トピックを作成します。Amazon SNS トピックは、GuardDuty サービスと同じリージョンに配置する必要があります。
GuardDuty に対する EventBridge ルールを構成し、カスタム SNS 通知を送信するには、次の手順を実行します。
-
EventBridge コンソールを開きます。
-
[バス] セクションで [ルール] を選択します。
-
[ルールを作成] を選択し、次の手順を実行してルールを構成します。
名前と説明を入力します。
[イベントバス] で [デフォルト] を選択します。
[ルールタイプ] で [イベントパターン付きルール] を選択します。
-
[次へ] を選択します。
-
[イベントパターン] で次の手順を実行します。
[イベントソース] で [AWS サービス] を選択します。
[AWS サービス] で [GuardDuty] を選択します。
[イベントタイプ] で [GuardDuty 検出結果] を選択します。
-
[イベントパターン] の [プレビュー] セクションで [パターンの編集] を選択します。
-
JSON テキストボックスに次のコードを入力します。
{
"source": ["aws.guardduty"],
"detail": {
"type": ["Backdoor:EC2/C&CActivity.B!DNS"]
}
}
注: Backdoor:EC2/C&CActivity.B!DNS を実際の検出タイプに置き換えてください。検出タイプ Backdoor:EC2/C&CActivity.B!DNS をテストするには、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから、テスト用ドメイン guarddutyc2activityb.com に DNS リクエストを行います。Linux では dig コマンドを、Windows では nslookup コマンドを実行します。検出結果は数分以内に生成されます。
-
[次へ] を選択します。
-
[ターゲットタイプ] で [AWS サービス] を選択します。
-
[ターゲットを選択] で [SNS トピック] を選択します。
-
[トピック] で目的のトピックを選択します。
-
(オプション) 入力トランスフォーマーを構成します。
[ターゲット入力トランスフォーマー] セクションの [入力パス] において、テキストボックスに次の JSON パスを入力します。
{
"severity": "$.detail.severity",
"Finding_ID": "$.detail.id",
"instanceId": "$.detail.resource.instanceDetails.instanceId",
"port": "$.detail.service.action.networkConnectionAction.localPortDetails.port",
"eventFirstSeen": "$.detail.service.eventFirstSeen",
"eventLastSeen": "$.detail.service.eventLastSeen",
"count": "$.detail.service.count",
"Finding_Type": "$.detail.type",
"region": "$.region",
"Finding_description": "$.detail.description"
}
[テンプレート] において、テキストボックスに次の文字列テンプレートを入力します。
"You have a new GuardDuty alert. View finding in console - https://console.aws.amazon.com/guardduty/home?REGION=#/findings?search=id%3DFINDING_ID "
注: テンプレートでは、閉じ引用符によって SNS 通知の URL が壊れることを防ぐために、FINDING_ID の後の末尾のスペースを削除しないでください。入力パスは、GuardDuty の検出結果に含まれる特定の属性を使用します。使用可能なフィルターの詳細については、「GuardDuty のプロパティフィルター」を参照してください。
[次へ] を選択します。
(オプション) ルールにタグを追加し、**[次へ] を選択します。
ルールの詳細を確認し、[ルールを作成]**を選択します。
GuardDuty が検出タイプを生成すると、EventBridge は 5 分以内に指定したエンドポイントに SNS 通知を送信します。すべての GuardDuty 検出タイプに対する SNS 通知を設定する場合は、「Amazon EventBridge で GuardDuty の検出結果を処理する」を参照してください。
関連情報
Amazon EventBridge でイベントに反応するルールを作成する
チュートリアル: 入力トランスフォーマーを使用して EventBridge のイベントを変換する
GuardDuty のカスタム Amazon SNS 通知が配信されない場合のトラブルシューティング方法を教えてください