AWS CLIを使ってMFAを再設定する。

2014.06.12

こんにちは、せーのです。 今日はとても悲しいことが起きたので、ブログを書きたいと思います。

事の顛末

今朝のことです。 東京は小雨が降っておりまして、傘を指しながら徒歩で会社まで通勤しておりました。 信号待ちで何気なくスマホを取り出したところ、雨で滑ってしまい、道路に落としてしまいました。 よくあること、、、なんですが、今日に限ってどこの打ちどころが悪かったのか

iphone ...こうなってしまいました。

スマホ自体は端末交換してiCloudからバックアップを取り出して小一時間で復活したのですが、ここで問題が発生しました。 AWS Management Consoleには弊社社員は全員MFAを使用してログインしているのですが、そのワンタイムパスワードはスマホの「google authenticator」というアプリを使用していまして、こいつの設定はiCloudからバックアップは出来ないんです。。。

つまり、Management Consoleにログインできない。=> 仕事にならない。

「MFAは冗長化しておけ」という諸先輩方のありがたい教えを全く聞いておらず。。。詰んだか、詰んだのか? 困り果ててManagement Consoleを使わない仕事を細々と続けていたところ、AWS CLIのコード補完でこんなメソッドを発見しました。 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かかって泣きそうになる。

以上です。転ばぬ先の杖。皆様もお気をつけくださいませ。