2020年4月21日のアップデートです。
Amazon GuardDuty simplifies multi-account threat detection with support for AWS Organizations
Amazon GuardDutyはAWS組織のサポートを追加して、組織内のすべての既存および将来のアカウントにわたる脅威の検出を簡素化します。今回のリリースにより、新規および既存のGuardDutyのお客様は、GuardDuty管理者として組織内の任意のアカウントを委任し、最大5,000のAWSアカウントのGuardDutyを管理できます。GuardDutyの既存のマルチアカウント機能を使用しているお客様は、既存のGuardDutyオペレーションを中断することなく、AWS組織がサポートするマルチアカウント管理に移行できます。AWS組織でGuardDutyを管理する場合、顧客はGuardDutyの脅威検出を組織に追加された新しいアカウントに自動的に適用できます。
今までもGuardDutyマスターアカウントというのがあり、そこで各アカウントのデータを集約することはできていました。 しかし、AWS Organizationsの組織構造とは関連していませんでした。
今回のアップデートで、AWS Organizationsの組織構造と統合がされました。
基本的にAWS Organizationsを使用している場合は、Organizationsマスターアカウントが最高権限を持ちます。
ただ、何でもかんでもOrganizationsマスターアカウントでやるようにはしたくありません。
おそらくそんな理由でGuardDutyに関する権限を切り離し、別アカウントへ委任できるようになったのだと思われます。
Managing GuardDuty Accounts with AWS Organizations を参考にし、実際にやってみました。
1.Organizationsマスターで、GuardDutyマスターを指定
Organizationsマスター > GuardDuty > 設定 > Organization用のGuardDuty管理者アカウント
Orgazanization内の任意のアカウントを、GuardDutyマスターアカウントに指定し、権限を移譲します。
2.GuardDutyマスターで、GuardDutyメンバーを有効化
GuardDutyマスター > GuardDuty > アカウント
GuardDutyマスター以外のOrganization内のアカウントが表示されます。
Enableを押すと確認メッセージが表示されます。
ステータスが有効に変更されました。
なお、自動有効化はONにチェックが入っているので、今後Organizationにアカウントが追加されれば自動で
GuardDutyマスター > GuardDuty > 結果
実際にGuardDutyメンバーアカウントの検出結果も表示されているのが確認できます。
気になった点
メンバーアカウントでGuardDutyの有効化は必要か?
メンバーアカウントでは、GuardDutyの設定を個別にする必要はありません。
まず、GuardDutyマスターに委任されると、そのアカウントでは自動的にGuardDutyが有効化されます。
GuardDutyマスターアカウントから他のアカウントを有効化すると、メンバーアカウントのGuardDutyが有効化されます。
リージョンごとに設定する必要があるか?
リージョンごとに設定する必要があります。
S3バケットへの結果のエクスポートはどうなるか?
各リージョンのGuardDutyマスターで設定します。
全リージョンで同じS3バケットを指定すれば、1箇所に集約可能です。
その場合はKMSキーも同じものを使います。
また、S3バケット/AWSLogs/アカウントID/GuardDuty/リージョン/YYYY/MM/DD/配下に保存されます。
ちなみにS3バケットへのエクスポートには、KMSキーポリシーやバケットポリシーの設定が必要になります。
設定が上手くいかない場合は、結果のエクスポートを確認しましょう。
OrganizationsのOUごとにGuardDuty設定できないか?
GuardDutyをOUごとに管理はできません。
Organization内でアカウントごとにGuardDutyマスターを変えたい場合は、自動有効化を停止し、個別に設定していく必要があります。
ただ、そのようなことが必要になるケースは少ない気はします。
渡辺 信秀(記事一覧)
2017年入社 / 地味な内容を丁寧に書きたい