スマホのデータが飛んだ

正確に言うと、飛ばした、です。


私は Android 端末ですが、突然挙動がおかしくなってしまいました。

「挙動がおかしく」の具体的内容は次です。

  • ホームボタン、マルチタスクボタン、バックボタンが効かない
  • 開発者向けオプションが利用できない
  • マルチタスクにならない
  • 設定を開くと横画面になる

開発者向けオプションが利用できないとは、「デベロッパー向けオプションはこのユーザーには表示されません」という文言が表示され、いつものメニューが表示されませんでした。

  • 直近でインストールしたアプリを削除する
  • キャッシュをクリアする
  • セーフモードで起動する

ということを試しましたが、改善が見られなかったため、最終手段である端末リセットを行いました。

そういえば、 MFA

大抵のデータはかんたんにバックアップから復旧できます。
便利です。

しかし唯一ハマったのが、MFA でした。

MFA とは 「多要素認証」のことです。

アカウント名とパスワードだけではなく、スマートフォンなどを利用する認証のことで、 アカウント名とパスワードという、ただの文字列にすぎない情報で認証するよりもはるかに安全 なのですね。


私はスマートフォンに Google 認証システム をインストールし、AWS の MFA で連携をしていました。

端末リセットによって、スマートフォンそのものは回復したのですが、MFA のバックアップなどは行っておらず、この Google 認証システム を、どのように復旧するかが大きな問題として残りました。

MFA デバイスの紛失時はどうする

AWS のドキュメントに MFA デバイスの復旧や故障のときのガイドが掲載されています。

AWS ドキュメント
AWS Identity and Access Management > ユーザーガイド > MFA デバイスの紛失および故障時の対応
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_disable.html

このドキュメントによると、何やら電話をで本人確認なりをしなくてはならないようですね。

ちょっと調べてみると、デフォルトでは英語の電話がかかってくるようで、かなり敷居が高そうでした。


もうちょっと調べてみると、次のドキュメントにたどり着きました。

AWS ドキュメント
AWS Identity and Access Management > ユーザーガイド > MFA デバイスの無効化
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_disable.html

MFA デバイスを無効化する手段として、次の 3 つが用意されています。

  • コンソール
  • AWS CLI
  • AWS API

今回はそもそもとして、自身のアカウントでコンソールにログインすることができない、というところで詰んでいるため、コンソールは除外です。

けれども、過去に AWS CLI を導入済みだったため、 AWS CLI での操作にチャレンジしました。

復旧手順 1 AWS CLI で無効化する

対応方法は、クラスメソッドさんブログ記事の通りでした。

Developers.IO
IAMユーザーのMFAをAWS CLIで無効化する
https://dev.classmethod.jp/articles/disable-iam-user-mfa-with-aws-cli/

この手順では次の API を利用します。

AWS CLI Command Reference
list-mfa-devices
https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-devices.html
AWS CLI Command Reference
deactivate-mfa-devices
https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html

MFA デバイスを確認する

はじめに、 AWS CLI の iam list-mfa-devices コマンドで、無効化をしたいユーザの MFA デバイスを確認します。

コマンドとレスポンスは次のようになります。

 1$ aws iam list-mfa-devices --user-name mfa-test
 2{
 3    "MFADevices": [
 4        {
 5            "UserName": "mfa-test",
 6            "SerialNumber": "arn:aws:iam::123456789012:mfa/mfa-test",
 7            "EnableDate": "2017-12-22T17:10:40Z"
 8        }
 9    ]
10}
この例は前述の記事 (IAMユーザーのMFAをAWS CLIで無効化する) より引用しました。

無効化を行う際に、レスポンスにある SerialNumber を指定するためメモを取っておきます。

また、オプションの --user-name は必須ではありません。
ユーザが多い場合はこのオプションを付け、絞り込みを行うと良い感じですね。

MFA デバイスを無効化するする

次に AWS CLI の iam deactivate-mfa-devices コマンドで、 MFA の無効化を行います。

iam deactivate-mfa-devices コマンドでは、次 2 つを指定します。

  • ユーザ
  • MFA デバイスのシリアル番号
1$ aws iam deactivate-mfa-device \
2  --user-name mfa-test \
3  --serial-number arn:aws:iam::123456789012:mfa/mfa-test
この例は前述の記事 (IAMユーザーのMFAをAWS CLIで無効化する) より引用しました。

レスポンスはとくにありません。

復旧手順 2 管理コンソールから MFA を再設定

MFA デバイスを削除することにより、アカウントとパスワードの 2 つでコンソールログインができるようになりました。

しかしながら、前述の通り「アカウントとパスワードはただの文字列」でありセキュリティが高いとは言えません。

そのため、改めて MFA を設定することを強く推奨します。

  • コンソールログインし
  • IAM を開き
  • MFA デバイスを設定

という流れですが、具体的な手順は割愛します。

MFA は、復旧の対策をしておたい

今回のことで、 MFA は復旧に手間がかかることを痛感 しました。

まあ、その性質を考えれば、かんたんに復旧できてもダメなんですけどね。

こういった重要なものは対策を考えておきたいな、と改めて感じました。