WinAuthを使ってMFAを設定してみた

2016.06.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。
くコ:彡がトレードマークの阿部です。

Windowsで使えるWinAuthを使って、IAMユーザーにMFAを設定してみました。

MFAとは?

AWSアカウントやIAMユーザーでAWSマネジメントコンソールにログインする場合、ユーザー名とパスワードによる認証を行います。
AWS Multi-Factor Authentication(MFA)を使うと、ユーザー名とパスワードの認証に加えて、MFAデバイスが発行するワンタイムパスワードを使った認証を行う事が出来ます。

MFAは物理デバイスや、スマートフォンにインストールする仮想MFAアプリケーションを利用出来ます。
AWS公式ページを確認したところ、仮想MFAアプリケーションとして、スマートフォン用のアプリの例が紹介されていました。
物理デバイスを用意するほどではないが、スマートフォンは用意出来ない。なんて事もあるのではないでしょうか。
Windowsで動作するWinAuthを使ったMFAを試してみましたので、ご紹介します。

MFA設定手順

WinAuthのダウンロード

WinAuthのページにアクセスします。
Downloadを選択し、zipファイルをダウンロードします。

1

zipファイルの中身は、WinAuth.exeです。

2

MFA設定

AWSマネジメントコンソールにログインし、IAM画面にアクセスします。
左メニュー[ユーザー]からMFAデバイスを有効化するユーザーを選択し、[認証情報]タブ中の[MFAデバイスの管理]を押下します。

5

[仮想MFAデバイス]を選択して、[次のステップ]に進みます。

6

AWS MFAと互換性のあるアプリケーションをインストールしておく必要がある旨のメッセージが表示されます。
WinAuthがあるので、大丈夫ですね。[次のステップ]に進みます。

7

QRコードが表示されます。
MFAデバイスとしてスマートフォンを使う場合は、QRコードを読み込む形になります(アプリケーションが対応している場合)。
今回は、[手動設定のシークレットキーを表示]を選択します。

8

シークレット設定キーが表示されるので、コピーします。
画面キャプチャではマスクしていますが、ランダムな文字列が表示されています。

9

展開しておいたWinAuth.exeを実行し、Addを選択します。
リストが表示されるので、[Google]を選択します。

4

Nameは適当なものを入力します。
シークレット設定キーをペーストし、[Verify Authenticator]を選択すると、6桁の数字が表示されます。

10

AWSマネジメントコンソールに戻ります。6桁の数字を認証コード1に入力します。
しばらく待つと別の6桁の数字が表示されるので、認証コード2に入力し、[仮想MFAの有効化]を選択します。
AWSマネジメントコンソールを使った設定は以上です。

11

WinAuthで[OK]を選択すると、Protection画面に進みます。
WinAuthを起動した際に、パスワードを求めるようにする事が出来ます。
[Protect with my own password]を選択し、パスワードを入力します。

12

[OK]を選択すると、ワンタイムパスワードが表示されます。

13

MFAを使ったIAMユーザーのログイン

MFAを有効にしたIAMユーザーで、AWSマネジメントコンソールにログインしてみます。
IAMユーザー用のログインページにアクセスし、ユーザー名、パスワードを入力します。

14

[サインイン]を選択すると、MFAコードの入力画面に移ります。
WinAuthで表示される6桁の数字を入力してみます。

15

[送信]を選択すると、AWSマネジメントコンソールに接続出来ました!

16

WinAuthのパスワード保護機能

MFAを[Add]する際に、[Protect with my own password]を有効にしました。
どんな動きをするのか確認しておきましょう。WinAuthを終了し、再実行してみます。
パスワードの入力を求められました。
パスワードを入力すると、ワンタイムパスワードを表示する画面に遷移します。

17

参考

おわりに

WinAuthを使ったMFA設定を行いました。
実作業としては、2,3分でMFAを利用出来るようになりました。
またWinAuthにはパスワード保護機能があり、他人の不正利用を軽減出来る事がわかりました。

MFAを設定していないかたは、この機会にご検討下さい。
ルートアカウントや変更権限のあるIAMユーザーへのMFA設定は必須と言えるかと思います。

では、また!