【マルチアカウント管理】AWSのベストプラクティスを実現できるControlTowerに取り組んでみる~⑥セキュリティ（GuardDuty）の設定をしてみよう~

前回の記事では、ControlTower(Organizatrions)とSecurityHubを統合し、組織全体で「セキュリティ的にこのポリシーは守ってほしいな～」というポリシーの適用、遵守状況の判定が行えるようにしました。
どちらかというと内部向けのセキュリティ、という感じです。
今回はGuardDutyというサービスを組織に統合し、ControlTowerを外部の脅威から守るような設定を行っていきます。
ではやっていきましょう～

---

## 【マルチアカウント管理】AWSのベストプラクティスを実現できるControlTowerに取り組んでみる

目次

[①マルチアカウント管理の利点](https://qiita.com/Thereisnoblue/items/a07f4eb74ab02a9f4a0e)　
[②ControlTowerの利点（＆実際かかったコストの画像）](https://qiita.com/Thereisnoblue/items/d51249a467875967d32a)
[③ひとまず構築しながらControlTowerを理解してみよう（手順付）](https://qiita.com/Thereisnoblue/items/0a8296484e3fa5783749)
[④SSOユーザー作成→サインインしてマルチアカウント管理を体感しよう](https://qiita.com/Thereisnoblue/items/3013f7533965c6a5cf7c)
[⑤セキュリティ（SecurityHub）の設定をしてみよう](https://qiita.com/Thereisnoblue/items/3df46ad95cadd10eec33)
[⑥セキュリティ（GuardDuty）の設定をしてみよう](https://qiita.com/Thereisnoblue/items/475d1ad67eabfa133595)←本記事はここ
[⑦コントロールのざっくり解説＆設定をしてみよう](https://qiita.com/Thereisnoblue/items/a69e45d534524d374b2f)
⑦までやればいったん一通り構築完了です。
ControlTowerだけの構築であれば③だけで完了です。

(+印付きはオプション 現在執筆中です)
[+ベストプラクティスとはいえ、構築後に実運用に沿って変えた設定集](https://qiita.com/Thereisnoblue)
[+全アカウントのコスト管理を行う](https://qiita.com/Thereisnoblue)
[+アカウント管理者を任命したらやること](https://qiita.com/Thereisnoblue)
[+SecurityHubをもっと詳しく](https://qiita.com/Thereisnoblue)



もし今回の記事が参考になったり、いいなと思ったら、よろしければストックやいいねしていただけると非常に嬉しいです🙌
あなたのいいねがとっても励みになり、記事を書くモチベになります。
コメントもぜひ、お待ちしております。

※本記事で使用するメールアドレスやアカウント名は一部マスキングしております。
あらかじめご了承ください。

---

本記事の大まかな流れ

①東京リージョンで組織（AWS Organizations）に対してGuardDutyを有効化＆Auditアカウントに権限を委任する
②Auditアカウントにて再度GuardDutyを有効化＆保護プランを有効化する
③先程の①②の設定をControlTowerの管理対象リージョンごとにそれぞれ設定していく


基本的にはSecurityHubと似たような流れですが、GuardDutyもリージョナルサービスで、たとえOrganizationsと統合したとしてもリージョンごとに設定を入れなければならないようです。
①②自体はそこまで操作に時間がかかりませんが、③の①②の設定を繰り返すというのが明らかにめんどくさそうです……SecurityHubはリージョナルサービスでも中央設定あったのに……
ただControlTowerの一連の導入は、本記事が終われば殆ど全体が終わったようなものです！
もう少し一緒に頑張ってみましょう！

:::note warn
※本記事では以下の２つが完了していることを前提とした作業を行います。
①AWSControlTowerAdminのグループに属するSSOユーザーの作成が終わっていること
②ご自身のAWSアクセスポータルのURLがわかっていること
:::

①,②どちらも前の記事を行った方なら問題ありませんので、お進みください。
また、※ポータルのURLがわからない方は、ご自身の管理者アカウントにてIAMIdentityCenterのダッシュボード、もしくはControlTowerのランディングゾーン設定→設定からアクセスポータルURLを参照してください。

GuardDutyとは
=

GuardDutyとは、主に外部からの脅威に対する検知を行うサービスとなります。詳細については、他の方の方が細かく書いていただいているため、そちらをご参照ください。

https://qiita.com/tech4anyone/items/2d20662b96f48bb1b7ea

検知、検出というとSecurityHubと混同されがちですが、役割は異なるためどちらも有効化することをお勧めします。

*  SecurityHub→主にセキュリティ目線で見て、ＡＷＳの環境がベストプラクティスに沿っているかをチェック

*  GuardDuty→ユーザーの通信や操作ログをモニタリングし、実際に発生した攻撃や、予測される外部の脅威の検知、検出を行う。

また、下記の「保護プラン」を使用してよりセキュリティを高めることが可能です。
![image03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/e16aa77d-c9de-46f8-9453-1d6a79e70b37.png)


## ①東京リージョンで組織（AWS Organizations）に対してGuardDutyを有効化＆Auditアカウントに権限を委任する

では、前の記事の続きからやっていきます。
AWSアクセスポータルからSSOユーザーにて、 **管理者のアカウント**に入ります。
権限は「AdministoratorAccess」を一旦使うので、その権限の青字をクリックしてください。

![masking_image44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/031e5427-64ed-49ec-9920-0d931c724444.png)

左上の検索でGuardDutyを検索し、GuardDutyを開きます。

![image00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/770f0910-fc79-45df-88b4-5871f021d37e.png)

Guard Dutyのダッシュボードが開かれました。右上のリージョンが「アジアパシフィック（東京）」となっていることを確認し、橙色の「今すぐ始める」ボタンを押下します。
![image01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/ab48e42b-c84b-477a-9be0-c92b9f79a1d7.png)

GuardDuty有効化のページが開かれました。各設定値を見ていきます。
![image02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/27549401-c0db-4c6b-a6df-be6b161d0d42.png)
サービスのアクセス権限について、一通りのログに対するアクセス許可を求められます。
先程もお伝えしましたが、GuardDutyは主にログを確認して脅威の検知を行うため、ここは許可する前提で進めます。
保護プランについては、複数のユースケースに応じた監視設定をカスタマイズ可能です。

後からでも設定変更は可能なので、今回はデフォルト通りの設定を有効化します（S3 のランタイムモニタリングと Malware Protection を除くすべての GuardDuty 保護プラン）。

保護プランの詳細は以下の通りです。
![image03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/e16aa77d-c9de-46f8-9453-1d6a79e70b37.png)

AWＳ公式ドキュメント -GuardDutyとは-より

https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/what-is-guardduty.html

例えば、「EC2の方で個別にエージェント監視のソフトウェアを入れているため干渉してしまう可能性がある」など、そういった際に個別に無効化する場合もあります。

SecurityHubと同じく、委任された管理者にAuditアカウントのIDを入れ、「委任」を押下します。
今回、保護プランのデフォルトの設定だと「Malware Protection」が有効になっていないため、許可もオフのままにします。

![masking_image04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/0802ce71-678e-4f25-be2d-18ad8e8efb3b.png)

管理者が委任できたことを確認したら、「GuardDutyを有効にする」を押下。
するとこんな画面になります。
![image05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/c98c0c99-fd24-4cb2-9d3c-0d11a2d5163d.png)

SecurityHubの時と同様、GuardDutyもすでにAuditアカウントに管理権限が移っているため、SSOユーザーでAuditにサインインします。
![masking_image07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/a12ef03e-9742-4001-821f-5ec8d9d3c202.png)

GuardDutyを検索し、アカウントタブに移るとこのような画面になります。
![masking_image06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/ea8c2490-44da-451a-b957-e0490100b10d.png)
これでAuditアカウントへの委任は完了しました。

## ②Auditアカウントにて再度GuardDutyを有効化＆保護プランを有効化する

管理者アカウントにてGuardDutyを有効化しましたが、何故かその他のアカウントでは有効になっていません。
管理権限の委任を行ったAuditアカウントでさえ、GuardDutyの有効化がされていないのがよくわかりませんが、仕方ないので組織内の他アカウントにもGuardRutyを有効化していきます。
先程の画像の青色の通知の、「このリージョンでOrganizationsのGuardDutyを有効にする」の「有効にする」をクリック、ガイドに沿って有効化してください。
画像のように上部に「〇個のアカウントを正常に 有効になっている GuardDutyしました」となっていれば設定適用が開始します。
![masking_image07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/8e58ed71-1f19-4629-a828-da447c46379d.png)
ここについては10分くらいでステータスが「有効」になります。
![masking_image08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/c9a7f096-8b51-480a-b8aa-74ca8aece9fb.png)
保護プランも有効化されていないため、左上のページアカウントの「新しいアカウントの自動有効化」の右隣りの「編集」を押下し、再度設定します。設定は先程の通り、「S3 のランタイムモニタリング」と 「Malware Protection 」を除くすべての GuardDuty 保護プラン、自動有効化設定にチェックを入れます）。
その後、「変更の保存」を押下します。
![image09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/d63899b0-745b-4534-9e0f-cc4a0836de49.png)
ここまで行ったら、緑の帯で「優先設定は正常に保存されました」と表示されます。
保護プランの変更は非常に時間がかかるため、この確認を待つよりは別の作業をしてしまった方が良いと思います。

![masking_image10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/f7cd2fc1-6b42-4f2d-b704-9553af3e8923.png)
これで東京リージョンにおける設定は完了です。


## ③先程の①②の設定をControlTowerの管理対象リージョンごとにそれぞれ設定していく
先程もお伝えしたとおり、非常に手間ですが、GuardDutyはここまでの一連の流れをリージョンごとに設定する必要があります。

これが終われば、「ControlTowetrを軸にしたマルチアカウント管理」の初期設定がほぼ終わったようなものなので、もう少しだけやってみましょう。

まず、SSOユーザーで再度管理者アカウントにサインインします。
Auditアカウントでリージョンをそれぞれ変えてGuardDutyを有効化するよりは、当初やった手順に沿って、
1.毎リージョンで管理者アカウントとしてGuardDutyを有効化＆Auditアカウントに委任
2.Auditアカウントで保護プラン有効化
3.確認

とするのが設定のプロセス的にはおすすめです
![image11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/cf0ed139-4935-416b-ad8d-681388feb0a9.png)

![masking_image12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/a66d758f-c152-43bb-9b1d-82a35686ebcc.png)


委任後のアカウントへの適用状況の確認は、必ずAuditアカウントなど、委任したアカウントで見るようにしてください。以下画像のように、委任後は管理者アカウントからでないと、各アカウントの遵守状況を確認できないためです。

![image13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/48d041f7-0d71-4fc5-bb23-81cc1c0ef325.png)
対象のアカウントへの保護プランが有効になっているかも含め、確認するようにしましょう。

保護プランの無料利用枠は30日間ですが、要件的に保護プランを必要としないリージョンについては、コスト削減の観点で保護プランを無効化する選択も検討してください。
ここらへんは所属組織、人それぞれだと思いますので、保護プランについては他の記事もみて、自身の求める要件にあった設定を吟味しましょう！

そんな感じでConrtolTowerのそれぞれの管理対象リージョンにてGuardDutyを有効化したら、本記事の手順は終了です。
お疲れ様でした……

ちなみにGuardDutyにて保護プランが有効化されると、下記のような感じで「対象の保護プラン名」の下にそれぞれステータスが表示されるようになっています。
![masking_image14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846860/e010f32e-7a1e-4b19-92cc-edb0305f68ba.png)

次回はControltowerに戻ってコントロールについて確認したり、追加/削除を行ってみます。

具体的に「これを追加したい」というのがまだ定まっていなければ、一旦次の記事は行わなくてもいいかもしれません。

ただ、今どんな統制ルールが適用されてるのか、確認くらいはしてもいいと思いますので、その確認方法から行っていきます。
その後はオプションになるので、必要そうなものを選んでみてください。

ではｍ～

←前回記事
--
https://qiita.com/Thereisnoblue/items/3df46ad95cadd10eec33


次回記事→
--
https://qiita.com/Thereisnoblue/items/a69e45d534524d374b2f