AWS Organizations 環境で GuardDuty の検出結果を委任したアカウントに集約してから通知する構成例(Security Hub 非導入環境)

2022.05.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS Organizations 環境下で Security Hub は利用せずに GuardDuty を利用するときの検出結果を通知する仕組み・構成の一例を紹介します。

結論

  • メンバーアカウント側に GuardDuty の通知設定は不要
  • GuardDuty 委任したアカウント側にはメンバーアカウントの検出イベントが連携される
  • GuardDuty 委任したアカウント側のすべてのリージョンに EventBridge のルールを設定してイベントを拾うことができる

Security Hub がある場合

AWS Organizations 環境下で Security Hub が有効化されていれば GuardDuty に限らず、IAM Access Analyzer、Inspector などのセキュリティサービスの検出結果を集約して通知する構成を取れます。

画像引用: マルチアカウント環境でセキュリティサービスの検出結果を全てSecurity Hubに集約して通知してみた | DevelopersIO

詳しくは以下のリンクをご確認ください。

Security Hub で統合されているサービス一覧は以下リンクをご確認ください。

利用可能な AWS のサービスの統合 - AWS Security Hub

本記事では Security Hub は有効化せずに AWS Organizationsと GuardDuty の組み合わせで通知する構成をみていきます。

AWS Organizations + GuardDuty

AWS Organizations で GuardDuty の有効化については以下のリンクをご参照ください。ここでは GuardDuty の検出した内容の通知する構成について触れます。

委任

GuardDuty の管理するのは管理アカウントではなく、メンバーアカウントに管理権限を委任し、特定の役割を持ったメンバーアカウントで管理することが多いです。Audit アカウントへ GuardDuty の管理権限を委任する前提で説明します。

AWS Organizations で委任できるサービス・できないサービスがあります。GuardDuty は委任できるサービスです。

AWS Organizations で使用できる AWS のサービス - AWS Organizations

GuardDuty の検出確認

GuardDuty を委任されたアカウント(Audit)ではメンバーアカウントの検出結果をリージョンごとに統合されます。

つまり、GuardDuty を委任されたアカウント(Audit)にサインインして、全リージョンの GuardDuty を確認すれば、全アカウントの GuardDuty の検出状況をチェックできることになります。アカウントが多いとすべてのアカウントにサインインして個別に確認するのはつらいですからね。

この様に Audit アカウント上の GuardDuty ですべてのアカウントの検出状況をチェックできるわけですが、次は本題の検出すると管理者へ通知をしたいときの構成例をみていきます。

GuardDuty の通知構成

Audit アカウントの GuardDuty で Audit アカウントのイベントを検出したときに EventBridge のルールでフックして通知するのは理解できます。これは単一アカウントで有効化された GuardDuty の通知を実現する一般的な方法です。疑問はメンバーアカウントで検出されたイベントが Audit アカウントに統合されるのはドキュメントからも読み取れましたが、同様に EventBridge のルールでフック可能なのかまでは読み取れませんでした。

結論は単一アカウントで GuardDuty を有効化したときと同様に EventBridge のルールでイベントを拾うことができます。つまり、GuardDuty を委任したアカウント(Audit)に通常の単一アカウントと同様の通知の仕組みを導入すれば、メンバーアカウントの検出状況も通知可能な構成となります。

GuardDuty の通知実装

AWS Organization で GuardDuty を利用する場合も通知の実装は単一アカウントと同じということがわかりましたので実装については情報が多いので困ることはないかと思います。EventBridge で各リージョンのイベントを集約してから通知する構成ですと以下のイメージです。

GuardDuty 委任したアカウントから検出内容をメール通知する機会があり、通知機能を構築した Cloudformation テンプレートは以下のリンクで紹介しております。

EventBridge で各リージョンのイベント集約については以下のリンクで詳しく説明されておりますので合わせてご覧いただければと思います。

以上、構成例の紹介でした。

おわりに

AWS Control Towerや、Security Hub は利用せずミニマムで AWS Organizations を利用しはじめてみたけど GuardDuty だけは導入しておきたいというケースもあるのではないでしょうか。GuardDuty の検出からの通知まではどうしたらよいのか?と悩む方の参考になれば幸いです。

参考