感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

PCでAWSのMulti-Factor-Authentication(多要素認証)を行う

<スポンサーリンク>

まず、MFA(多要素認証)とは何か?という点について、AWSの公式サイトの説明がわかりやすいので、引用します。

AWS Multi-Factor Authentication (MFA)は、ユーザー名とパスワードに加えて保護を強化できる、簡単なベストプラクティスです。MFA を有効にすると、ユーザが AWS ウェブサイトにサインインするときに、ユーザー名とパスワード(第 1 の要素、つまりユーザーが知っているもの)の他に、AWS MFA デバイスからの認証コード(第 2 の要素、つまりユーザーが持っているもの)を入力することが必要になります。このように複数の要素を組み合わせることによって、AWS アカウントの設定とリソースのセキュリティが強化されます。

http://aws.amazon.com/jp/iam/details/mfa/

二段階認証とも言われてますね。

上記のページを見ると、MFAを使うには、2パターンあることがわかります。
ひとつ目は、MFA用のハードウェアを購入する方法。
もう一つは、仮想MFAデバイスとして、自分のマシンにソフトウェアをインストールして使う方法。

いちいちハードウェアを買っていたら高いので、仮想デバイスとしてソフトをインストールしたいという人もいるかと思いますので、そういう人向けの記事です。

しかし、この「自分のマシン」として、公式ページで書かれているのが、Android、iPhone、Windows Phone,Blackberryなどのスマートフォンなんですね。
スマホを持っていない人がMFAを行うにはどうしたらいいのか、という点ですごく困りました。

PCにMFA用の仮想デバイスをインストールして使いたい。
その情報がどっかにないものか、と。

検索してもなかなか見つからず困っていたけれど、
「Amazon MFA github」で検索したら以下のページがヒットしました。
https://github.com/ecki/et-otp/wiki/Setting-up-Amazon-MFA

これは、jarファイルを実行するだけで、仮想MFAデバイスを立ち上げることができます。
つまり、Windows7だろうと、Windows8だろうと、Mac Book Airだろうと、Javaさえ動けば、これを使うことができます。

他にもこんな紹介ページがありました。
http://motp.sourceforge.net/#7


まず準備段階として、Javaが実行できるようにします。
Javaのインストール方法はこの記事の主題とはだいぶずれるので書きません。

以下のWebページで「github.com/ecki/et-otp/raw/gh-pages/et-otp-1.2.jar.」をクリックして、jarファイルをダウンロードします。
http://ecki.github.io/et-otp/

ダウンロードしたjarが適当なフォルダに置いておきましょう。
後で使います。


次に、ブラウザからIAMアカウントでログインします。

IAM > Users でUser Nameを選択。
下の方にあるManage MFA Deviceをクリックする。

f:id:sho322:20140609201441j:plain

以下のような画面が出てくるので、

f:id:sho322:20140609201448j:plain

「A virtual MFA device」

を選択する。

Continueを押すと、QRコードの画面が出てきますが、こいつは使いません。

「Show secret key for manual configuration」という文字列がありますが、これをクリックすると、手動入力用の文字列が出てきます。わかりづらいけど、

f:id:sho322:20140609201635j:plain

こいつを使います。

出てきた文字列はメモ(コピペ)しておきましょう。


で、次に上でダウンロードしたjarをコマンドプロンプトから実行します。

java -jar et-otp-1.2.jar

で、et-OTPが起動します。

f:id:sho322:20140609201526j:plain

et-OTPの画面の左上にある「et-OTP」という文字をクリックします。

そこで「settings」をクリックすれば、設定画面が出てきます。

f:id:sho322:20140609201819j:plain

そこの「Code(base32):」のところに、QRコードが出てきた画面で、「Show secret key for manual configuration」をクリックして表示された文字列をコピペします。
パスワードには任意の文字列を入れます。

それが設定し終わったら、et-OTPのメイン画面(最初の画面)で、上で設定したパスワードを入力して、「Calc」をクリックします。
すると、「Your Code」のところにMFAコードが出てくるので、ログイン画面のMFAコードに入力します。

f:id:sho322:20140609201839j:plain

これで、Windows7 PCでもAWSの多要素認証(=MFA)を実現することができました。


<オススメ書籍>

Amazon Web Services クラウドデザインパターン実装ガイド

Amazon Web Services クラウドデザインパターン実装ガイド

この本持ってるけど、色んなAWSの使い方が手順と一緒に載っててすごく役に立ちます。