[登壇レポート]  Ops-JAWS Meetup41 運用 LT 大会で「Control Tower を CloudFormation で管理する前に知っておきたいこと」というタイトルで登壇しました

[登壇レポート] Ops-JAWS Meetup41 運用 LT 大会で「Control Tower を CloudFormation で管理する前に知っておきたいこと」というタイトルで登壇しました

AWS Control Tower の設定を CloudFormation で管理する前に知っておくと良さそうなことをまとめてみました。
2026.07.31

こんにちは、クラウド事業統括本部 コンサルティング部のいたくらです。

はじめに

2026 年 6 月 16 日に開催された Ops-JAWS Meetup41 運用LT大会 & プチ交流会 にて登壇しましたので、資料を共有します。

https://opsjaws.connpass.com/event/393478/

登壇資料

コメント

AWS Control Tower、マネジメントコンソールで有効化したまま運用している方も多いと思いますが、設定変更の履歴を Git 管理したい、手動オペレーションのミスを減らしたいと思って CloudFormation (CFn) 管理に切り替えたくなったことはありませんか?

実際に CFn で管理しようとして調べてみると、CFn で管理できる Control Tower のリソースは以下の3つだけでした。

  • AWS::ControlTower::LandingZone (Landing Zone 全体の作成/更新)
  • AWS::ControlTower::EnabledControl (コントロールの有効化)
  • AWS::ControlTower::EnabledBaseline (OU/アカウントレベルのベースライン展開)

しかもコントロールは全部管理できるわけではなく、Mandatory(必須)コントロールは CFn で管理不可でした。CFn で扱えるのは Strongly-recommended(強く推奨)と Elective(選択的)のコントロールのみで、Mandatory は自動有効化される仕組みのため、そもそもテンプレートに書いてはいけません。少し困るのが、Mandatory かどうかは API 識別子 (ARN) からは判別できない点です。マネジメントコンソールやドキュメントで一つずつ確認する必要がありました。

また、既存環境をインポートしてみたところ、予想していなかったの挙動が多く見られました。

  • インポートするとタグ適用で重い処理が走る
    • CFn スタックのタグ (aws:cloudformation:stack-name 等) をリソースに付与するため、内部的に Update API が呼ばれました
    • LandingZone は Landing Zone をフルで更新する扱いになり、AWS リソースがほとんどない私の検証環境でも 約30分 かかりました
    • インポート= 取り込むだけの軽い操作、と思っていたので気付けて良かったです
  • Landing Zone 更新中は CT ダッシュボードが全てゼロ表示になる
    • 一時的なものですが、「組織単位0/アカウント0/コントロール0」と表示されました
    • 元々登録済みのアカウントがあるにもかかわらずこの表示になるため、もしも本番環境でこの表示を見たらかなり焦るなと思いました
  • LandingZone の インポートだけドリフト検出が動かない
    • CFn のドリフト検出を実行してもステータスが UNKNOWN のままで、CLI で詳細を見ると Internal Failure になっていました
    • EnabledControl / EnabledBaseline の インポートでは IN_SYNC になり正常に動作したので、LandingZone リソース固有の問題のようです。つまり LandingZone の インポートでは、テンプレートの正しさは自分で担保する必要があるということになりそうです (インポート後に CFn 経由で管理を続ければ、それ以降の変更追跡は可能です)。
  • DeletionPolicy: Retain を忘れるとコントロールが消える
    • (当たり前っちゃ当たり前なのですが)EnabledControl を定義しているスタックを Retain なしで削除すると、内部的に DisableControl API が実行されてコントロールが無効化されます
    • 本番 OU のコントロールを管理している場合、スタックの誤削除だけで配下の全アカウントからコントロールが外れることになるので、EnabledControl には必ず DeletionPolicy: Retain を設定しておくのが安全だと思います

「CFn で管理できるリソースと制約を理解した上で始めないと、予想していなかったの挙動に出会って慌てそうだな」というのが今回の一番の気付きでした。CT ダッシュボードが全てゼロ表示になるとか、ヒヤっとしますよね。

詳細は登壇資料に記載していますので、気になる方はぜひご覧ください。

さいごに

Control Tower を CloudFormation で管理してみたい方の参考になれば幸いです。

運営の皆さん、現地・オンラインでご視聴いただいた皆様、ありがとうございました!

以上、クラウド事業統括本部 コンサルティング部のいたくら(@itkr2305)でした!


そのマルチアカウント運用、気合いで支えていませんか

Organizations や Control Tower で土台は作れても、アカウントもポリシーも増えるほど、運用は「詳しい一人」に寄りかかっていく。属人化が限界を迎える前に、組織として回す仕組み=CCoEへ。5,600社の支援から得た立ち上げの型を、無料資料にまとめました。

CCoE総合支援

組織で回す仕組みの資料をもらう

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事