AWS Control Towerに必要な初期設定の内容について記載します

# はじめに
みなさんControl Tower使ってますか？これはAWSのマルチアカウント環境を一括でまるっと提供してくれるサービスで、通常であれば非常に手間のかかる構築作業の大半をほぼ自動で対応してくれる優れものです。
Control Towerでマルチアカウント環境を構築する方法については以前[こちらの記事](https://qiita.com/hiro-tech1192/items/79bf11b587bcf59b7f66)に記載しましたが、今回は環境構築の後にやる必要がある（と思われる）初期設定の内容について記載したいと思います。


# Account Factoryのネットワーク設定
Account Factoryは、Control Tower内に新規アカウントを追加するための機能です。これを使用することで、追加対象のAWSアカウントに対してLanding Zone（べスプラ）に準拠した設定が自動的に適用されます。
また、通常素の状態でAWSアカウントを作成した場合には全リージョンに対してデフォルトVPCが作成されたりするのですが、Account Factoryを使うとこういったネットワーク周りの設定に対してある程度コントロールをかけられるようになります。例えば組織内で東京リージョンしか使わないことが明確に分かっている場合、デフォルトの設定を東京だけにしておくことで、不要なVPCが作られるのを避けることができたりします。
以下、このネットワーク設定について手順を記載してみたいと思います。

## 設定方法
まずはAWSコンソール上でControl Towerにアクセスし、左メニューから「Account Factory」を選択します。
![1-AccountFactory設定1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/b6294cb9-53ce-4146-b29a-328b8c0eb12a.png)


AccoutFactoryの画面が表示されます。デフォルトでは全リージョンにVPCが作られる設定になっているので、これを東京リージョンだけに変えてみたいと思います。ネットワーク構成の「編集」ボタンをクリックします。
![1-AccountFactory設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/f4ce22d2-c59f-1989-661d-9a2b167bf530.png)


以下の画面が表示されるので、リージョンのチェックボックスを東京のみONにします。
![1-AccountFactory設定3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/b594a777-b3c1-fdbd-3a1a-a28df83fa624.png)



設定保存後の画面は以下の通りです。「VPC作成対象のリージョン」が東京の１つだけになりました。ちなみにIDRやプライベートサブネットの数も変更できるようなので、必要に応じ設定するとよいかと思います。
![1-AccountFactory設定4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/2933ce98-d1c6-8a0f-6d00-c39b8805ba42.png)



# AWS SSOでのMFA有効化
Control Towerを有効化すると、自動的にAWS SSOもついてきます。（勝手に設定されます）
AWS SSOはマルチアカウント環境下でシングルサインオンを実現することができるサービスです。IAMユーザを使わずにAWSコンソールへログインしたり、複数アカウントの権限を一括でコントロールしたり、あるアカウントから別のアカウントへシームレスに切り替えたりと非常に便利なので積極的に使っていきたいところです。
デフォルトではAWS SSO用のMFA設定がOFFになっているので、セキュリティ向上のためこのタイミングで有効化したいと思います。

## 設定方法
SSOコンソールへアクセスし、左メニューの「設定」をクリックします。
![2-SSO設定1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/4f656725-b76a-c345-83ee-4bd8e7d18500.png)


画面中央に多要素認証の項目があるので、「設定」ボタンをクリックします。
![2-SSO設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/67727d66-c00b-8dd3-a899-e1501a1b2899.png)


下記画面で必要な設定を入れます。「サインイン時にMFAデバイスを登録するよう要求する」を選択すれば、MFAの割り当てが行われていないユーザがログインしたときに、MFAの設定を強制することができます。
![2-SSO設定3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/aee523b0-8965-0e7a-7aec-c366b2f43070.png)


設定後の画面はこんな感じです。無事MFAが有効化されました。
![2-SSO設定4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/d32fd901-f51d-6503-7f65-398706b061cd.png)



# SSOユーザへのMFAデバイス割り当て
Control Towerを有効化すると、自動的に「AWS Control Tower Admin」というSSOユーザ（特権ユーザ）が作成されます。当然初期状態ではMFAが割り当てられていないため、ここタイミングで設定を行います。

## 設定方法
SSOコンソールの左メニューで「ユーザ」を選択し、画面中央の「AWS Control Tower Admin」をクリックします。
![3-SSO-MFA設定1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/869073ee-8867-f8c1-a5a4-9c3b5c346711.png)


続く画面で「MFAデバイス」画面を選択します。「MFAデバイスの登録」ボタンが画面中央あたりに表示されるのでクリックします。
![3-SSO-MFA設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/9cf62c43-7b8e-e624-53c3-ddc1e2e84d77.png)


MFAデバイスは認証アプリかセキュリティーキー（物理）の２つから選べます。ここでは認証アプリを使用しました。
![3-SSO-MFA設定3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/e3828a8a-80cf-634c-8f59-25b73a2f2fef.png)


以下の画面で「Show QR code」をクリックするとMFA用のQRコードが表示されるので、Google Authenticator等のアプリから読み込んで登録します。
![3-SSO-MFA設定4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/bb622380-7938-d7bd-4904-6fa8ebc6318b.png)


設定が終わると以下のように表示されます。無事MFAが割り当たりました。
![3-SSO-MFA設定5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/1a04dc37-9027-ce80-6274-1a53ba43ac4f.png)


# Account Factoryからの新規アカウント追加
こちらは初期設定というわけではないのですが、Account FactoryからAWSアカウントを追加する方法を併せて記載しておきます。なおアカウントの追加に伴い新規のメールアドレスが必要になりますので、事前に取得しておいてください。

## 設定方法
AWSコンソール上でControl Towerにアクセスし、左メニューから「Account Factory」を選択します。続けて画面上部の「アカウントの登録」ボタンをクリックします。
![5-アカウント追加1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/54988275-95a2-02ad-f588-969729d115ee.png)


アカウント登録画面が表示されるので、必要な情報を入力していきます。
![5-アカウント追加2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/46d78d9d-5282-aebf-6401-5637a8943776.png)

設定内容については以下の通りです。
|設定項目|設定内容|
|--|--|
|アカウントEメール|前段で取得した、新規アカウント用のメールアドレスを指定します。|
|表示名|任意の表示名を指定します。メールアドレスの@左側なんかでよいのではないかと思います。|
|AWS SSO Eメール|Account Factoryを使用すると自動的にAWS SSOのユーザが作成されますが、このSSOユーザのメールアドレスをここに設定します。上記のアカウントEメールと同じものでよいかと思います。|
|AWS SSOユーザ名|SSOユーザの名前を設定します。任意の値を入力してください。|
|組織単位|新規アカウントが所属する組織単位（OU）を指定します。こちらも追加対象のアカウントに従い、任意に設定してください。|


すぐに設定完了画面が表示されます。画面上部に記載がありますが、詳細はService Catalogを見ろとのことです。
![5-アカウント追加3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/b8bd5dcd-863a-b304-45f4-38cc513af010.png)


というわけでService Catalogを見てみます。ステータスはまだ変更中（新規作成中）のようです。
![5-アカウント追加4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/9aeb9100-4867-67f5-d1aa-618471340f21.png)


私の環境では30分ほどで完了しました。ちなみにService Catalog左メニューの「プロビジョニングされた製品」を選択すると、追加したアカウントの一覧とその状態が見れるようです。
![5-アカウント追加5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/5fe475f2-2b15-7a3e-f5b7-1b78e8ebffe7.png)



# その他セキュリティ関連サービスの有効化
マルチアカウントかどうかによらず、セキュリティを考えるとGuardDutyとSecurity Hubを有効化するのが望ましいです。しかしながら現在Control Towerはこれらのサービスに対応していないようなので、初期設定の一環として手動で（ないしはCLIやCloudFormationなどを活用して自動で）有効化しておきましょう。
GuardDutyについては以下の記事に対応方法を記載していますので、興味のある方はご参照ください。

https://qiita.com/hiro-tech1192/items/e83e2453f361e5b427be

# さいごに
以上で解説は終了です。簡単ではありますが、今回はControl Towerの初期設定方法について記載しました。
この記事が誰かのお役に立てると幸いです。