AWS Control Tower(1)Control Towerの概要

Control Tower

Control Tower は、AWS Organaizations, AWS SSO, AWS Service Catalogなどと連携して、ランディングゾーンと呼ばれる安全なマルチアカウント環境の設定を行うことができる。ガードレールと呼ばれる必須もしくは強く奨励されているルールを提供し、SCPを使用してこれらのルールを新規のアカウントや既存のアカウントへの拡張を実現することができる。また、用意されているダッシュボードを用いることで、それぞれのアカウントの状況を確認することができる。

Control Towerの使用に伴う追加の費用はなく、Control Towerによって有効化されたサービスに対する費用のみ発生する。

ランディングゾーン

セキュリティやガバナンスのベストプラクティスに基づいた複数のAWSアカウントのこと。AWS Organaizationsを用いて以下が作成され、 20の予防ガードレールと6つの検出用ガードレールが適用 される。なお、 管理アカウントには予防ガードレールは適用されない 。また、AWS SSOにディレクトリを作成する。

root                            <-- 全てのルートを含む親アカウント
├── Security OU
│          ├── Log archive account   <-- 全てのアカウントのAPIおよびリソース構成ログを蓄積
│          └── Audit account         <-- セキュリティチームが作業を行う
└── Sandbox OU

監査用のアカウントからそれぞれのアカウントへ手動でログインすることはできず、監査アカウントに付与されるロールを用いたプログラムによるアクセスが提供される。

CloudTrailやConfigの設定等には、CloudFormationが用いられる。また、CloudFormationのStackSetsを用いて、特定のアカウントに対して変更を加える。これらの自動的に作成されたリソースは変更や削除をしてはならない。

対応リージョンの追加や新たなガードレールの追加など、Control Towerのガードレールは常時更新されている。これらの新しいルールに対応するためには、Control Towerのランディングゾーン設定から手動でバージョンの更新を行う。またもし、これらの設定とは異なる設定がなされていた場合は、同じページから修復を試みることができる。

ガードレール

ガードレールは、事前にパッケージ化されたルールのことで、アカウント全体もしくは一部のアカウントに適用することができる。ガードレールは、ポリシーに違反するリソースのデプロイを禁止する 予防用ガードレール(SCP) と、違反を定期的に確認する 検出用ガードレール(Condig) とに区別され、必須、強く奨励、選択の3つのカテゴリに分類される。Control Tower設定後は、AWS OrganizationsからではなくControl TowerからSCPの変更を行う。

判定結果は、以下のようにカテゴライズされる。

状態 タイプ 範囲 内容
In Violation 検出 複数のアカウント ルールに違反している
Enforced 予防 複数のアカウント 違反は許可されない
Clear 検出 複数のアカウント 違反は検出されていない
Compliant 検出 単一/複数のガードレールやOU 違反は検出されていない
Non-Compliant 単一/複数のガードレールやOU 非準拠のリソースが検出された
Unknown 全て 不明

コンプライアンスの変更は、SNSトピックで受け取ることができる。これを用いて、メール等に情報を送るや、Lambdaを用いて必要な情報だけを抽出することができる。

アカウントファクトリー

アカウントファクトリーは、新しいアカウントのプロビジョニングを自動化するためのテンプレート。これを用いることで、規定のルールに沿った新たなアカウントのプロビジョニングを行うことができる。アカウントファクトリーは、AWS Service Catalogを用いて構築される。アカウントファクトリーのページから、新規のAWSアカウントを作成することが出来る。新規アカウントは、親OUのガードレールを継承する。

ダッシュボード

複数のアカウントやガードレール、ルールに非準拠のリソースなどを確認することができる。

ランディングゾーンの設定とマルチアカウント

ランディングゾーンは、既存のOrganaizationsでも、新規でOrganaizationsを作成する場合でも設定できる。既存のOrganaizationsに適用する場合も、作成済みのOUに変更が加えられることはない。

Control Towerの設定には、30分ほど掛かる。ランディングゾーンの設定を行う前には、自動でチェックが行われて、ランディングゾーンが設定できるかの確認が行われる。ランディングゾーンを設定したあとに、ホームリージョンを変更することはできない。

なお、AWSは適切なアカウント設定を次のように定めており、Control Towerはこの思想に基づいてランディングゾーンの設定を行う。

複数のアカウントの使用

複数のアカウントを使用することで、アプリケーション毎に異なるセキュリティプロファイルに対応することができる。また、リスクや脅威、保管するデータをアカウント単位で分離することもできる。組織に複数のチームが存在する場合には、チーム間の干渉を防ぐことができ、またリソースの使用をアカウントごとに管理することが可能となる。

複数のOUの使用

本番用のアカウントとテスト用のアカウントは、別のOUに所属させて別々のアカウントとして管理できる。

ランディングゾーンとOUの設計

OUは、セキュリティ用、インフラストラクチャ用、サンドボックス用、本番用などに分けると良い。Control Towerでは、セキュリティ用のOUを作成して、その中に監査用アカウントとログアーカイブ用のアカウントを作成する。AWSの利用が増えるにしたがって、以下のようにOUを分割することも可能である。ただし、Contol Tower上ではネストされたOUは表示できない。

second-figure