Karakuri.com

ベンチャー企業で働くソフトウェアエンジニアの技術録

AWS OrganizationsのAWSメンバーアカウントを別のOrganizationに引っ越ししました

スポンサーリンク

会社が大きくなった結果、1つのAWS Organizationsに複数の組織のAWSメンバーアカウントが同居する状況が発生し、管理部側で請求を整理するのが大変になってきました。このため、新たな組織(Organizations)を作成してAWSメンバーアカウントを移動することにしました。

組織を移動するための手順

手順は至ってシンプルです。

  1. AWSメンバーアカウントのルートアカウントで既存組織を抜ける
  2. 新組織からAWSメンバーアカウントに招待を投げる
  3. AWSメンバーアカウントで招待を受ける

ただ、1番目と2番目にそれぞれ条件があり、そこにハマると時間を溶かすことになります。

組織を移動するための条件

既存組織からAWSメンバーアカウントを外す

AWSメンバーアカウントが組織を抜けるには下記の条件を満たしておく必要があります。

  • 支払方法が設定されている
  • AWSメンバーアカウントのセットアップが完了している
  • 本人確認が完了している

これらの条件を満たすにはルートアカウントでの作業が必要となります。AWS OrganizationsからAWSメンバーアカウントを作成した場合はルートアカウントを把握してない場合があるので、その際は下記の方法でルートアカウントを使えるようにしてください。
www.k-karakuri.com
ルートアカウントが使えるようになったらAWSメンバーアカウントのセットアップを完了させます。自分の場合はサポートプランの設定が必要でした。ルートアカウントにログインした状態で下記のURLにアクセスします(この作業はルートアカウントではなくてもAdministrator権限のあるIAMユーザーで可能なようです)。
https://aws-portal.amazon.com/gp/aws/developer/registration/index.html
次に本人確認を行います(順番は前後しても良いです)。本人確認は電話番号認証なのですが、これがどのメニューから実施ページに飛べるのかが分かりにくいです。というか、分からなかったので、AWS Organizationsを開き、組織を抜けるを実行して表示されるエラーから本人確認ページに飛んでいました。本人確認ページに辿り着けたら電話番号を入力し、電話に出て画面に表示される数字を入力すれば本人確認が完了します(実際にはココでめっちゃ失敗する ※後述)。

新組織からAWSメンバーアカウントに招待を投げる

組織に組み込むことができるAWSメンバーアカウントは2020年10月現在ではデフォルトで4つまでという制限があります。5つ以上のAWSメンバーアカウントを組み込みたい場合は、AWS Service QuotasのAWS OrganizationsのNumber of AWS accounts in an organizationの上限引き上げリクエストを行う必要があります。基本的にリクエストすれば連絡無しに引き上げてくれるようですが、なぜか自分の場合は英文でサポートからメールが来てコミュニケーションミスが生じていました。。。

AWSメンバーアカウントの引っ越しのトラブル

権限を与えたIAMユーザーがスイッチロールできない

AWS Organizationsは関係ないのですが、管理部にBillingの権限を与えて支払い方法が設定されていないAWSメンバーアカウントへのスイッチロールをお願いしたのですが、スイッチロールが成功しない問題に直面しました。原因はAWSメンバーアカウントのロールのMFA必須オプションでした。管理部の方がIAMユーザーにMFAを設定してなかったので、その場でMFAを設定してもらったのですが、一度ログアウトして再ログインしないとMFA設定済みのステータスでスイッチロールされないようです。これは結構ハマる罠ですね…。

Billing権限を与えたIAMユーザーがBillingにアクセスできない

AWS Organizationsからではなく、1からAWSアカウントを作成していると、IAMユーザーにBillingアクセス権限を与えることができなくなっています。この状態だとロールを作成してもアクセスできません。AWSメンバーアカウントのAdministrator権限でこのアクセス権限を認めるようにチェックを入れてください。これに気づくのにも結構時間を要してしましました…。

AWS Service Quotasの上限引き上げリクエストが通らない

Number of AWS accounts in an organizationのデフォルト値は4なのですが、10へ引き上げリクエストをしたらサポートから既に10だよと連絡が来ました。そんなことはないのでは?と返答したら、「OK!10に上げるから再度ルートアカウントで返事をしてくれ!」と返事が来ました…謎。

AWSメンバーアカウントの本人確認が失敗する

ここが最難関でした。これが全然通りません。AWSから電話は来るのですが、実際に認証番号を入力すると、

  • 関連付けられていない電話番号です
  • 認証番号が違います
  • 認証ができませんでした(タイムアウトっぽい?)

のいずれかのエラーが頻発します。本人確認の電話番号はAWSメンバーアカウントに登録している会社の電話番号でなくても通る時は通るので、関連付けられていない電話番号というエラーは謎です。また、認証番号が合っていても違うと言われることが多々あります…。
あまりに失敗して先に進めなくなったので、この問題についてサポートに連絡してみたところ、

  • 一時的なサービス障害
  • AWSの不具合

の可能性があると言われました…。この場合はAWSサポートから直接電話を受けて人間対人間で電話番号認証を実施することができます。また、複数アカウントを引っ越しするのに毎回サポートと電話しないといけないんかい!という問題については対応可能かは置いておいてAWSサポート側で対応を検討してくれるとのことでした。

所要時間

様々なトラブルに見舞われた結果、8つのAWSメンバーアカウントの引っ越しに要した時間は7時間でした。3~4人で実施したので工数としては3.5~4人日程度。結構お金使ってしまいました…。

参考

【AWS Organizations】所属アカウントの一括移行と注意点
https://blog.ismg.kdl.co.jp/aws/organizations_migration

AWSアカウント請求権の移譲について
AWSアカウント請求権の移譲について - DENET 技術ブログ

AWS Organizationsで作成したメンバーアカウントを組織から連結解除/他組織へ移行できるようになりました
AWS Organizationsで作成したメンバーアカウントを組織から連結解除/他組織へ移行できるようになりました | Developers.IO