ControlTower①マルチアカウント環境をセットアップする

案件でControlTowerの検証を行う機会があったので、確認できたことやControlTowerの挙動などについて記事を書こうと思います。マルチアカウントの検証は個人だとハードルが高いので勉強になりました。この記事に添付した画像はは2021年9月時点のコンソールの物となります。タイミングによっては画面のレイアウトや設定項目等変更となっている可能性がある点にご留意ください。
### ControlTower記事リンク
・ControlTower①マルチアカウント環境をセットアップする←今ここ
[・ControlTower②ControlTower内の状況確認](https://qiita.com/tonkatsu_oishi/items/b6dc3d548461d21b440d)
[・ControlTower③SSOの確認・アカウントの追加・削除](https://qiita.com/tonkatsu_oishi/items/281ad127699115ff54c3)
[・ControlTower④ガードレールの設定](https://qiita.com/tonkatsu_oishi/items/4e7be29ffa6553322c65)
[・ControlTower⑤Auditアカウントに作成されるリソースについて](https://qiita.com/tonkatsu_oishi/items/82811c94ebdc6fe509f2)
[・ControlTower⑥LogArchiveアカウントに作成されるリソースについて ](https://qiita.com/tonkatsu_oishi/private/5bb4fea771ec2a5e075b)
[・ControlTower⑦SecurityHubの有効化](https://qiita.com/tonkatsu_oishi/private/6fd0e2c73718057adcc9)
[・ControlTower⑧GuardDutyの有効化](https://qiita.com/tonkatsu_oishi/private/c28b6dd7652c8546d745)
[・ControlTower⑨CloudWatchクロスアカウントダッシュボードの設定](https://qiita.com/tonkatsu_oishi/private/a9a7c1becb8bfa832573)
[・ControlTower⑩LogArchiveアカウント内バケットへのCloudWatchLogs集約](https://qiita.com/tonkatsu_oishi/items/e8d8efc681cdc2616273)



## ControlTowerとは
AWSのベストプラクティスに従ってOUやアカウントを一括設定・管理できるサービスです。
ControlTowerを使用する事で、マルチアカウントへのCloudTrail・Configの有効化やログの集約設定・権限回り・SSOなどが短時間で設定できます。セットアップ後はOUへのアカウントの追加や「ガードレール」と呼ばれる権限や検知などのルール設定も一括で管理できるので、マルチアカウント環境を新規で構築したい場合には活用できるかと思います。
参考：[https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/what-is-control-tower.html](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/what-is-control-tower.html)

## ControlTowerによって自動で構築されるリソース
[ユーザーガイド](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/getting-started-with-control-tower.html)によると、まったく何もない状態でControlTowerを開始すると「log archive account」と「audit account」が自動作成されてSecurityOUという組織に所属するみたいです。
#### 各アカウント内のリソース
[ユーザーガイド](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/account-factory.html)によると、CloudFormation、CloudTrail、S3など複数のリソースが自動で構築・設定されるようです。詳細はユーザーガイドの[Account Factory によるアカウントのプロビジョニングと管理](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/account-factory.html)に記載がありました。
#### 必須のガードレール
また、初期設定では各種[ガードレール](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/guardrails.html)のうち、「必須のガードレール」と呼ばれる物が自動で設定されます。必須のガードレールについては削除したり無効化することができないので、事前にどういったものが設定されるのかは確認しておいた方が良いかと思います。

参考：[ControlTower必須のガードレール](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/mandatory-guardrails.html)


## 早速設定してみる
![{5DB2ECAB-E045-4E79-BEA6-90E21F38D16E}.tmp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/4f07e6d7-de37-aced-cac8-88f382936dd1.png)
早速設定してみます。
マネジメントコンソールの検索窓に「ControlTower」と打ち込みControlTowerのサービス画面に移動し、「ランディングゾーンの設定」からセットアップを行います。
![{5DB2ECAB-E045-4E79-BEA6-90E21F38D16E}.tmp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/492db03d-2c04-2b99-5a7a-561466234971.png)

ちなみに、[前提条件](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/getting-started-with-control-tower.html)を満たしていないと画像のようなエラーが出て先に進めません。検証環境などで設定が残っている場合は確認する必要がありそうです。

料金の確認とリージョンの選択画面です。下にスクロールしていくと、ホームリージョンや追加リージョンの設定が行えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/c3d4c01c-8834-b476-9a9f-c157e5919f12.png)

今回はホームリージョンを東京、追加リージョンはバージニアのみ設定しました。
追加リージョンには今後リソースを構築する予定のリージョンをすべて追加しておきましょう。
この設定はセットアップ後に変更することも可能です。
ホームリージョン・追加リージョンに設定したリージョンで、CloudTrailやConfigの有効化が行われます。リージョンをすべて追加できたら、「次へ」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/bcd92459-a6ae-e25d-61b2-b5f3095287c1.png)

OUの設定画面です。
「基礎となるOU」のOU名はデフォルトのままで設定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/c2582be6-1e56-84fe-2aaa-2923974fcf16.png)

「追加のOU」の設定です。
今回は検証用OUを追加したかったので、「新しいOUを作成」を選択し、OU名に「Sandbox」と入力しました。
今回の検証環境には既にOUが存在していたので、「OUの作成をオプトアウト※OUの作成をしないという意味」という選択肢も表示されています。追加OU名を入力したら、「次へ」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/3583f716-496a-b9b0-9fb9-46db2e0d70c1.png)

共有アカウントと暗号化設定の画面です。
管理アカウントはControlTowerの親になるアカウント（つまり現在ControlTowerのセットアップをしているアカウント）の事です。ログアーカイブアカウント・監査アカウントはControlTowerにより新規で作成されるので、アカウントに設定するEメールアドレスを入力します。

ログアーカイブアカウントについて、「アカウントの作成」に入力したアドレスでSNSのサブスクリプションなども設定されるので、あどれすはメーリングリストのものなどにしておくと便利かと思います。今回はアカウント名をデフォルトのまま作成しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/4dfc4fb5-21a2-24e3-148d-e04b2922a35f.png)

監査アカウントについてもログアーカイブアカウントと同様にメールアドレスの設定を行います。また、既にKMSのカスタマー管理キーを作成済で、CloudTrailやConfigのログを暗号化したい場合は「暗号化を有効化して、カスタマイズする」のチェックを入れ、カスタマー管理キーのARNを指定できます（※カスタマー管理キーに適切なキーポリシーが設定されていることを確認してください）。

アカウント名・アドレス設定と、KMS暗号化の設定が全て完了したら、「次へ」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/3b84283e-945a-bab4-fed4-9e1d7773de15.png)

ControlTowerにより自動作成される各種IAMロールの権限の確認画面です。
「こんなIAMロールができますけどいいですか」という確認なので、一通り眺めておくと良いかと思います。作成されるロールについては[ユーザーガイド](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/roles-how.html)にも記載されているのでご確認ください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/905da61c-6b49-801d-84bb-a02885ea91bc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/c9520283-90bb-11bd-8679-60c9e891e41b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/fafa9c6d-47a6-7923-6943-c8f6746ca6a9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/81c716d4-9e52-4dc7-4a25-0e372c562387.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/c16dec56-e3bf-dd0b-3243-d8223642a7ef.png)

最後に、ControlTowerによりリソースへのアクセス許可設定が設定されること、リソースが自動作成されることを承諾するチェックボックスにチェックをいれ、「ランディングゾーンの設定」を押下します。これでセットアップ設定が完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/1a849bef-fecf-3ed6-0a00-e003f01447d8.png)

セットアップが完了するとControlTowerのトップページに設定完了までの残り時間表示が出現します。60分程度かかるので、その間はおやつを食べたり別の仕事をするなどしながら待っていると良いでしょう。体感だとランディングゾーン構築は40分程度で完了しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/c960c2e3-30b9-e0dd-98ee-90583dd53362.png)

ControlTowerの初期設定は以上で完了です。
次回の記事で各アカウントに作成されるリソースの確認や、ガードレールの追加設定・アカウントの追加設定など書いていこうと思います。