AWSマルチアカウント管理は、AWS環境を効率的かつ安全に運用するためのベストプラクティスとなっていす。
AWS ControlTowerは、この管理を簡略化し、セキュリティやガバナンスをより強化できるものです。
本記事では、実際の構築を通して気づいたControl Towerの具体的な利点を、
「ControlTower導入するの不安だ……」と思う人向けにコストも踏まえ、わかりやすく解説することを目指します!
【マルチアカウント管理】AWSのベストプラクティスを実現できるControlTowerに取り組んでみる
目次
①マルチアカウント管理の利点
②ControlTowerの利点(&実際かかったコストの画像)←本記事はここ
③ひとまず構築しながらControlTowerを理解してみよう(手順付)
④SSOユーザー作成→サインインしてマルチアカウント管理を体感しよう
⑤セキュリティ(SecurityHub)の設定をしてみよう
⑥セキュリティ(GuardDuty)の設定をしてみよう
⑦コントロールのざっくり解説&設定をしてみよう
⑦までやればいったん一通り構築完了です。
ControlTowerだけの構築であれば③だけで完了です。
(+印付きはオプション 現在執筆中です)
+ベストプラクティスとはいえ、構築後に実運用に沿って変えた設定集
+全アカウントのコスト管理を行う
+アカウント管理者を任命したらやること
+SecurityHubをもっと詳しく
もし今回の記事が参考になったり、いいなと思ったら、よろしければストックやいいねしていただけると非常に嬉しいです🙌
あなたのいいねがとっても励みになり、記事を書くモチベになります。
コメントもぜひ、お待ちしております。
まず気をつけること
ControlTowerの導入にあたっての、注意点を3つお伝えします。
「勧めてるくせに注意点なんてあるの!?」と思うかもしれませんが、構築後に「ここ知りたかったなあ」と思ったものです。せめて①と②だけでも見てほしい……。
不安を煽っているわけではなく、最初にこのあたりを理解して検討してほしいです。
①「必須のコントロール」という削除/無効化できないルールが設定されてしまう。
ControlTowerでは、トグル内画像のようにコントロール(別名:ガードレール)という統制のルールを使って、すべてのアカウントを統制します。
基本的にはどのOUに適用するかを選べますが、上記画像の「必須のガードレール」と呼ばれるものは、ControlTowerの管理下になった瞬間に適用されてしまいます。
そのため、その存在と中身は一応見たほうがいいと思います。
ただ基本的には業務を妨害する必須のコントロールはないと思います。
(ControlTowerを解除しないと、基本的には削除できません。)
後にはなりますが、この記事にてより詳細な中身の解説をしています。
②無料というわけではなく、お金は少しかかる
公式でも強調されていますが、ControlTower自体の料金はかからないものの、
自動で構築したリソースについては、無料利用枠を超えるとその分料金がかかります。
無料で全部できるわけではないため、そこは十分気をつけていただければ幸いです。
ちなみに、私が構築した日にかかった料金は$1.66でした。
内訳はトグル内にて記載していますので、参考程度に見ていただけますと幸いです。
実際にかかったコストの画像
※アカウント数によって課金額は変わります。アカウントが増えるにつれ、SecurityHubの検出評価やConfigの評価対象、証跡のログが増えていくため、下記はあくまで参考として見ていただけますと幸いです。
構築した日のコスト $1.66
(アカウント数合計3 無料利用枠あり。
SecurtyHubやGuardDuty、アカウント内のEC2などの開発リソースは未構築。
ControlTower由来のもののみアカウントに存在。)
大体1週間くらいのコスト 合計 $1.99
(アカウント数3 構築手順④まで完了。
アカウントやユーザーの払い出しやは設定したが、それ以外のEC2やデータベースなどの
開発リソースは未構築。)
一通り構築終わったくらいのコスト 合計 $4.28
(アカウント数4 構築手順⑦まで完了。
手順にあったSecurityHubやGuardDutyは設定し、それ以外のEC2やデータベースなどの
開発リソースは未構築。)
③AWSのサポートはアカウントごとの契約となるため、統一できない(エンタープライズプランを除く)。
ControlTowerで統一をしたいのにサポートはアカウントごとの契約となります。
そこは統一してくれないんだ……
ControlTowerの構築により、アカウントが複数出来ます
(A:管理者、B:監査・セキュリティ用、C:ログアーカイブ用の3つ)。
ただ、例えば下記で、Bで起こったエラーに対して、Aの方からBのリソースの調査をすることはできません。
そのため、「マルチアカウントのうち1アカウントだけサポートプラン上げれば、そこで全部聞けるし良くない?」作戦は通用しません……
仕方ないのかもしれませんが、セキュリティ上の理由で他アカウントのリソースは調査できない、という壁をControlTowerでは乗り越えられないからです。
これを解決するには、質問を投げたいアカウントAのサポートプランをBasicではなく、素直にDeveloper以上にしてサポートに投げるか、もしくは全体的にエンタープライズプランにあげるしかありません。
これらを踏まえたうえで、それでも採用に値するControlTowerのメリットを解説します。
Control Towerの主要なメリット6つ
ControlTowerは一言でいうと、
「Organizationsでアカウント管理するよね? なんか使いそうなもんおまけでつけとくよ!(ドッサリ)」のノリです
もしくはPCパーツの部品の修理依頼したら、めっちゃ色々やってくれる秋葉原のお店みたいなもんです(?)
ただおまけにしては本当に色々やってくれるし、おまけ選んでるのは一応プロなわけで、
ベストなものを選んでくれます。
そんなわけで、つけてくれたおまけがだいたい以下です。
1. 自動ガバナンスの導入
Guardrails(ガードレール)機能で、全アカウントにわたる統一ポリシーを簡単に適用できます。
2. アカウントセットアップ/サインインの簡略化
標準化されたテンプレートで、複数アカウントの作成が迅速に行えます。 また、自動でシングルサインオンの仕組みも提供してくれ、スイッチロールせずともSSOで各アカウントにサインイン可能です。
3. セキュリティの強化
AWS CloudTrailやAWS Configの自動構築、Security Hub&GuardDutyとの統合で、全アカウントのセキュリティ基準を確保します。
4. コストの可視化と最適化
組織全体のコストを詳細に追跡し、最適化するためのインフラが整います。
5. 拡張性とスケーラビリティの向上
サービスコントロールポリシー(SCP)を利用して、アカウントが増えても一貫性を確保できます。
6. コンプライアンス対応の効率化
業界標準のガイドライン(CIS、HIPAA、PCI-DSSなど)に基づく運用を可能にします。
上の説明をもっと詳しく
詳しく知りたい人向けです。
1. 自動ガバナンスの導入
Control Towerのガードレール機能により、全アカウントに適用されるベースラインポリシーを自動で設定可能です。
たとえば、「未使用のS3バケットがパブリックに公開されていないか」
「フィルタリング無し(全許可インバウンドルール)でEC2立てっぱなしにしてないか」
を定期的にチェックするルールを設定することで、セキュリティリスクを軽減できます。
2. アカウントセットアップの簡略化
AWS Control Towerでは、テンプレートを利用し、初心者でも新しいアカウントを1分で作成可能です。
さらに、AWS Organizationsと統合されているため、新規アカウントは自動的に既存のポリシーや設定に従います(b)。
これにより、手動での設定ミスを防止し、運用効率が向上します。
3. セキュリティの強化・可視化
SecurityHubとも統合し、セキュリティがどのくらい守られているのか、点数と注意したほうが良い項目を表示してくれます。
また、AWS Configを用いて設定変更を監視し、基準に合わない構成を即座に検出可能です。
GuardDuty/IAM Access Analyzer(外部)とも統合すれば、対外的な脅威を防げます。
4. コストの可視化と最適化
AWS Cost Explorerを利用して、アカウントごとにコストを詳細に分析できます。
どんなにアカウントが増えようとも、アカウントごとにスイッチロールするのでなく、まとめて一画面で確認できます。
5. 拡張性とスケーラビリティの向上
1の「ガードレール(別名:コントロール)の統一ポリシー」に被りますが、その統一ポリシーの中でサービスコントロールポリシー(SCP)を使用して、特定の操作を制限するポリシーを全アカウントに適用できます。
例
開発アカウントでリソースの削除を禁止するポリシーを設定することで、重要なデータの消失を防ぐ
本番アカウントでSecurityGroupの設定を誤ってしまい、サーバーをパブリックに公開してしまうのを検出する
などなどです
6. コンプライアンス対応の効率化
全アカウントでAWS CloudTrailを有効化し、すべての操作をログに記録することで、共通ロールごとではなく、ユーザー個人ごとに不正な操作や誤操作を即座に追跡できます。
全アカウントの証跡も、ログ専用のアカウントで自動的に集約、保管します。
Control Towerを使わずともマルチアカウント管理は可能じゃない?
それはそうかもしれません。
とはいえ、比較して詳しく見るとControlTowerのほうがやっぱりいいなあ……ってなると思います。
1: Control Towerを使わなくてもAWS Organizationsで管理できるのでは?
回答: AWS Organizationsはアカウント間の管理を可能にしますが、Control Towerが提供するガードレールや自動セットアップ機能がありません。ガードレールも内部的にはSCPやSecurityHubを使用していますが、それぞれセットアップするよりはControlTowerで必要なものをピックアップ→適用するほうが楽だと思います。
2: 初期設定が複雑で時間がかかりそう
回答: Control TowerはGUIベースで導入可能なため、初期設定に要する時間が大幅に短縮されます。
また、テンプレート化された設定により、複雑な手作業が不要です。 AWS CLIのコマンドを打つ必要がなく、手順に沿ってポチポチしていけば終わります。
3: セキュリティは独自に設定できるのでは?
回答: 独自に入れた設定では設定ミスが発生しやすく、知識も必要です。
Control TowerはAWS CloudTrailやAWS Configの設定を自動適用し、リスクを軽減します。
また、SecurityHub/GuardDutyなどのサービスとも組み合わせることで、内外のセキュリティリスクを軽減できます。
4: 費用が高くなりそう
回答: Control Towerは追加コストがほぼ発生しません。
むしろ、AWS Cost ExplorerやSavings Plansの活用を推奨するため、コスト最適化に寄与します。
実際に掛かったコストも公開していますので、記事上部の「実際に掛かったコスト」で画像をご確認ください。
5: 特定の業界基準には柔軟に対応できないのでは?
回答: Control TowerはPCI-DSSやHIPAAなどの業界標準に対応したガードレールを提供します。
これにより、規制準拠を迅速かつ確実に実現可能です。
参考文献
1. AWS Control Tower Documentation
2. AWS Organizations Documentation
3. AWS CloudTrail Documentation
4. AWS Cost Explorer Documentation
5. AWS Config Documentation
6. AWS Security Hub Documentation
おわりに
いかがでしたでしょうか?
マルチアカウント管理をするうえで、ControlTowerで出来たならなんか色々よさそうだなあ、となっていただければ幸いです。
とはいえ、やっぱり実際に作らないとその手軽さは伝えづらい……(私の力不足ですが)
次回以降の手順では、実際にControlTowerを作ってみましょう!
GUIベースでできるため、一緒に画面をポチポチしていけば構築可能です。
ではまた~
←前回記事
次回記事→