AWS ControlTower利用時のAWS複数アカウント管理のための設定伝搬ソリューション比較

2024-08-15
市川 翔
#
#
#

概要

AWSの複数アカウント管理において、親アカウントから子アカウントに設定を伝搬することは、効率的な管理と一貫したセキュリティポリシーの適用に不可欠です。本記事では、以下のケースに分けて設定の伝搬方法について検討します。

セキュリティの設定を伝搬したい場合

セキュリティ設定の統一は、組織全体のセキュリティポスチャーを維持するために重要です。親アカウントから子アカウントに対してセキュリティグループやアクセス制御、監査ログなどのセキュリティ関連設定を伝搬することで、全アカウントに一貫したセキュリティポリシーを適用できます。

共通設定や共通スタックを伝搬したい場合

共通設定やスタックの伝搬は、標準化された環境を保つために役立ちます。例えば、共通のネットワーク設定やリソースの基盤を複数のアカウントに展開することで、環境の一貫性を保ちつつ管理の効率化が図れます。

その他のケース

以下のようなケースにおいても設定の伝搬が求められます。

  • コスト管理: 予算やコスト制限を全アカウントに適用する場合、例えば特定のリソースタイプやサービスの使用制限を一括で設定する方法について検討します。
  • コンプライアンスの維持: 法的な要求や業界標準に準拠するために、全アカウントに特定のコンプライアンス設定を適用する場合のアプローチを見ていきます。
  • リソース管理の自動化: 新規アカウントが追加された際に、必要なリソースや設定を自動で配備する方法についても考察します。

これらの要件を満たすために、AWSにはさまざまなソリューションが用意されています。各ソリューションの特徴と適用可能なシナリオについて詳しく説明し、適切な選択肢を見つける手助けをします。

比較ソリューション

AWSのドキュメントを参考に、以下の4つのソリューションを比較します。

各ソリューションの概要

AWS CloudFormation StackSets

複数のアカウントおよび AWS リージョンに対して、1 度のオペレーションでスタックを作成、更新、削除できます。AWS Organizations と統合することで、組織単位 (OU) で StackSets を自動デプロイできます。新規アカウント追加時にも自動でデプロイする設定が可能です。

Account Factory Customization (AFC)

AWS Control Tower のアカウントファクトリーを使用して、Service Catalog から CloudFormation テンプレートを利用してリソース群を作成します。既存のアカウントにもブループリントの適用や更新が可能です。

Customizations for AWS Control Tower (CfCT)

StackSets と Service Control Policies (SCP) を管理するための仕組みです。独自フォーマットのマニフェストファイルを作成し、StackSets のリソースと SCP を定義して反映します。CloudFormation テンプレートとして提供されています。

Baseline Environment on AWS(BLEA)

Service Catalog を使用して、各アカウントに環境を展開できます。展開方式は、サービスカタログを共有して各アカウントでデプロイする Pull 型と、AFC を使用して展開する Push 型の2つがあります。

比較表

AWS CloudFormation StackSets AFC CfCT BLEA
展開方式 Push Push Push Push or Pull
管理方式 CloudFormation (CDK でも可能) CloudFormation または CDK CloudFormation + CfCT 独自のマニフェスト CloudFormation または CDK
メリット 最小限の構成で各アカウントにリソースを構築可能 サービスカタログの作成は CDK で作成可能なため、CDK での管理が可能 SCP とリソースをまとめて管理可能 サービスカタログの作成は CDK で作成可能なため、CDK での管理が可能。Pull 型を選択すれば、各アカウントの管理者に責任を持たせることが可能
デメリット ・自動で更新されるので、特定のアカウントだけデプロイに失敗する可能性があり、復旧に手間がかかる可能性がある
・自動反映は OU 単位の制御になるため、個別のアカウントに対しての反映ができない
・更新時には手動で各アカウントに適用する必要があり、更新漏れが発生する可能性がある ・自動で更新されるので、特定のアカウントだけデプロイに失敗する可能性があり、復旧に手間がかかる可能性がある
・管理が独自テンプレートになるため、管理が難しい
・かなり作り込まれているため、カスタマイズが難しい
・Pull 型を選択するとデプロイの強制ができない

ソリューションの選択

AWSの複数アカウントに対して設定を伝搬する際のソリューション選択は、目的に応じて最適な方法を選ぶことが重要です。以下に、各ソリューションの特徴と、どのようなケースに適しているかを示します。

Push 対応ソリューション

  • AWS CloudFormation StackSets: 複数アカウントに対して一度の操作でスタックを展開できるため、大規模な設定変更や一貫性を持たせたい場合に適しています。ただし、特定のアカウントだけに対する柔軟な設定は難しい場合があります。
  • Account Factory Customization (AFC): AWS Control Towerを利用して、新規アカウントの作成時にサービスカタログから設定を適用できます。既存アカウントの設定変更も可能ですが、手動操作が必要な場合があります。
  • Customizations for AWS Control Tower (CfCT): StackSetsとSCPを組み合わせて、包括的な管理が可能です。ただし、管理が独自テンプレートになるため、カスタマイズや管理が難しいことがあります。

Pull 対応ソリューション

  • Baseline Environment on AWS(BLEA): Service Catalogを使用して各アカウントに設定を展開できるため、Pull型での展開も可能です。CDKを利用して構築できるため、柔軟な管理が可能で、各アカウントの管理者に責任を持たせることができます。また、Push型もサポートしているため、環境に応じた最適な方法を選ぶことができます。

推奨ソリューション

基本的には、PushとPullの両方に対応でき、CDKでの構築が可能な Baseline Environment on AWS(BLEA) が良いと考えています。BLEAは、全アカウントに対して一貫した設定を適用する際に非常に効果的で、必要に応じて柔軟に展開方式を選択できるため、多様なニーズに対応できます。

株式会社Grandreamでは、フルリモートであなたのスキルを活かし、活躍できるエンジニアを募集しております。 詳しくは採用ページをご確認いただき、お気軽にお問い合わせください。

株式会社グランドリームでは、AWSを駆使した開発からUI/UXデザインまで、Webアプリケーションに関するすべての要望に応えます。
まずは一度お気軽にご相談ください。

お問い合わせはこちら