«前の日記(2011-11-22 (Tue)) 最新 次の日記(2011-11-30 (Wed))» 編集

雑記帳


2011-11-29 (Tue) [長年日記]

[AWS] AWS Multi-Factor Authenticationを使う

AWS Multi-Factor Authentication(AWS多要素認証/AWS MFA)とは、ユーザがAWSにアクセスをする際に、通常のAWSアカウントとパスワードに加えて、利用者が物理的に所有している認証デバイスから有効な6桁の数字(ワンタイムパスワード)を使って認証する機能のこと。

AWS MFAでは、時間ベースのワンタイムパスワードを生成できるデバイスが使える。これは、RFC 4226がベースになっていて、現在ドラフトとなっているTime-based One-time Password Algorithmが元にとなっている。

AWSのページでは、物理デバイスをgemaltoから購入できるとしているが、これと同等の機能を持つGoogle Authenticatorという、iOSとAndroidで動作するアプリがあるので、それを使うことですぐにAWS MFAを始めることができる。

ということで、早速やってみることにする。

が、その前に注意点。AWS MFAをAWSアカウントで一旦有効にしてしまうと、自分の手では無効にできなくなる。無効にするには、問い合わせフォームからAWSに連絡をしなければならない。IAMアカウントであれば、管理者が無効にすることができるので、ちょっとお試しでやるのであれば、IAMアカウントで試すのが吉。

後日追記: 後に気がついたのだが、AWSアカウントで、MFAデバイスを無効化するには「セキュリティ証明書」のページで可能のようだ。デバイスを無効にして、MFAそのものも同時に無効にできる。

Google Authenticatorインストール

iOS版もしくはAndroid版を事前にインストールしておく。

IAMアカウントでMFAを有効にする

対象となるIAMアカウントの、Security Credentialsタブから、Manage MFA Deviceボタンを押す。

Manage MFA Deviceボタン

すると、MFAデバイスの種類を選択するダイアログが表示される。今回は、virtual MFA deviceを選択して次に進む。

Select virtual MFA device

MFAアプリのインストールについての説明が表示されるので次に進む。

MFA application

QRコードが表示される。

QRコード

ここでGoogle Authenticatorを起動して右下の+ボタンを押すと、トークンを追加する画面になる。

トークンを追加

下の方にある、バーコードをスキャンボタンを押すとカメラが起動されるので、表示されているQRコードをスキャンする。

スキャンに成功すると、ワンタイムパスワードが表示されるようになる。

ワンタイムパスワード

QRコードが表示されている下に、Authentication Code 1と2を入力できる項目があるので、Google Authenticatorに、今表示されている数字を入力する。左上にある円グラフのようなタイマーが一巡すると数字が新しくなるので、さっき入力した次に表示された数字を入力する。 問題なければ、これでMFAが使えるようになった。

ログイン

このアカウントで実際にログインしてみる。すでにパスワードが有効なIAMである必要があるので要確認。

IAMのDashboardに記載されているログインURLにアクセスする。

Sign In

ユーザ名とパスワードを入力するフォームが表示されるので入力する。その次に、Authentication Codeを入力するフォームが現れるので、現在Google Authenticatorに表示されている数字を入力する。問題なければ、ログインできる。

Authentication Codeを入力

これで、特定のIAMアカウントで、MFAを使うように設定できた。ログインするには、必ずデバイスに表示されるワンタイムパスワードを入力しなければならないので、仮にパスワードがもれたとしてもログインすることは難しくなる。

今回はテストのため、IAMアカウントで試してみたが、AWSアカウントでも同様に設定することができる。