AWS CLIを使ってMFAを再設定する。
こんにちは、せーのです。 今日はとても悲しいことが起きたので、ブログを書きたいと思います。
事の顛末
今朝のことです。 東京は小雨が降っておりまして、傘を指しながら徒歩で会社まで通勤しておりました。 信号待ちで何気なくスマホを取り出したところ、雨で滑ってしまい、道路に落としてしまいました。 よくあること、、、なんですが、今日に限ってどこの打ちどころが悪かったのか
スマホ自体は端末交換してiCloudからバックアップを取り出して小一時間で復活したのですが、ここで問題が発生しました。 AWS Management Consoleには弊社社員は全員MFAを使用してログインしているのですが、そのワンタイムパスワードはスマホの「google authenticator」というアプリを使用していまして、こいつの設定はiCloudからバックアップは出来ないんです。。。
つまり、Management Consoleにログインできない。=> 仕事にならない。
「MFAは冗長化しておけ」という諸先輩方のありがたい教えを全く聞いておらず。。。詰んだか、詰んだのか? 困り果ててManagement Consoleを使わない仕事を細々と続けていたところ、AWS CLIのコード補完でこんなメソッドを発見しました。 ...なんだか一筋の光が見えてきました。
一旦整理します
やりたいこと
MFAを再設定するために、一旦今ついているMFAを解除したい。
必要なもの
- Access Key/Access Secret Key(AWS CLIの操作に必要です)
- AWSアカウントID
- ユーザー名
AWS CLIは入っていますか?では、始めます。
作業
作業は意外と簡単です。deactivate-mfa-deviceコマンドでMFAの認証を外し、delete-virtual-mfa-deviceでそのMFA認証を削除します。
MFAの認証を外す
deactivate-mfa-deviceで必要なパラメータは
- user-name : ユーザー名
- serial-number : シリアルナンバー
シリアルナンバーとはIAMのarnのことです。今回のMFAのシリアルナンバーでいえば arn:aws:iam::[AWSアカウントID]:mfa/[ユーザー名] となります。 これらを[--]でつなげます。
aws iam deactivate-mfa-device --user-name [ユーザー名] --serial-number [シリアルナンバー]
これでMFAの認証が外れました。
MFAを削除する
次にMFAを削除します。削除するコマンド、delete-virtual-mfa-deviceのパラメータは
- serial-number : シリアルナンバー
です。ではやってみましょう。
aws iam delete-virtual-mfa-device --serial-number [シリアルナンバー]
これでMFAが削除出来ました。後はMFAなしでログインして、Management ConsoleのIAMから再びMFAを設定すればOKです。今度は冗長化を忘れずに。
まとめ
- AWS CLIは便利なので使える状態にしておいたほうが良い
- アカウントID、ユーザー名は忘れないように保管しておく。
- MFAを任意に解除できる、ということは誰かに解除される、という可能性もあるということなので、アクセスキーの管理は厳重に。
- 万一の為にMFAは冗長化しておく。
- 液晶の破損による本体交換は通常のiPhoneの修理保証範囲外なので、Apple Careに入っていないと¥28,944かかって泣きそうになる。
以上です。転ばぬ先の杖。皆様もお気をつけくださいませ。