ルートユーザーのログインができない状況で且つ、請求情報へのアクセスが無効化されていても、AWS CLI を使用してアカウントの電話番号の変更が可能だった
はじめに
ルートユーザーのログインができなくなった際に、復旧のためにアカウントの電話番号の変更が必要となりました。
しかしながら、IAM ユーザーによる請求情報へのアクセスが無効化されており、マネジメントコンソールからの電話番号の変更ができない状況でした。
一方で、AWS CLI による変更は可能だったので、状況なども踏まえて紹介します。
状況の紹介
なぜルートユーザーのログインが不可となり、アカウントの電話番号の変更が必要となったのかについて背景を説明したいと思います。
以下のような条件が揃ってルートユーザーのログインの復旧ができない状況になりました。
- まず、わけあってルートユーザーの MFA デバイスが使用不能になり、ログインできなくなった
- ドキュメント [1] の内容に沿ってメールと電話番号からの復旧を試みたが、登録していた電話番号は既に使用していないものだった。
- このため電話番号を現在使用しているものに変更して復旧する方針に変更
- しかし、IAM ユーザーによる請求情報へのアクセスが無効化されていたため、マネジメントコンソールからの電話番号の変更もできない状況だった。
※ 電話番号の変更を試した IAM ユーザーのロールには AdministratorAccess ポリシーがアタッチされていました。しかしながらドキュメント [2] にあるように、請求機能へのアクセスを許可するポリシーがアタッチされていても、請求情報へのアクセスが無効化されている場合はアクセスできないとのことでした。
===== ドキュメント [2] 抜粋 ここから =====
AWS アカウント内の IAM ユーザーとロールは、デフォルトでは Billing and Cost Management コンソールにアクセスできません。これは、IAM ユーザーまたはロールに、特定の請求機能へのアクセス権を付与する IAM ポリシーがある場合でも当てはまります。アクセスを許可するには、AWS アカウントルートユーザーが先に IAM アクセスをアクティブ化しておく必要があります。
===== ドキュメント [2] 抜粋 ここまで =====
後に復旧してルートユーザーでログインして確認したところ、請求情報へのアクセスが無効化されていました。デフォルト設定は無効とのことです。

また、IAM ユーザーで上記設定が見れるページにアクセスすると、以下のようなアクセス許可が無い旨の表示が出て電話番号の変更ができませんでした。

以上の状況となり、ルートユーザーのログインの復旧に行き詰まっておりました。
対処
このため AWS サポートに相談したところ、電話番号の更新が可能な場合があるとの情報得たため試したところ変更できました。その後前述のドキュメント [1] の手順をやり直して無事にルートユーザーのログインの復旧ができました。
使用した CLI コマンドの例は以下の通りとなります。
$ aws account put-contact-information --contact-information AddressLine1=****,City=****,CountryCode=****,FullName=****,PostalCode=1122334,PhoneNumber=+811122334455
contact-information オプションの以下の項目は必須のパラメーターとなります。
- AddressLine1
- City
- CountryCode
- FullName
- PostalCode
- PhoneNumber
詳細なオプションなどについては、コマンドのドキュメント [3] を参照してください。
参考情報
[1] MFA デバイスが故障または紛失した場合のセルフサービスによるリセットの方法 | Amazon Web Services ブログ
[2] AWS アカウント のセットアップ - AWS Identity and Access Management
[3] put-contact-information — AWS CLI 2.31.28 Command Reference
おわりに
今回は、ルートユーザーのログインができない状況下で、更に請求情報へのアクセスが無効化されている場合にアカウント復旧のため、AWS CLI を使用してアカウントの電話番号を変更事例を紹介しました。
同様の状況に陥った場合の参考になれば幸いです。






