こんにちは。AWS CLIが好きな福島です。
はじめに
今回はマルチアカウント環境下におけるSecurity Hubの有効化方法について、ブログにまとめたいと思います。
背景
今までマルチアカウント環境下におけるSecurity Hubの有効化方法は、 マネジメントアカウントもしくはSecurity Hubの委任を受けたアカウントから設定できる 「Auto-enable accounts」および「Auto-enable default standards」を利用することが多かったかと存じます。

これにより、組織内に新しく追加されるAWSアカウントに対しても、自動でSecurity Hubの有効化が可能です。
ただし、上記構成では、Security Hubのコントロールの無効化を組織内の全アカウントに対して、一括ですることができないといった課題がありました。

そんな中、6月のアップデートでCloudFormation(StackSets)にて、Security Hubの管理ができるようになりました。
これにより、マルチアカウント環境下におけるSecurity Hubの有効化方法の選択肢が増えたため、その内容をブログに記載いたします。
それぞれの機能で出来ること
それぞれの機能で出来ることは以下の通りです。
※△と記載しているのは、Auto-enable default standardsの機能は、一部のセキュリティ基準しか有効化できないためです。
現在、自動的に有効になるデフォルトのセキュリティ標準は、AWS Foundational Security Best Practices (FSBP) 標準と Center for Internet Security (CIS) AWS Foundations Benchmark v1.2.0 です。
セキュリティ標準の有効化および無効化 - AWS Security Hub
最適な実装について
Organizationsの統合機能とCloudFormation(StackSets)の機能で出来ることは上記に記載した通りです。 ご覧の通り、CloudFormation(StackSets)では、②の組織への追加ができなく、Organizationsの機能では、④のコントロールの無効化が不可です。
そのため、すべての設定を自動化するためには、①,②をOrganizationsの統合機能を使い、③,④をCloudFormation(StackSets)の機能を使うことが最適だと考えております。

注意点
ただ、上記の通り、実装した場合に気になることとして、それぞれを別の機能で設定しているため、 新しくAWSアカウントが払い出された際に正しく、①、③④の順番に実行されることかと存じます。(Security Hubの有効化がされていない状態でセキュリティ基準の有効化はできないためです。)
ここについては、AWSサポートに確認したところ、公開情報はない(2023/07/13時点)とのことでしたが、 上記構成で何回か検証し、正常にSecurity Hubの有効化およびセキュリティ基準の有効化からコントロールの無効化ができたことを確認いただきました。
念のため、実際の環境でも試した上で実装する必要はあると考えておりますが、 上手くいけば、①,②をOrganizationsの統合機能を使い、③,④をCloudFormation(StackSets)の機能を使うことが最適だと存じます。
その他の実装例について
上記以外の実装としては、①,③,④を全てCloudFormation(StackSets)で管理し、 アカウントが追加される度に、②の作業を手動もしくはLambdaなどを使い自動化する実装が考えられるかと存じます。
ただし、②の部分で手動もしくは作り込みが必要なため、可能であれば、1つ前にご紹介した構成が良いと考えております。
終わりに
今回は、マルチアカウント環境下におけるSecurity Hubの有効化方法について、ブログにまとめました。 どなたかのお役に立てれば幸いです。
福島 和弥 (記事一覧)
2019/10 入社
AWS CLIが好きです。
AWS資格12冠。2023 Japan AWS Partner Ambassador/APN ALL AWS Certifications Engineer。