Control Tower の自動アカウント登録は MoveAccount API がトリガーです

Control Tower の自動アカウント登録は MoveAccount API がトリガーです

2026.02.25

はじめに

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

以前、Control Tower の自動アカウント登録機能について紹介しましたが、このときは CT 登録済み OU → CT 登録済み OU への移動と、 CT 登録済み OU → CT 未登録 OU への移動しか実施していませんでした。

CT 未登録 OU → CT 登録済み OU への移動の場合、「AWSControlTowerExecution ロールを事前に作成しなくても自動登録が成功するのか?」という疑問があったので、検証してみました。

結論から言うと、自動アカウント登録は MoveAccount API イベントをトリガーとして動作するため、AWSControlTowerExecution ロールの事前作成は不要でした。

なお、本記事の検証はランディングゾーンバージョン 4.0、以下のランディングゾーン設定で実施しています。

1-6.png

三行まとめ

  • 自動アカウント登録のトリガーは MoveAccount API イベントであり、Control Tower コンソールの「登録」ボタンではない
  • MoveAccount による自動登録では AWSControlTowerExecution ロールの事前作成は不要
  • Control Tower コンソールの「登録」ボタンは手動登録のワークフローであり、こちらは AWSControlTowerExecution ロールが必要

背景

先日、弊社の以下のブログにて、自動アカウント登録が有効な環境でも AWSControlTowerExecution ロールが必要であると報告されていました。

https://dev.classmethod.jp/articles/automatic-account-enrollment-required-aws-control-tower-execution/

しかし、私や別の同僚の環境では自動アカウント登録が AWSControlTowerExecution ロールなしで成功したケースがありました。この違いを調査したところ、操作方法の違いが原因であることがわかりました。

公式ドキュメントの記載

自動アカウント登録の仕組みについて、公式ドキュメントには次のように記載されています。

AWS Control Tower reacts to move account events for AWS Organizations, and it remediates inheritance drift for the moved accounts immediately, on your behalf.

引用:Move and enroll accounts with auto-enrollment - AWS Control Tower

つまり、自動アカウント登録は Organizations の MoveAccount イベントをトリガーとして動作します。

また、登録の前提条件に関するドキュメントには次の記載があります。

The prerequisite to add the AWSControlTowerExecution role is not required if you have activated the AWS Control Tower auto-enroll capability in the landing zone Settings page, or if you are enrolling the account as part of a Register OU process.

引用:Prerequisites for enrollment - AWS Control Tower

自動アカウント登録が有効な場合、AWSControlTowerExecution ロールの事前作成は不要と明記されています。

「登録」ボタンと「OU 移動」の違い

上記ブログと私の環境で結果が異なった原因は、操作方法の違いです。

操作 内部的な動作 AWSControlTowerExecution が必要か
Control Tower コンソールの「登録」ボタン 手動登録ワークフロー 必要
Organizations コンソールや MoveAccount API での OU 移動 MoveAccount イベント → 自動登録が実行 不要

上記ブログでは Control Tower コンソールの「登録」ボタンから操作していたため、手動登録のワークフローが実行され、AWSControlTowerExecution ロールが求められていました。一方、私の環境では Organizations コンソールからアカウントを登録済み OU に移動したため、自動登録が実行され、ロールなしで成功していました。

検証してみた

検証条件

  • 対象アカウント
    • 過去に Control Tower に登録されたことがあるアカウントだが、事前に AWSControlTowerExecution ロールstacksets-exec-*(StackSets 実行ロール)を削除済み
  • 対象アカウントの現在の状態
    • Control Tower 未登録(未登録 OU に配置)
  • 自動アカウント登録:有効

2-3.png

検証手順

  1. 対象アカウントに AWSControlTowerExecution ロールや CloudFormation スタックが存在しないことを確認

4.png

3.png

  1. Organizations コンソールから対象アカウントを選択し、Control Tower 登録済み OU に移動

5.png

6.png

  1. 自動アカウント登録が実行されるまで待機

検証結果

AWSControlTowerExecution ロールが存在しない状態でも、Organizations コンソールからアカウントを登録済み OU に移動するだけで、自動アカウント登録が正常に完了しました。

7.png

登録後のアカウントを確認すると、ベースラインが適用され、CloudFormation スタック(AWSControlTowerExecution ロール)も正常に展開されていました。

8.png

まとめ

自動アカウント登録を利用する場合、Control Tower コンソールの「登録」ボタンではなく、Organizations コンソールや MoveAccount API を使ってアカウントを登録済み OU に移動するのが正しい操作方法です。この方法であれば AWSControlTowerExecution ロールの事前作成は不要です。

「登録」ボタンは名前こそ似ていますが、内部的には手動登録のワークフローが実行されるため、自動アカウント登録とは別物のようです。ご注意ください。

この記事がどなたかのお役に立てれば幸いです。
以上、クラウド事業本部コンサルティング部のいたくら(@itkr2305)でした!

参考ドキュメント

この記事をシェアする

FacebookHatena blogX

関連記事