AWS Control Towerを構築してみた！vol.1

# 近況
おそらく2023年最後の投稿となります、~~コンニャクン~~しゅうペーです。
今週でAWS資格のSCS-C02(セキュリティ-専門知識)とSAP-C02(ソリューションアーキテクト-プロフェッショナル)に挑戦し、無事に轟沈しました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/5bf5fbb4-fef6-75f0-7f4d-c6b7b90e84b7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/ea7fc83e-1606-fd53-67e8-847584f698b9.png)

直近3か月はありがたいことに忙しく、明らかに勉強不足でした。
ですが点数はどちらもあと少し（特にSAPはあと2~3問くらい）だったので、モチベーションがあるうちに再挑戦します。

#  AWS Control Towerとは
本題に入ります。業務の中でAWS Control Towerを構築する機会があったので、いろいろまとめていこうと思います。ボリュームが多いので、複数の記事に分けて書いていきます！
今回の記事ではAWS Contol Towerの概要についてを記述し、vol.2以降で構築にあたって必要な条件や注意点、構築後設定などを書いていくことにします。

### **AWS Control Tower 概要**

一言でいうと、AWSの複数アカウントを管理するために使用します。
AWS Control Towerを導入するメリットは大きくこんな感じです。

**①複数のAWSアカウントのセキュリティ的な統制ができる**
**②アカウントのセットアップが楽になる**

また、AWS Control Towerは複数のAWSサービスを用いてマルチアカウント管理を実現します。
図にするとこんな感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/8287f707-50d3-4776-c3c0-5fd1cd9df643.png)

この図に記載していませんが、AWS CloudFormationやAWS IAM IdentityCenterなどもControl Towerと連携されています。

※[こちら](https://pages.awscloud.com/rs/112-TZM-766/images/20230224_27th_ISV_DiveDeepSeminar_ControlTower-Solutions.pdf)にいい感じの図があったので、貼り付けておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/e80466f3-a7ed-0511-af4f-efc016707d9b.png)

#  ガードレールって?
AWS環境において、セキュリティリスクのある操作・行動を防ぐ仕組みを「ガードレール」といいます。(人やサイトによって定義は微妙に違う)

AWS Control Towerでは「コントロール」と呼ばれる機能がガードレールに該当します。
また、AWS Control Towerには3種類のコントロールがあります。

### **①予防的コントロール**
ポリシー違反につながるアクションを禁⽌し、コンプライアンスを維持するコントロールです。
SCPでの実装となるため、強制力があります。

実装に使用されるAWSサービス(機能)：AWS OrganizationsのSCP(Service Control Policies)機能

例：[AWS-GR_CLOUDTRAIL_ENABLED] 利用可能なすべてのリージョンで CloudTrail を有効にする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/72849034-84f3-b2d5-1f33-20d71b96188f.png)

### **②発⾒的コントロール**
望ましくない変更を⾏なった場合、それを発⾒するコントロールです。

イメージとしては、AWS ConfigやAWS SecurityHubのダッシュボードに「非準拠リソース一覧」が表示されますが、それがAWS Control Towerのダッシュボードに表示されるイメージです。
リソース名、アカウント名、コントロール名が出てくるので、修正のためのNext Actionが取りやすいです。

↓↓↓コンソール画面はこんな感じ↓↓↓　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/174bf373-8007-c505-ba43-653670253cf0.png)

実装に使用されるAWSサービス：AWS Config、AWS SecurityHub(「AWS 基礎セキュリティのベストプラクティス」から提供)

例：[AWS-GR_EC2_INSTANCE_NO_PUBLIC_IP] Amazon EC2 インスタンスにパブリック IPv4 アドレスが関連付けられているかどうかを検出する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/d81649de-8a57-a63d-dcb4-db550990b666.png)

### **③プロアクティブコントロール**

CloudFormation経由のデプロイを対象に、ルールに合致していないリソースのデプロイを防ぐコントロールです。
2023年に出た新しめのコントロールになります。

実装に使用されるAWSサービス：AWS CloudFormationのCloudFormation Hooks機能とGuard rules機能

例：[CT.EC2.PR.3] どの Amazon EC2 セキュリティグループルールも、80 と 443 以外のポートにソース IP 範囲 0.0.0.0/0 または ::/0 を使用しないことを要求する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/c6256f7c-f928-4e9f-bc97-1c73ec89fead.png)


# その他の用語や概念

###  **1.ランディングゾーン**

[AWSのドキュメント](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-aws-environment/understanding-landing-zones.html)にいろいろ書いてありますが、AWS Control Tower特有の用語ではなく、マルチアカウントの管理をしていく上での、管理を行うアカウント(とリージョン)のことです。
もっとざっくりいえば、AWS Control Towerをデプロイするアカウントおよびリージョンのことです。


### **2.監査アカウント(Audit)とログアーカイブアカウント(Log Archive)**
これらはAWS Control Towerの有効化時に自動で作成される2つのアカウントになります。
これも[AWSマルチアカウント管理のベストプラクティス的](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/security-ou-and-accounts.html)には、作成が推奨されています。

**監査アカウント**
AWSドキュメントには「AWS セキュリティ ツールおよびコンソールへの集中委任管理者アクセスを提供するために使用します。」と記載がありますが、要するに組織の全アカウントの状況を一目見て把握できるために使うアカウントになります。


**ログアーカイブアカウント**
操作ログや監査ログの保管先が複数のアカウントにまたがっていると、ログ管理が大変なので、各種ログをため込む用のアカウントとして使うアカウントになります。

#  どんな人がAWS Control Towerを使うといいのか？
AWS Control Towerのユースケースとしては以下が想定されます。
下記のユースケースに該当する場合は、AWS Control Towerを使用するのがよいと思います。

### **①マルチアカウントの予防統制**
最もこのユースケースが多いと思います。AWS Control Towerのガードレールを用いて、セキュリティ統制を行います。ガードレールを設定することで、セキュリティホールの発見などが簡単にできます。(とあるSecurity Groupのインバウンド設定がAll Allowになっているなど)

###  **②ログの管理と有事の際の調査を迅速化**
重要なログ(アクセスログや監査ログ)をログアーカイブアカウントに分けて管理することで、ログの改ざんを防ぐことができます。また、有事の際のアクセスログ調査などを、複数アカウントを横断して調査することができるため、調査を迅速化できます。

#  さいごに
ざっとAWS Control Towerについて自分なりにまとめてみました。
先日のSAP試験でもAWS OrganizationsやAWS Control Towerの問題はスラスラと回答できたので、とてもためになるプロジェクトでした！

今年から始めた技術ブログですが、何とか三日坊主にならずに済みました。
来年は当初の目標通り、1か月あたり2記事を投稿していきたいです。
来年は早々にAWS Control Towerの続きの記事を書いて、AWSの試験勉強を頑張ります。

それではよいお年を:wave_tone4: