「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
を使用して GuardDuty の結果に対するカスタムレスポンスを作成するAmazon CloudWatch Events
GuardDuty では、結果が変更されると、Amazon CloudWatch Events に基づいて通知を送信できます。CloudWatch イベントを作成する変更の検出には、新しく生成された結果または新しく集計された結果が含まれます。
GuardDuty の検索結果にはそれぞれ結果 ID が割り当てられます。GuardDuty によって、一意の結果 ID を持つ各結果に対して CloudWatch イベントが作成されます。その後に発生した既存の結果は、すべて元の結果に集約されます。
CloudWatch イベントを GuardDuty とともに使用することにより、タスクを自動化し、GuardDuty の結果によって明らかになったセキュリティ上の問題に対応できます。
CloudWatch イベント に基づいて GuardDuty の結果について通知を受け取るには、CloudWatch イベント ルールおよび GuardDuty のターゲットを作成する必要があります。このルールにより、CloudWatch は GuardDuty が生成する結果の通知を、ルールで指定されたターゲットに送信できます。詳細については、「の CloudWatch イベント ルールおよびターゲットの作成 (CLI)GuardDuty」を参照してください。
トピック
CloudWatch イベント の 通知の頻度 GuardDuty
一意の結果 ID を持つ新しく生成された結果の通知 – GuardDuty は CloudWatch イベントに基づいて結果の 5 分以内に通知を送信します。このイベント (およびこの通知) には、この結果が一意の ID を伴って生成されてから最初の 5 分に発生したこの結果のそれ以降のすべての発生も含まれています。
新しく生成される結果に関して送信される通知のデフォルトの頻度 (5 分) をカスタマイズすることはできません。
その後の結果の発生に関する通知 – デフォルトでは、一意の結果 ID を持つ結果ごとに、GuardDuty は、6 時間間隔で行われる特定の結果のその後の発生を単一のイベントに集約します。その後、GuardDuty は、このイベントに基づいてこれらの後続の発生に関する通知を送信します。つまり、デフォルトでは、既存の結果の後続の発生は、GuardDuty によって、CloudWatch イベントに基づいて 6 時間ごとに通知が送信されます。
その後の結果の発生に関する通知のデフォルトの頻度はカスタマイズできます。有効な値は、15 分、1 時間、またはデフォルトの 6 時間です。この値を更新するには、CreateDetector または UpdateDetector API オペレーションを使用します。GuardDuty コンソールからこの値を更新することもできます。[設定] を選択し、[CloudWatch イベント] で、[更新された結果] プルダウンメニューからいずれかの値を選択します。
アカウントのユーザーのみが、以降の結果について 管理者 イベントに送信される通知のデフォルトの頻度をカスタマイズできます。CloudWatchメンバーアカウントのユーザーはこの頻度値をカスタマイズできません。アカウントがそのアカウントで設定される頻度値は、すべてのメンバーアカウントの 管理者 機能に適用されます。GuardDutyつまり、管理者 アカウントのユーザーがこの頻度値を 1 時間に設定した場合、すべてのメンバーアカウントでも、CloudWatch イベントに送信されるそれ以降の結果の発生に関する通知の頻度は 1 時間です。詳細については、「での複数のアカウントの管理 Amazon GuardDuty」を参照してください。
を使用した、アーカイブされた GuardDuty 結果のモニタリングCloudWatch イベント
手動でアーカイブされた結果の場合、これらのうち最初の結果と、それ以降に発生したすべての結果 (アーカイブ完了後に生成された結果) は、前述のとおり頻度ごとに CloudWatch イベント に送信されます。
自動アーカイブされた結果の場合、これらのうち最初の結果と、それ以降に発生したすべての結果 (アーカイブ完了後に生成された結果) は、 に送信されませんCloudWatch イベント。
CloudWatch の イベント形式 GuardDuty
の CloudWatch イベントには次の形式があります。GuardDuty
{ "version": "0", "id": "cd2d702e-ab31-411b-9344-793ce56b1bc7", "detail-type": "GuardDuty Finding", "source": "aws.guardduty", "account": "111122223333", "time": "1970-01-01T00:00:00Z", "region": "us-east-1", "resources": [], "detail": {GUARDDUTY_FINDING_JSON_OBJECT} }
詳細値は、配列内の複数の結果をサポートできる「結果」値を返すのではなく、単一の結果の JSON の詳細をオブジェクトとして返します。
に含まれているすべてのパラメータの完全なリストについては、「GUARDDUTY_FINDING_JSON_OBJECT
GetFindings」を参照してください。 に表示される id
パラメータは、前述の結果 ID です。GUARDDUTY_FINDING_JSON_OBJECT
の結果を通知する CloudWatch イベント ルールの作成 (コンソール)GuardDuty
で CloudWatch イベント を使用すると、GuardDuty 結果イベントをメッセージングハブに送信して GuardDuty 結果の可視性を向上させることで、自動結果アラートを設定できます。GuardDutyこのトピックでは、E メール、Slack、または Amazon Chime に結果アラートを送信する方法について説明します。そのために、SNS トピックを設定し、そのトピックを CloudWatch イベント イベントルールに接続します。
トピックとエンドポイントの設定Amazon SNS
まず、Amazon Simple Notification Service でトピックを設定し、エンドポイントを追加する必要があります。SNS ガイドの詳細については、「SNS ガイド」を参照してください。
この手順では、GuardDuty 結果データを送信する場所を指定します。SNS トピックは、イベントルールの作成中または作成後に CloudWatch イベント イベントルールに追加できます。
の結果に対する CloudWatch イベントのセットアップGuardDuty
-
https://console.aws.amazon.com/cloudwatch/
にある CloudWatch コンソールを開きます。 -
ナビゲーションペインから [ルール] を選択し、[ルールの作成] を選択します。
-
[サービス名] メニューから [GuardDuty] を選択します。
-
[Event Type] メニューから、[GuardDutyFinding] を選択します。
-
[イベントパターンのプレビュー] の [編集] を選択します。
-
以下の JSON コードを [イベントパターンプレビュー] に貼り付け、[保存] を選択します。
{ "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ], "detail": { "severity": [ 4, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9 ] } }
注記 上記のコードでは、中〜高の結果が警告されます。
-
[ターゲット] セクションで、[ターゲットの追加] をクリックします。
-
[Select Targets (ターゲットの選択)] メニューから、[SNS トピック] を選択します。
-
[Select Topic (トピックの選択)] で、ステップ 1 で作成した SNS トピックの名前を選択します。
-
イベントの入力を設定します。
-
Chime または Slack でステップ 11 にスキップするように通知を設定する場合、入力タイプはデフォルトで [一致したイベント] になります。
-
SNS 経由の E メールの通知を設定する場合は、以下の手順に従って、以下の手順を使用して受信トレイに送信されるメッセージをカスタマイズします。
-
[入力の設定] を展開して、[インプットトランスフォーマー] を閉じます。
-
次のコードをコピーして、[Input Path (入力パス)] フィールドに貼り付けます。
{ "severity": "$.detail.severity", "Finding_ID": "$.detail.id", "Finding_Type": "$.detail.type", "region": "$.region", "Finding_description": "$.detail.description" }
-
次のコードをコピーして [Input Template (入力テンプレと)] フィールドに貼り付け、E メールをフォーマットします。
"You have a severity <severity> GuardDuty finding type <Finding_Type> in the <region> region." "Finding Description:" "<Finding_description>. " "For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"
-
-
[詳細の設定] をクリックします。
-
[Configure rule details (ルール詳細の設定)] ページでルールの [名前] と [説明] を入力してから、[ルールの作成] を選択してルールを有効化します。
の CloudWatch イベント ルールおよびターゲットの作成 (CLI)GuardDuty
以下の手順は、AWS CLI コマンドを使用して、GuardDuty の CloudWatch イベント ルールおよびターゲットを作成する方法を示します。具体的には、ルールを作成して、CloudWatch で、GuardDuty が生成するすべての結果のイベントを送信し、ルールのターゲットとして AWS Lambda 関数を追加する方法について説明します。
Lambda 関数に加えて、GuardDuty および CloudWatch ではターゲットタイプとして、Amazon EC2 インスタンス、Amazon Kinesis
ストリーム、Amazon ECS タスク、AWS Step Functions ステートマシン、run
コマンド、および組み込みターゲットをサポートします。
GuardDuty の CloudWatch イベント ルールおよびターゲットは、CloudWatch イベント コンソールで作成することもできます。詳細な手順については、「イベントでトリガーする CloudWatch イベント ルールの作成」を参照してください。[イベントソース] セクションで、[GuardDuty
サービス名] として 、[GuardDuty Finding
イベントタイプ] として を選択します。
ルールおよびターゲットを作成するには
-
GuardDuty が生成するすべての結果のイベントを CloudWatch から送信するルールを作成するには、次の CloudWatch CLI コマンドを実行します。
aws events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"]}"
重要 GuardDuty で生成された結果のサブセットにのみイベントを送信するよう CloudWatch に指示できるように、ルールをさらにカスタマイズできます。このサブセットは、ルールで指定されている結果の属性に基づきます。たとえば、次の CLI コマンドを使用して、CloudWatch で 重要度が 5 または 8 の GuardDuty 結果のイベントのみ送信できるようにルールを作成します。
aws events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"],\"detail-type\":[\"GuardDuty Finding\"],\"detail\":{\"severity\":[5,8]}}"
この目的のために、JSON で使用可能な任意のプロパティ値を使用して GuardDuty の結果を取得できます。
-
ステップ 1 で作成したルールのターゲットとして Lambda 関数をアタッチするには、次の CloudWatch CLI コマンドを実行します。
aws events put-targets --rule Test --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:<your_function>
注記 上記コマンド内の <your_function> を GuardDuty イベントの実際の Lambda 関数に置き換えてください。
-
ターゲットを呼び出す上で必要なアクセス許可を追加するには、次の Lambda CLI コマンドを実行します。
aws lambda add-permission --function-name <your_function> --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com
注記 上記コマンド内の <your_function> を GuardDuty イベントの実際の Lambda 関数に置き換えてください。
注記 上記の手順では、CloudWatch イベントをトリガーするルールのターゲットとして Lambda 関数を使用しています。他の AWS リソースをターゲットとして設定して、CloudWatch イベント をトリガーすることもできます。詳細については、「PutTargets」を参照してください。