はじめに
この記事は私が実際にControlTowerを構築したときの記録です。(2024年7月31日時点)
@tonkatsu_oishi さんの記事を参考に構築しました。
https://qiita.com/tonkatsu_oishi/items/6890ecc24c3b3bf8ee32
(とても分かりやすくまとめられていて、とても助けられました!!)
ControlTowerを構築しよう
ControlTowerのサービス画面に移動し、【ランディングゾーンの設定】を押下してスタートします。
料金の確認とリージョンの選択画面に移動するので、設定していきます。
ホームリージョンは今回東京で進めていきます。
「ガバナンスのための追加リージョンを選択」ではランディングゾーンとして有効にしたいリージョンをチェックして選択します。後から追加できます。
今回は大阪、シンガポール、バージニア北部の計4リージョンで進めていきます。
リージョン拒否設定を【有効】にします。
後述しますが、この設定によって予防×選択的コントロールが1つ必須で付きます。
次に組織単位(OU)の設定を行います。
基礎となるOU、追加のOU名は一旦デフォルトで設定します。
基礎となるOU→Security
追加のOU→Sandbox
【ポイント】
ここで設定されるのはあくまでOU名のみです。中身(特に基礎となるOU)はある程度中身が決められています。追加のOUはこれから我々が任意で追加するものと同じです。
この2つのOUの違いは、外せない独自のコントロールがきいたり等マネージドな設定が加わっていることです。基礎となるOUはマネージドで作成されるアカウントのため、あまり自由がないアカウントです。
次に共有アカウントの設定を行います。
LogArchive(ログ集約)とAudit(監査)の役割をするアカウントを新規に作成します。(既存アカウントを入れなかったのでその場合の仕様はわからないのですが、新規に作成する場合はメアドだけ入れれば大丈夫です!)
次にその他の設定を行います。以下のように設定しました。
アカウントアクセス設定→identityty centerを使用する(=SSOを設定する)
CloudTrail→有効
S3のログ保存設定→5日
KMS→×
【ポイント】
・ここで設定していることは後から変更可能です。例えばS3のログ設定を5daysから1monthに変更したいなど。
特にS3は必須のコントロールによってバケットの設定を触れなくなってしまうので不安に思いますが、保持期間の設定だけはここから変更できます。ただglacierにライフサイクルポリシーで移動させるなどは不可能(正しくはベストプラクティスでなければ可能ではある)です。
・S3のログ設定は
ログ用(上)→CloudTrailのログがリージョン、アカウント、日付・・・等階層になって入るバケット。
アクセスログ用(下)→S3に対するアクセスログが溜まるバケット。なので正直あまり溜まらないです。
最後にランディングゾーンの確認です。ここで最終的な設定を確認します。
ステップ5では、サービスのアクセス許可に関してチェックを入れます。(ここを押下しないと先に進めません)
問題がなければ【ランディングゾーンの設定】を押下します。
すると画面が変わり、構築が行われます。ここから60分くらい待ちます。(放置して問題ありません)
完了するとこのような画面になります。
ここまでで、ランディングゾーンの構築(土台の土台!)が完成しました!
各アカウントに作成されるリソース
ControlTowerを導入することによって、以下ドキュメントに記載のあるリソースが作成されます。
・管理アカウント、LogArchiveアカウント、Auditアカウント(共有アカウント)
https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/shared-account-resources.html
・メンバーアカウント
https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/account-factory-considerations.html
【ポイント】
・管理アカウント以外に作成されるリソースで、「AWSControlTowerExecutionRole」は絶対に消してはいけないです!このロールがないとControlTower内に置かれたリソースは操作権がなくなってしまいます。管理アカウントからは、このロールを通じてメンバーアカウントに対して、スイッチロール出来たりもします。
・既存アカウントをControlTowerに組み込む場合、上記ロールの作成とConfigの無効化を事前にお願いする必要があります。
ランディングゾーンの構築については以上です。