雑記帳
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ボタンを押す。
すると、MFAデバイスの種類を選択するダイアログが表示される。今回は、virtual MFA deviceを選択して次に進む。
MFAアプリのインストールについての説明が表示されるので次に進む。
QRコードが表示される。
ここでGoogle Authenticatorを起動して右下の+ボタンを押すと、トークンを追加する画面になる。
下の方にある、バーコードをスキャンボタンを押すとカメラが起動されるので、表示されているQRコードをスキャンする。
スキャンに成功すると、ワンタイムパスワードが表示されるようになる。
QRコードが表示されている下に、Authentication Code 1と2を入力できる項目があるので、Google Authenticatorに、今表示されている数字を入力する。左上にある円グラフのようなタイマーが一巡すると数字が新しくなるので、さっき入力した次に表示された数字を入力する。 問題なければ、これでMFAが使えるようになった。
ログイン
このアカウントで実際にログインしてみる。すでにパスワードが有効なIAMである必要があるので要確認。
IAMのDashboardに記載されているログインURLにアクセスする。
ユーザ名とパスワードを入力するフォームが表示されるので入力する。その次に、Authentication Codeを入力するフォームが現れるので、現在Google Authenticatorに表示されている数字を入力する。問題なければ、ログインできる。
これで、特定のIAMアカウントで、MFAを使うように設定できた。ログインするには、必ずデバイスに表示されるワンタイムパスワードを入力しなければならないので、仮にパスワードがもれたとしてもログインすることは難しくなる。
今回はテストのため、IAMアカウントで試してみたが、AWSアカウントでも同様に設定することができる。