この記事を読むとできること
IAMリソースを更新可能なアクセスキーが手元のPC上にあってAWS CLIを実行できる環境があればCLIからIAMユーザーのMFA認証を無効化することができる。
背景
* 携帯を機種変したときに、MFAの引き継ぎに失敗‥
* IAMユーザーはMFAを有効化しててログイン不可能の状態に
* AWSのアカウント管理者は自分ではないので、ルートアカウントの情報は知らない
土日にAWSの勉強をしようと思ったけど、ログイン出来ないんじゃどうすることもできないし
休みの日に管理者に連絡してMFAを無効化してもらうこともできない。
なんとか自力でできないもんかと思い調べたところ、クラスメソッドさんでこんな記事を発見!!
CLIが使える環境ならコマンド打てば無効化できるっぽいぞ!!
公開されたから、だいぶ年月が経ってるけど行けるかなと不安な気持ちを抱えつつ
試してみることに。
手順
IAMユーザーに設定されてるMFAデバイスの情報を確認
$ aws iam list-mfa-devices --user-name IAMユーザー名
実行後に返ってくる情報のうち「SerialNumber」の値をこの後の作業で使うので
どこかにコピペしておくと作業しやすい。
MFAデバイスを無効化
$ aws iam deactivate-mfa-device \
--user-name IAMユーザー名 \
--serial-number SerialNumberの値
デバイスが無効化されていることを確認
$ aws iam list-mfa-devices --user-name IAMユーザー名
{
"MFADevices": []
}
この状態になったら、コンソールからユーザー名とパスワードのみでログインできるようになるので
ログイン後は必要に応じてMFAを再度有効化すればいい。
無効化したデバイス情報を削除する
無効化した後も、仮想認証デバイスの情報は残ったままになってしまうとのことなので
コマンドを打ってこちらも削除しておく
$ aws iam delete-virtual-mfa-device --serial-number SerialNumberの値
これでMFA無効化の削除は全て完了。
まとめ
CLIが使えない環境だったら完全に詰んでいたので
今後機種変する際は、MFAの対応はしっかり対策を打っておこうと思いました。
そして、今回参考にさせてもらったクラスメソッドさん記事には大変感謝しております。
参考にさせて頂いた記事は公開されてから、年月が経っておりますがこの記事を公開した時点では
まだMFAの無効化は行えたので、同じように困っている人が居たら参考になるかと思います。
参考