AWS Control Tower のランディングゾーンセットアップ時に OU名が重複していてエラーになったときのリカバリ方法

2022.10.11

AWS Control Tower のランディングゾーンのセットアップ時に OU 名が重複しておりエラーとなったときのリカバリ方法の一例を紹介します。

AWS Control Tower 有効化(ランディングゾーンのセットアップ)時にデフォルトは新規に監査アカウントと、ログアーカイブアカウントを作成し、それら2つのアカウントを格納する OU を指定します。

デフォルトの OU 名はSecurity OU なのですが、既存のSecurity OU という同一の OU 名があったときどう対応すればよいのか、仮に事前確認漏れがあって OU 名がバッティングしてしまったらどうなるのか?気になったの検証してみました。

確認結果

  • OU 名が重複しているとランディングゾーンのセットアップが開始してからバリデーションエラーで OU 名の重複を検出する
  • 「ランディングゾーンの設定」をクリック時のの前提条件の事前チェックでは検出されない
    • ここは「ランディングゾーンの設定」をクリックしたあとに OU 名を変更可能なため仕方がないかもしれない
  • OU 名が重複してランディングゾーンがセットアップに失敗しても、OU 名の重複を解決すれば最終的にセットアップ完了まで確認できた

エラーメッセージ

AWS Control Tower detected '1' validation errors: The OU with name [OU Name] already exists in AWS Organization, please enter a different name for the OU

検証環境

検証時のランディングゾーンのバージョンは 3.0です。

原因

OU 名は一意である必要があります。

Control Tower のランディングゾーンのセットアップ中に作成する OU 名と、既存の OU 名がバッティングすると当たり前なのですけどエラーとなって、ランディングゾーンのセットアップが不完全なかたちで終了します。

対応

Control Tower 有効化時に作成するOU名変更

簡単な対応方法はランディングゾーンの設定値を入力時にデフォルトの OU 名 Security から他の名前へ変更することです。

ただ、Organizations 環境下でベストプラクティスに沿って OU 設計されていると既存のSecurity OU 配下に監査アカウント、ログアーカイブアカウントがあったりしないでしょうか。Control Tower 有効化後もSecurityという名前の OU を利用したいということもあると思います。

既存の監査アカウント、ログアーカイブアカウントを指定して Control Tower に取り込むこともできます。詳しくは以下のリンクで解説されています。今回はこの手法を使って既存のSecurityOU 配下に監査アカウントと、ログアーカイブアカウントがある状態で検証してみます。

元の Security OU の名前を事前に変更

SecurityOUがある状態で、Control Tower のセットアップ時にデフォルト名称(Security)のままセットアップを一度開始してみました。

ランディングゾーンのセットアップ中に以下のエラーによりセットアップが失敗しました。

個人的にはエラー状態からリカバリ可能か検証したかったのでちょうどよかったです。それと、セットアップ開始前に前提条件の事前チェックがあって OU 名が重複していますという検知はなく、セットアップ開始してからのバリデーションエラーで検出されるようですね。

気を取り直して Organizaiotns の画面からSecurityOUの名前を変更します。OU にチェックを入れます。

アクションから名前の変更を選択します。

OU の名前を変更しました。

Security-Oldと OU 名の変更は完了しました。

ランディングゾーンのセットアップ再試行

Control Tower 画面を開き、再試行をクリックしセットアップをやり直します。初回の Control Tower 有効化時に入力した項目が引き継がれ設定変更はできません。S3 のログ設定の保存日数だけは引き継がれず再入力を求められます。

リカバリ方法としては既存の OU 名を Organizations 画面から変更するしかないようです。CLI を使ってControl Tower の API を叩けば別なリカバリ方法もあるかもしれません。

青いバーが表示されるので正常に終わることを見守ります。

無事セットアップ完了しました。

OU を確認してみる

Control Tower のダッシュボードからみると指定した3つのアカウントのマネジメントアカウント、監査アカウント、ログアーカイブアカウントが登録されていることがわかります。

OU 構成を確認すると、Security-OldOUにあったアカウントがSecurityOUに移動されています。かつ、Control Tower 管理下になっています。

Organization ダッシュボードから確認してみると、同様に監査アカウント、ログアーカイブアカウントが移動されていることが確認できます。

ランディングゾーンのセットアップで一度失敗しましたが、正しい状態であればランディングゾーンのセットアップを再試行することで正常にデプロイが完了しました。

まとめ

  • OU 名が重複しているとランディングゾーンのセットアップが開始してからバリデーションエラーで OU 名の重複を検出する
  • 「ランディングゾーンの設定」をクリック時のの前提条件の事前チェックでは検出されない
    • ここは「ランディングゾーンの設定」をクリックしたあとに OU 名を変更可能なため仕方がないかもしれない
  • OU 名が重複してランディングゾーンがセットアップに失敗しても、OU 名の重複を解決すれば最終的にセットアップ完了まで確認できた

おわりに

トラブルシューティングガイドにもエラーメッセージが載っていなかったのでブログに書いておきました。とはいえ、OU 名の重複はさすがに気づけそうなのでこのエラーが発生するケースは稀かもしれません。

Troubleshooting - AWS Control Tower