WinAuthを使ったMFA(多要素認証)設定方法 - 新マネコンUI版

記事タイトルとURLをコピーする

みなさんこんにちは!
クラウドコンサルティング課の滝澤です。

担当しているプロジェクトでMFAでWinAuthを使うことがあり、弊社のブログを見ていたのですが、 3年前の記事となっておりマネジメントコンソールのUIもアップデートされているので再度ブログを書くことにしました。

過去の記事はこちら

blog.serverworks.co.jp

WinAuthダウンロード

まず、WinAuthを公式ページからダウンロードします。 winauth.github.io

現在の最新バージョンであるWinAuth 3.5.1 (2016-06-07)をダウンロードします。
WinAuth 3.5.1のと書いてあるリンクをクリックするとWinAuth-3.5.1.zipがダウンロードされます。

WinAuthのダウンロード画面

MFA仮想デバイス設定

ダウンロードしたWinAuth-3.5.1.zipをインストールするWindows PCの任意の場所で展開し、フォルダ内のWinAuth.exeをダブルクリックで実行します。
「Add」ボタンから、「Authenticator」を選択します。

Windows PC側でのWinAuthの操作1

続いて、AWS側の設定を行います。 AWSマネジメントコンソールにログインし、右上のユーザーを選択します。
「セキュリティ認証情報」を選択します。

マネジメントコンソールでの操作1

多要素認証(MFA)で、「MFAデバイスの割り当て」を選択します。
※後述しますが、MFA関連の操作許可ポリシーが付与されていない場合、「MFAデバイスの割り当て」は実行できません。

マネジメントコンソールでの操作2

MFAデバイスを選択画面で、デバイス名とデバイスオプションを選択します。
今回WinAuthを登録するため、「認証アプリケーション」を選択します。

マネジメントコンソールでの操作3

デバイスの設定画面で②の「シークレットキーを表示」を選択し、表示されたシークレットキーをコピーします。
ここでコピーしたシークレットキーをWinAuth側で使用します。

マネジメントコンソールでの操作4

WinAuthに戻り、Add Authenticator画面で「Name」に任意のデバイス名を設定します。
1. Enter the Secret Code for your authenticator. ~の入力フォームに前の手順でコピーしたシークレットキーを入力します。

Windows PC側でのWinAuthの操作2

2. Choose if this is a time-based or a counter-based authenticator.でTime-basedのラジオボタンを選択します。

Windows PC側でのWinAuthの操作3

「Verify Authenticator」を押下すると、4. Verify the following code matches your service.にワンタイムパスワードが表示されるのでコピーします。
コードは30秒で変わってしまうので注意してください。

Windows PC側でのWinAuthの操作4

AWSマネジメントコンソールに戻り、前の手順でコピーしたワンタイムパスワードを③の「仮想アプリケーションのコードを以下で入力してください」に入力します。
30秒経過したのち、WinAuthで生成された新しいワンタイムパスワードを同様に「30秒待ってから、2つ目のコードエントリを入力してください。」に入力します。
入力が完了したら「MFAを追加」を押下します。

マネジメントコンソールでの操作5

正常に割り当てが完了すると「割り当て済みのMFAデバイス」が表示され、多要素認証(MFA)に追加したMFAデバイスが表示されます。

マネジメントコンソールでの操作6

以上でWinAuthでのMFA仮想デバイスの追加が完了となります!

サインイン確認

設定したMFA仮想デバイスでサインインができるか確認しましょう!
通常通り、サインインを行うとMFAのコード入力が求められるので、WinAuthに表示された6桁のコードを入力します。
「Sign In」を押下します。

ワンタイムパスワードでサインインを行う画像

問題なくログインできたことが確認できましたね!

マネジメントコンソールにログインした画像

以上でWinAuthを使ったMFAでのサインインは完了です!

MFAデバイス関連の操作許可ポリシーについて

さて、「MFAデバイスの割り当て」手順でMFA関連の操作許可ポリシーが付与されていない場合、「MFAデバイスの割り当て」は実行できませんと記載しました。
具体的には、以下のような権限が必要となりますので、AWS管理者へ連絡して付与してもらうか、ご自身で権限を付与してください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUserToCreateVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "Sid": "AllowUserToManageTheirOwnMFA",
            "Effect": "Allow",
            "Action": [
                "iam:EnableMFADevice",
                "iam:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowUserToDeactivateTheirOwnMFAOnlyWhenUsingMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice"
            ],
            "Resource": [
                "arn:aws:iam::*:user/${aws:username}"
            ],
            "Condition": {
                "Bool": {
                    "aws:MultiFactorAuthPresent": "true"
                }
            }
        },
        {
            "Sid": "BlockMostAccessUnlessSignedInWithMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ListUsers",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}

上記ポリシーでは、MFAデバイスの操作を許可するポリシーとMFAが有効になっていない場合ほとんどの操作を拒否するポリシーとなっています。
AWSのDocsにも記載があるので参考にしてください。 docs.aws.amazon.com

まとめ

WinAuthのMFAデバイス登録をやってみましたがいかがだったでしょうか?昨今のセキュリティではMFAが必須となっている場合がほとんどだと思います。
Google AuthenticatorやMicrosoft Authenticatorとさまざまなものがありますが、Windows端末の場合はWinAuthが選択肢になってくる場合もあると思います。

ただし、MFAの本質を考えた場合、PCにMFAアプリがインストールされているとPCを紛失/盗難された場合、アクセスされてしまう可能性が高くなるので、
可能であれば、スマートフォンなど別の端末へのMFAアプリのインストールを推奨します。

この記事が誰かの役に立つと幸いです。

kento.takizawa(記事一覧)

妻と娘をこよなく愛すエンジニア