AWSのMFA用デバイスを紛失してサービス停止しそうになった話

## 概要
個人サービス用に作った AWS の root account の MFA として私用スマホの電話番号を登録していたが、スマホ乗り換えの際に番号が変わってしまった。
当時は IAM ユーザーに請求管理以外の admin 権限を与えて、そちらにログインすることでアカウントを運用しており、しばらく不都合も無かったので放置していた。

ところが、それから6年ほど経った2022年1月、[メタップスペイメント社のクレジットカード情報流出事件](https://www.metaps-payment.com/company/20220228.html)の影響で、AWSに登録していたクレジットカードが強制的に停止されてしまった。
しかもクレジットカード会社からカード失効のお知らせが届いた後も、AWSに登録してあるカードがそれと気付かず、AWSから下記のようなメールが届いて初めて事態の深刻さに気付いた。

> 2022-06-09
> <b>Action required – Your AWS account is past due</b>
> Hello from AWS,
> 
> We recently sent you a reminder about the past due balance on your AWS account. This account still has a past due balance.
> 
> Your card payment ending in xxxx failed when we attempted to charge it for AWS services on account xxxxxxxxxxxx. Please contact AWS Customer Service for help resolving the payment failure.

AWSアカウントが停止されれば Route53 に登録したドメインが使えなくなって全てのサービスへのアクセスが不可能になるし、S3等に保存されたファイルやデータが全て失われてしまう。
ここからAWSのサポートに問い合わせて root account の MFA を失効させ、ログインしてクレジットカードを登録し、無事に決済をし直すまでにしたことを書いていく。

## 手順
### AWSサポートに問い合わせる
root account の MFA 用デバイスを紛失してしまった場合のヘルプを見ながら探してみたが、どうやら電話番号自体が変わってしまうと自分で何とかする方法は無さそうだった。
https://aws.amazon.com/jp/blogs/security/reset-your-aws-root-accounts-lost-mfa-device-faster-by-using-the-aws-management-console/

「どうにもならない場合はこちらへ」と案内されるがままにお問合せフォームに事情を記入して送信。
翌営業日あたりにAWSサポートから電話がかかってきた。

どうやらこの場合、AWS本社に対してアカウント所有者本人であることを証明する書類を提出し、MFAを無効化してもらうことになるらしい。
必要書類などについての案内をメールで送ってもらい、準備を始めたのが6月17日だった。

```
【必要書類】
1) MFA Identity Verification Form and Affidavit フォーム
2) アカウントオーナー様の写真付き身分証明書コピー
3) アカウント登録されているご住所の証明書
```

それと同日に下記のようなメールが届く。

> 2022-06-17
> <b>Problems with your AWS Account - Please read urgently</b>
> Your AWS Account is about to be suspended. There is still an outstanding payment problem with your account, as our previous communications did not lead to successful payment of your past due AWS charges.
> 
> We were unable to charge your credit card for the amount of xxxx for your use of AWS services during the month of May-2022. We will attempt to collect this amount again. Unless we are successful in collecting the balance of xxxx in full by 06/30/2022, your Amazon Web Services account may be suspended or terminated.

今月中に決済を何とかしないとアカウントが停止される、と具体的な期限が通告された。

### MFA Identity Verification Form and Affidavit フォームを記入する
このフォームはPDFで共有され、印刷して必要事項を記入した上で「公証人の認証」をもらう必要があるらしい。

> 「FOR NOTARY PUBLIC USE ONLY BELOW THIS LINE:」以下の項目は、公証人のサイン箇所となります。
> ⇒大変お手数ですが、各市町村にある「公証役場」まで必要な身分証明書をご持参して頂き、「公証役場」にて外国文認証のお手続きをしていただきます様お願い申し上げます。また公証人がサインするための詳細な手続きは、お手数ではございますが利用される「公証役場」でご確認いただきますようお願い申し上げます。
> ※このフォームは私署にあたるため私署認証となります。外国文認証とは、外国語で作成された私署に対する認証のことですので、Affidavitフォームはこちらに当てはまります。しかしながら、英語による認証文は必要ございません。
> 
> 外国文認証について
> http://www.koshonin.gr.jp/business/b07_2/
> 
> 全国公証役場所在地一覧
> http://www.koshonin.gr.jp/list

こういった公的な認証の制度があることを初めて知った。
所在地一覧を見て自宅から近い事務所へ電話してみると、どうやら事前に予約が必要らしい。

アカウント停止の期限が近いこともあり会社を休んででも行くつもりだったが、公証人も忙しいらしく、予約日時がかなりギリギリになってしまった。
（1ヶ所に電話して空いていなくても、他の事務所に電話するとより近い日付で空いていることもあるので、複数の事務所に連絡して確認してみると良い。）

### AWSサポートにクレジットカード登録だけ依頼する
公証人の認証がかなりギリギリになりそうなこともあり、 root account を復活させる前に何とかクレジットカードの登録だけできないものかと、AWSサポートに事情を説明しつつ問い合わせてみた。
しかし残念ながらそれはできないらしく、下記のようなつれない回答をもらっただけだった。

> お問い合わせいただきました件でございますが、誠に恐縮ながらアカウントのお支払い方法を更新いただけるのは
> ルートユーザー、または適切な権限を持ったIAMユーザーのみとなっております。
> 
> 確認をいたしましたところ、本アカウントにつきましてはIAMユーザーに対し
> 請求およびコスト管理コンソールにアクセスするための許可が与えられておりませんので、
> お支払い方法を更新いただけるのはルートユーザーのみということになります。
> （この許可はルートユーザーにより操作を行う必要がございます。）

### 公証人の認証をもらう
結局 6/27 になって何とか公証人と手続きを進めることができ、会社を休んで事務所へ足を運んだ。
事前にメールで必要書類を送っておいたので手続き自体はスムーズに進み、到着から30分ほどで認証の書類をもらうことができた。

なおこの世界に定価があるのかは分からないが、費用は11,500円だった。

### 認証書類と本人確認書類をAWSに送付する
公証人からもらった認証の書類を近くのコンビニでスキャンして、本人確認書類と共にAWSにメールで送った。
残り3日でAWSの対応が無ければサービスが停止してしまうので、祈るような気持ちで待った。

### AWSから審査完了の知らせが届く
3日後の6月30日のお昼頃、AWSから審査完了の通知がメールで届いた。
何とかギリギリ当日になって間に合った、と思った矢先、次の一文が目に止まった。

> 2022-06-30
> 当件につきまして、担当部署での確認作業が完了いたしました。
> <b>本メール送信から24時間後にMFAデバイスを解除させていただきます。</b>

24時間後は米国時間でも7月1日になってしまうので、間に合わない。
万事休すに思われたが、最後の望みをかけてAWSのサポートに現状を説明し、アカウント停止の期限を延ばしてもらえないか問い合わせた。

すると、驚くほど迅速に下記のような回答が返ってきた。

> 2022-06-30
> ご担当者様
> 
> お問合せいただきありがとうございます。
> 
> 尚、当アカウントにつきましては、未払いによりアカウントが停止されないよう手配いたしました。
> 仕様上、未払いによりアカウントが停止される旨の通知が送られ、これを止めることはできないものとなっておりますこと、ご了承ください。
> アカウントは停止されませんが、恒久的な措置ではございませんので、お早めにご対応いただけますようお願い申し上げます。
> 
> なお、決済完了の目途がお分かりになりましたら、お知らせいただけますと幸いです。

待ってもらえることになったので、どうやらこれで危機は脱したようだった。

## MFA失効の通知が届く
翌日、メールが届いた24時間後を過ぎてから root account にログインを試みたが、変わらずMFAによる認証を求められた。
サポートに問い合わせるべきか悩んでいたところ、30分ほどしてMFAが解除された旨のメールが届いたため、急いで試したところ無事に root account にログインすることができた。

無事にクレジットカードを登録し直し、決済処理を再実行し、また新しい電話番号を登録し、再度MFAを設定し直したことで、この件についてやるべきことは全て完了した。

## 教訓
スマホを乗り換えたり電話番号を変える時は MFA の引き継ぎに十分注意しましょう！！