Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgen...

Avatar for yhana yhana
September 28, 2026

20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する

Avatar for yhana

yhana

September 28, 2026

More Decks by yhana

Other Decks in Technology

Transcript

  1. 想定している AWS 環境 • AWS Organizations 全体の GuardDuty 検出結果を Security

    Hub に集約 • 集約した検出結果から EventBridge ルール経由で通知 • メールで通知し、宛先は AWS 全体の管理者 ② 検出結果のイベント連携 ③ メール送信 ① 検出結果の集約 3
  2. DevOps Agent の利⽤機能 ⑥ メール送信 ② 検出結果のイベント連携 ③ 調査依頼 ⑤

    調査結果の取得 ① 検出結果の集約 ④ 検出アカウントの調査 6
  3. DevOps Agent のスペース設定 ⑥ メール送信 ② 検出結果のイベント連携 ③ 調査依頼 ⑤

    調査結果の取得 ① 検出結果の集約 ④ 検出アカウントの調査 14
  4. DevOps Agent のスペース設定 スペースとは DevOps Agent がアクセス‧調査できる範囲 デフォルトは単⼀アカウント内の範囲のため、AWS Organizations 配下の全メンバー

    アカウントを対象とするためには追加設定が必要 引⽤元:AWS DevOps Agentの全体構造と設定箇所を図解してみた | DevelopersIO 15
  5. DevOps Agent のスペース設定 スペースへの他アカウント追加には、IAM ロールの作成とセカンダリソースの追加が 必要。下図は CloudFormation StackSets と CLI

    を利⽤して設定する例 ① DevOps Agent がアクセスするためのロールを StackSets で⼀括作成 ② セカンダリソースとして、全メンバーアカウントを CLI で⼀括追加 参考ブログ:AWS DevOps Agent スペースのセカンダリソースの追加に必要な IAM ロールを CloudFormation StackSets で作成してみた | DevelopersIO 16
  6. DevOps Agent のスペース設定 セカンダリソースの追加を AWS CLI で⼀括設定するイメージ セカンダリソースとなる AWS アカウントのリストを

    CLI のインプットとして実⾏ 参考ブログ:AWS DevOps Agent スペースに AWS Organizations 配下のアカウントをセカンダリソースとして AWS CLI でまとめて追加してみた | DevelopersIO 17
  7. DevOps Agent のコスト GuardDuty の重要度 High 以上の調査コスト実績は「$1〜15/1回、平均 約$6/1回」 サンプルの⼀⻫作成で調査してしまうと $200

    程度かかるみたい 参考ブログ:Amazon GuardDutyの検出結果サンプルの⽣成を実⾏したら、AWS DevOps Agentで200ドルの課⾦が発⽣した話 | DevelopersIO 19
  8. DevOps Agent の設定 ⑥ メール送信 ② 検出結果のイベント連携 ③ 調査依頼 ⑤

    調査結果の取得 ① 検出結果の集約 ④ 検出アカウントの調査 22
  9. サンプルを除外するイベントパターン DevOps Agent の調査コストを考慮して次の検出内容を調査‧通知対象に選定 ①重要度「⾼(High)」以上、②サンプルは特定の 1 タイプのみ、にマッチ { "source": ["aws.securityhub"],

    "detail-type": ["Security Hub Findings - Imported"], "detail": { "findings": { "ProductName": ["GuardDuty"], "Severity": { "Label": ["HIGH", "CRITICAL"] }, "$or": [ { "Sample": [false] }, { "Types": ["TTPs/Command and Control/Backdoor:EC2-DenialOfService.Dns"] } ] } } } 参考ブログ:AWS Security Hub CSPM 経由の GuardDuty 通知においてサンプル検出を通知させない EventBridge イベントパターンを試してみた | DevelopersIO 23
  10. Lambda の実装イメージ GuardDuty 検出イベントを契機に、Lambda から SDK で DevOps Agent のインシデ

    ント調査を開始し、調査が終われば SNS 経由でメールを送信 27
  11. Lambda のタイムアウトへの対応⽅法 Lambda のタイムアウトへの対応⽅法はいくつかあるが、 Durable Functions を利⽤してタイムアウト時間を15分以上にする実装が可能 Durable Functions の各ステップと動作イメージ

    No. ステップの処理内容 1 DevOps Agent に調査を依頼する 2 調査のステータスを確認する 3 調査結果を取得してメール本⽂に整形する 4 SNS トピックに発⾏する 1 回⽬ 2〜n 回⽬ n+1 回⽬ … 29
  12. Lambda のタイムアウトへの対応⽅法 Durable Functions 以外の解決策 • Step Functions 化 •

    DevOps Agent 調査完了イベントを契機にメール送信する Lambda に分割 次スライド以降で、今回は採⽤しなかった理由を紹介 30
  13. Step Functions と Durable Functions 将来の拡張を考えると Step Functions を採⽤してもよかった 例えば、Bedrock

    を⽤いて DevOps Agent の調査結果から独⾃の要約を追加する等 独⾃の要約 追加調査内容 32
  14. メール送信⽤ Lambda を分ける場合の考慮点 調査結果イベントや調査結果には GuardDuty の検出結果の完全な情報は無い メール送信⽤ Lambda において、調査依頼時に渡している検出結果情報などを基に 情報取得する必要がある(または、別途保管しておく)

    GuardDuty 検出結果情報 (Findings) の有無 メールに検出結果情報を記載する場合は考慮が必要 調査完了イベントや調査結果に 含まれない情報がある 検出結果情報あり 検出結果情報なし 34
  15. さいごに 本⽇説明した Lambda と Durable Functions 両⽅のサンプルコードをブログで公開 しています URL:【登壇資料】 Amazon

    GuardDuty の検出通知メールに AWS DevOpsAgent の調査結果を追加する #devio2026 | DevelopersIO 39