1
0

AWS ControlTower④SecurityHubの設定

Posted at

全体の流れ

① 管理アカウントでSecurityHubを有効化する

② SecurityHUBの管理権限を、管理アカウントから監査(Audit)アカウントに委任する
=監査アカウントにて、ControlTower全体のSecurityHub(設定したセキュリティ基準を満たせているか)を確認できるようにするための準備を行う。
→この時点では管理アカウントと監査アカウントでのみSecurityHubが有効化されている!

③ 中央設定を行う
=監査アカウントにて、ControlTower全体のSecurityHub(設定したセキュリティ基準を満たせているか)を確認できるようにするための実際の設定を行う。
→ここでControlTowerに所属しているアカウントやOUはSecurityHubを有効化され、結果が監査アカウントに集約される。

中央設定とは

https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/central-configuration-intro.html (←公式ドキュメント)
中央設定とは、ControlTowerに所属している全アカウント・全リージョンに対し、一括でSecurityHubを有効化できるものです。
(たくさんポチポチしなくてラッキーな反面、色々困ったこともありました。)

SecurityHubを設定しよう

まず、管理アカウントでSecurityHubを有効化するためのベースを作成します。
Organizationsのサービス画面から、「SecurityHub」を探します。
見つけたらサービス名のリンクを押下します。
スクリーンショット (687).png
スクリーンショット (688).png

次に、「信頼されたアクセスを有効にする」を押下します。
スクリーンショット (689).png

するとポップアップが表示されるので、チェック&入力を行い、「信頼されたアクセスを有効にする」を押下します。
スクリーンショット (690).png
スクリーンショット (691).png

画面上部に「SecurityHubに対する信頼され他アクセスを正常に有効にしました」を表示されます。
これで組織全体で有効化するためのベースが出来ました!
スクリーンショット (692).png

次に管理アカウントでSecurityHubを有効化します。
「SecurityHubに移動」を押下します。
スクリーンショット (693).png

ここでは有効にしたいセキュリティ基準を選択します。
今回は「AWS基礎セキュリティのベストプラクティスv1.0.0(FSBP)」を設定します。
スクリーンショット (695).png

一番下の「委任された管理者」項目で、委任したいアカウント(今回はAudit)のアカウントIDを入力します。
スクリーンショット (697).png

入力後、【委任】を押下すると以下のような画面になります。
ここで委任先が間違っていないことを確認したら、【SecurityHubの有効化】を押下します。
スクリーンショット (698).png

「管理者が正常に委任されました」を表示されたら成功です。
実際に、下の画面でもFSBPのみ有効化されていることが分かりますね。
スクリーンショット (699).png
管理アカウントから見て、委任が完了していることが確認できます。
スクリーンショット (872).png

ここまでで、管理アカウント→Auditへの委任設定は完了しました。

ここからが本番

まずAuditアカウントから見て、委任が完了していることが確認できます。
スクリーンショット (871).png

組織全体でSecurityHubを有効化するために、左のメニューバーから設定の中の【設定】をクリック。
(以下の画面を見ると、この時点ではFSBPと設定していないCISが有効になっている素振りが感じられますが、後で解消するので今は放っておいて問題ないです)
スクリーンショット (701).png

設定ページに飛んだあと、初期は概要項目がローカル設定になっていると思います。それを確認しつつ、編集を押下します。
スクリーンショット (702).png

するとポップアップが表示されるので、【中央設定】を選択し、【中央設定を開始】を押下してください。
→中央設定を開始するでも、編集を押すでも、同じ画面同じ手順になります
スクリーンショット (704).png
スクリーンショット (705).png

すると中央設定の起動画面に移るので、以下の通り設定を行っていきます。
まずリージョンです。ControlTowerを有効化した際に設定した、ランディングゾーンで有効化しているリージョンを選択してください。
スクリーンショット (706).png
スクリーンショット (707).png

(「利用可能なすべてのリージョンのリンクを設定」のチェックを外すと、個別にリージョンが選択できるようになります↓)
スクリーンショット (709).png
【確認して続行】を押下します。
スクリーンショット (711).png

【ポイント】
・「利用可能なすべてのリージョンのリンクを設定」について。「なんとなく全部包括していた方がよくない?特段何もないなら無理に狭めなくてよくない?」と思いがちなのですが、これで失敗しました・・・。
「利用可能なすべてのリージョンのリンクを設定」を選択して最後まで設定を行うと、こんな感じのエラーが出るようになります↓
<エラー文>Policy association failed because standards could not be enabled in Regions ap-northeast-1, us-west-2 and 3 other(s). Check if AWS Config is enabled and properly configured and retry.
スクリーンショット (877).png

これが全然解消しないんですね。Configあるけど!有効化されてるけど!の繰り返しで、サポートに問い合わせても「Config有効化してね」と言われるだけで困ったものでした。
原因としては、「すべてのリージョンを有効化してしまうことにより、こちらが想定していない範囲(ランディングゾーンで有効化していないリージョン)の設定もAWSが見に行ってしまい、Configが設定されていない(当たり前)と怒られていた」という感じのようです。ControlTowerで統制を有効にしたリージョンにしたいのであれば、ここはリージョンを一個一個設定するのがベスト、ということのようです。以下ドキュメントです。
>設定ポリシーは、ホームリージョンとリンクされたすべてのリージョンで有効になります。
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/central-configuration-intro.html

・「将来のリージョンのリンクを設定」について。このチェックをつけておくと、将来リージョンが追加された時にAWS側で自動的にリージョンを追加してくれます。

【組織を首尾よく一元化しました。最初の構成ポリシーを作成します】という緑の帯が画面上部に出てきたら、次のステップに進みます。
スクリーンショット (712).png
画面をスクロールして、今回はFSBPのみを設定したいので、「SecurityHUBの設定をカスタマイズ」を選択します。
カスタムポリシーではFSBPを選択。
スクリーンショット (714).png

上記で設定したルールセット以外は現状必要がないため、「すべてのコントロールを有効」を選択します。(ここ日本語わかりにくいので注意です)
スクリーンショット (715).png

スクロールし、適用するアカウントは「すべてのアカウント」を選択。
スクリーンショット (874).png

ポリシーの詳細を決定します。ポリシー名、ポリシーの説明、タグ付与が可能です。
【次へ】を押下します。
スクリーンショット (716).png

【ポイント】
・カスタムポリシー(コントロール)について。躓きました。
まず、個々の設定は以下の通りです。
すべてのコントロールを有効→直前のセキュリティ基準で選択したルールが有効化される。
特定のコントロールを有効化→基本全部無効化。その下で「有効にするコントロール」を選択できるので、ここで有効化したコントロールのみが適用される。
特定のコントロールを無効化→上記の有効化バージョン。
つまり、「特定のコントロールを有効化」を選択してしまうと、直前でFSBPを選んでいても無効化されます。
日本語が解読できませんでした。気づいたのは、何故か設定したはずのSecurityHubが0%になっていたからでした・・・。
しかしここで注意です!一度「特定のコントロールを有効化」(つまり完全無効化)の方で今回のポリシーを有効化した後に、同じポリシーを変更して「すべてのコントロールを有効化」しようとすると、無効化と有効化の設定がバッティングしてエラーが起きます。
<エラー文>Cannnot configure both Enabled and Disabled security controls in the policy
image.png

この時はポリシー単位の設定で大丈夫ですが、一度SecurityHubを無効化する必要があります。そうすればバッティングせず直ります。
日本語との勝負です。

・「有効化するアカウント」について。ここで一部アカウントを選択しても、何故か最後の確認の時点で「すべてのアカウントを有効化する」となります。恐らく組織という単位で設定が行われるのではないか・・・という推測ですが、要注意です。
後々中央設定から一部アカウントを除外することはできるので、ここは我慢です。一旦すべてのアカウントに対して設定を行います。

最後に確認画面です。内容を確認しつつスクロールして、【ポリシーを作成して適用】を押下します。
(ステップ3にて、コントロールが「すべて無効」となっていますが、本来は「すべて有効」となっています。)
スクリーンショット (717).png
スクリーンショット (718).png

ここまでで、中央設定自体は完了です。

設定画面に遷移し、上部に「ポリシーが正常に作成されました」と表示され、ポリシーができていることを確認します。
スクリーンショット (719).png

次に、同じく設定の組織タブから各アカウントにこのポリシーが適用されているのかを確認します。
ページに飛んですぐはポリシーのステータスが保留中になっていますが、これが成功/失敗になっていきます。少し時間はかかりますが、長くてもだいたい10分くらいで結果が表示されると思います。
スクリーンショット (720).png
スクリーンショット (721).png

rootOUと管理アカウントが「失敗」と表示されるのはデフォルトのため、気にしないでください。
スクリーンショット (722).png

【ポイント】
あまりにも長すぎるとき(1hくらい・・・)はほとんど失敗です・・・
待てなさすぎる場合はOUやアカウントのラジオボタンをクリックすると、何故か最速で結果が切り替わったりします。お試しあれ。
【ポイント2】
基本的には管理アカウントとrootOU以外が成功になるはずです。
なんで管理アカウントはならないの?おかしくないか?と思いがちですが、管理アカウントはデフォルトでConfigを有効化していないので、失敗になります。(SecurituHub自体、Configの上に階層を作って検知しているようなものなので)管理アカウントはデフォルトだとCloudTrailしか有効化されていません。
そのため、管理アカウントとrootOUが失敗(rootOUは配下のアカウント・OUがすべて成功にならないと成功にならないため、管理アカウントが失敗である限りrootOUも失敗となる)が一つの成功例になります。
あとはControlTowerに所属していないがOrganizationsに所属している、というアカウントもこの中央設定ではポリシーを適用されそうになります。ですが、必ず「失敗」になるのでご安心ください。

とはいっても、失敗があるとなんか気になりますよね。
なので今回は管理アカウントを中央設定から除外して、すべて成功にしたいと思います。
設定したいアカウントのラジオボタンを押下して、【編集】を押下します。
スクリーンショット (873).png

管理タイプにて「セルフマネージド」を選択し、【次へ】を押下します。
スクリーンショット (723).png
スクリーンショット (724).png

確認して、【適用】を押下します。
他のOUやアカウントと同様に、管理アカウントとrootOUがポリシーのステータス成功となることを確認します。
スクリーンショット (725).png

(気持ちいですね)
スクリーンショット (726).png

上記同様の手順で中央設定から除外することができるので、管理アカウント以外にも適用できます。

ここまで来たら、最後にLogArchiveアカウントからSecurityHUBを確認し、設定の中に設定タブがないことを確認します。
=中央設定など、SecurityHUBの設定を変更する権限がないことを示しています。また、画面上部にどのアカウントで管理されているかも表示されます。(伏せているところはアカウントIDが表示されます)
スクリーンショット (870).png

ここまでで、SecurityHUBの設定については以上です!
今後新しくアカウントをControlTowerに追加する際、中央設定をしておくことで自動的にポリシーが適用され、ポリシーステータスが成功になります!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0