TOP>コラム一覧>CfCTを使ってみよう① ~ 初期設定編 ~

CfCTを使ってみよう①
~ 初期設定編 ~

はじめに

こんにちは、高橋です。
AWS Organizations機能の強化が近年実施され、当社でもAWS Organizations機能及びその周辺サービスを採用し、マルチアカウント環境で利用されるお客様がここ1、2年で急速に増えています。その中でも半数程度利用されているのがAWS Control Towerです。AWS Control Towerにはコントロール機能(旧ガードレール)があり、こちらは昨年に機能強化され400以上の統制ルールが使用できるようになったことで、マルチアカウント環境の統制管理を行うことがだいぶやり易くなりました。ただ一方で用意されたルールでは足りないといったケースも見られます。それを改善するのがCustomizations for AWS Control Tower(CfCT)機能です。今回はこのCfCTの導入と実際のルールの設定を2回に分けて紹介いたします。

1.Customizations for AWS Control Tower(CfCT)とは?

AWS Control Towerについてはこちらのブログで何度か説明しているので今回は省略し、本題のCustomizations for AWS Control Tower(CfCT)について説明します。CfCTはCloudFormationまたはService Control Policy(SCP)を用いて、マルチアカウント環境のOUやアカウントにユーザのルールに基づいてリソースのデプロイや制限を行うことができる機能です。CfCTは下記の様な仕組みで動作します。

設定したい内容を記述し、それをAmazon S3に保存するか、AWS Code Commitに保存することでCodePipeline/CodeBuildが自動的にビルド・テストし、問題なければCloudFormation StackSetsまたはSCPにルールが追加されます。また、Account Factoryと連動しているので以降はAccount Factoryでアカウントを作成すれば、ルールに基づいてリソースがアカウントに自動的にデプロイされ、ユーザが定義した運用・統制ルールを維持することが可能です。

料金についてこのフローが実行された場合(ルールを保存またはアカウントを作成)にそれぞれの課金体系に応じて発生するが、フロー自体は極短時間で完了するため、ほとんど気にならない金額ですみます。

2.CfCT環境の作成

CfCTはたくさんのコンポーネントで構成されているため、設定するのが大変かなと思うかもしれませんが、こちらはGitHubにCloudFormationテンプレートが公開されているので、それをダウンロードして利用することで簡単に構成することができます。なお、以前あったのですがControl Towerはちょくちょくバージョンアップされるため、その際にテンプレートのデプロイに失敗するような場合があります(実際経験済み)が、その際にはコードの一部を手動で修正(コミュニティサイトを探すと同じ様に困った人はいるものです)して、デプロイすることができるので、Control Towerのバージョンが変わった場合はご注意ください。といことでここからは実際にCfCTの初期設定を実施していきたいと思います。

(1) GitHubよりCfCTテンプレートをダウンロードします。

ダウンロードURL: https://github.com/aws-solutions/aws-control-tower-customizations/blob/main/customizations-for-aws-control-tower.template

(2) 管理(マスター)アカウントでCloudFormationの画面に移動し、「スタックの作成」→「新しいリソースを使用(標準)」を選択します。

(3) このページではダウンロードしたテンプレートをアップロードします。

(4) このページでは色々パラメータがありますが、最低限このスタックの名前と作成した設定ファイルの保存先を指定します。

今回はCodeCommitを選択していますが、コードの管理を考えるとこちらの方がお薦めです。

(5) このページでは特に何も指定しなくても問題ありません(ロールも自動作成してくれます)。

(6) 最後のページでは設定を確認し、画面下のチェックボックスにチェックを入れて、「送信」をクリックするとCfCT環境のデプロイが開始されます。

(7) 5分程度でデプロイが完了しますので、ステータスが「CREATE_COMPLETE」になっていることを確認します。

最後に出来上がった環境を見てみます。
CodeCommitにはサンプルのコードが保存されています。実際にコードを作成する際はこちらをコピーして利用します。

他にもCodeBuild、CodePipelineも作成されています。

また、CloudFormationとSCPにデプロイするためのStep Functionも作成されています。

実際の運用ではこれらのサービスが連動して動作しますので、実際の統制ルールのデプロイ時はこれらのサービスを確認しながら、正常に環境が構築されたか、問題が発生したらこれらリソースから出力されるログを元にトラブルシューティングをする必要があります。

まとめ

今回はCfCTの紹介と環境の作成方法をご紹介いたしましたが、次回はこの環境を用いて統制ルールのデプロイを試してみたいと思います。

関連ブログ

AWS Control Towerとは?-AWS Control Tower編第1弾-
CfCTを使ってみよう② ~ ルール作成編 ~

CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。

お問い合わせ

【著者プロフィール】

高橋 繁義(たかはし しげよし)

伊藤忠テクノソリューションズ株式会社 クラウドアーキテクト

インフラ全般のエンジニアとして20年以上活動し、現在AWS専任の技術担当兼サービス企画担当として活動中

2022年APN Ambassadorに選任

高橋 繁義(たかはし しげよし)

TOP>コラム一覧>CfCTを使ってみよう① ~ 初期設定編 ~

pagetop