AWS Control Towerで登録したアカウントを別のOUへ移動させる
概要
AWS Control Towerで登録したアカウントを別のOUへ移動させるには少し手順が必要です。その手順を残していきます。
アカウントのOUを移動させる(失敗パターン)
AWS Organizationsで直接OUを移動させてしまった場合にどうなるかを紹介しましょう。
AWS Organizationsのコンソールへアクセス
まずはAWS Organizationsのコンソールへアクセスします。
アカウントの登録状態を確認
私のアカウント登録状態を確認します。
現在、SlidesというアカウントがSandbox OUに所属しており、今回はこれをService OUへと移動させていこうと思います。
移動させたいアカウントを選択
移動させたいアカウントのチェックボックスにチェックを入れ、アクションから移動を選択します。
移動先OUを選択
移動先のOUを選択し、AWS アカウントを移動を選択します。
移動したことを確認
移動が完了するとAWS アカウントの画面へと戻り、OUの移動が確認できます。
AWS Control Towerで登録状態を確認
AWS Control Towerのコンソールへアクセス
AWS Control Towerのコンソールへアクセスします。
アカウントを確認
アカウントのページへ移動すると先ほどOUを移動させたアカウントの状態が「登録に失敗しました」となっています。
アカウントを選択して詳細を確認します。
何やらOUを移動したことでアカウントの状態に問題があるように読み取れます。
翻訳サービスにかけるとこのような内容になっています。
AWS Control Towerは、登録されたアカウントが新しい組織単位に移動されたことを検出しました。アカウントは一貫性のない状態であり、意図しない請求が発生する可能性があります。続行するには、AWS Service Catalogでアカウントを終了させ、再度登録します。意図しない移動の場合、アカウントを元のOUに戻し、AWS Service Catalogからアカウントを更新してください。
どうやら、AWS Service Catalogでアカウントを終了してから再度登録する必要があるようです。
手順
前回の記事でAWS Control Towerのランディングゾーンを設定し、新規にOUとアカウントを作成しました。その時、わざと誤ったOUへアカウントを登録しておいたので、このアカウントを本来登録したいOUへと移動させていきます。
アカウントを再登録
AWS Service Catalogのコンソールへアクセス
AWS Service Catalogのコンソールへアクセスします。
AWS Service Catalogでアカウントを確認
プロビジョニングされた製品のページへ移動します。
AWS Control TowerのAccount Factoryで作成されたアカウントはここに表示されます。表示されない場合はアクセスフィルターがアカウントになっていることを確認してみてください。
アカウントを終了
終了するアカウントを選択し、アクションから終了を選択します。
本当に終了するか確認されるので終了
と入力してプロビジョニングされた製品を終了を選択します。
少し時間がかかります。
しばらくするとアカウントが終了してリストに表示されなくなります。
AWS Control Towerでアカウントを確認
AWS Control Towerのコンソールへアクセスしアカウントを確認すると、先ほど終了させたアカウントの所属がRoot
・状態が未登録
になっていることが確認できます。
AWS Control Towerでアカウントを再登録
Account Factoryから再度アカウントを登録します。この際、親OUには移動先のOUを指定します。
登録するとAWS Service Catalogを参照するよう促されるのでリンクへアクセスします。
しばらくするとステータスが使用可能になってOUの移動が完了します。
エラーが発生しなかった場合は以上で完了です。
登録時、IAMロールがなくてエラーになる場合
今回は発生しませんでしたが、以前仕事で対応した時は子アカウント側に必要なIAMロールが存在しないことが原因でアカウント登録のタイミングでエラーとなり焦った記憶があります。再現こそしていませんが、その際の回復手順を残します。
手順を実施する前に管理アカウントのIDとOUを移動させるアカウントのIDを控えておいてください。SSOの画面を開きっぱなしにしておくといつでもコピーできるのでオススメです。
OUを移動させるアカウントへサインイン
管理アカウントでログインした状態でアカウントのドロップダウンメニューを開き、ロールの切り替えを選択します。
ロールの切り替えを選択します。
アカウントにOUを移動させるアカウントのID、ロールにOrganizationAccountAccessRole
を入力してロールの切り替えを選択します。
先ほどのロールでOUを移動させるアカウントにサインインできました。
AWS Control Towerが利用するIAMロールを作成
IAMコンソールへアクセス
IAMコンソールへアクセスしてロールのページを開き、ロールの作成を選択します。
IAMロールの作成
信頼されたエンティティタイプにはカスタム信頼ポリシーを選び、ポリシーには次のJSON文字列を入力して次へを選択します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::管理アカウントのID:root"
},
"Action": "sts:AssumeRole"
}
]
}
ポリシー選択画面ではAdministratorAccess
を選択して次へを選択します。
ロール名にAWSControlTowerExecution
と説明に任意の説明(e.g Allows full account access for enrollment.)を入力してロールを作成を選択します。
以上で必要なIAMロールの作成は完了です。
アカウントを再登録のフェーズから再度やり直すことでアカウントの登録が可能になります。
Discussion
サービスカタログのパラメーター変更でも移動できるようですよ
情報提供ありがとうございます。
頂いた記事の手法がよりスマートですね、記事の方は更新しようと思います!