Code Log

プログラミングの勉強メモを残していきます。

et-OTPを仮想MFAデバイスとして使い、AWSアカウントに二段階認証を必須に設定する


スポンサーリンク

AWSのセキュリティを強化したい人はたくさんいると思います。
特に、AWSのアカウントにログインされてしまうと、実際なんでもできてしまいます。
超高価なインスタンスを動かされてしまったり、動いているインスタンスを消されてしまったり。

そのようなセキュリティインシデントを防ぐためにも、MFA認証は必須に設定しておくのがいいでしょう。

以下の内容を紹介します。


MFA(Multi-Factor Authentication)とは何か?

Amazon Web Serviceの定義を引用します。

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

MFA は AWS アカウントに対して有効にすることも、そのアカウント内に作成した IAM ユーザに対して個別に有効にすることも可能です。また、MFA は AWS サービス API へのアクセスを制御するのにも使えます。

MFAを設定することで、メールアドレスとパスワードの認証に加えて、ワンタイムパスワードの入力が必要になります。
ワンタイムパスワードを生成するためには、その元となるSecret keyという長い文字列が必要で、それがバレない限り、他の人はログインすることができません。

で、ワンタイムパスワードを生成するためには、それ専用のハードかソフトが必要になります。
ここではet-OTPというソフトを紹介します。

AWSではiPhoneのアプリやAndroidのGeneratorなどが推奨されていますが、これらは会社によっては貸与されていない会社もあると思います。
そういう会社でも、Javaがあれば動くet-OTPは便利なのではないでしょうか。


et-OTPをダウンロードする

まずは、仮想MFAデバイスとして、et-OTPのjarをダウンロードしましょう。
http://ecki.github.io/et-otp/
「github.com/ecki/et-otp/raw/gh-pages/et-otp-1.2.jar.」
というリンクをクリックすればOKです。

落としてきたjarを以下のコマンドで実行します。

java -jar et-otp-1.2.jar

実行して、左上のet-OTPをクリック→settingで設定を行います。
ここにSecret Keyを打ち込むのですが、その前にAWSアカウント側でMFA認証が必要になるように設定しましょう。


AWSアカウントを多重認証必須にする

Services > IAM のDashboradを開きます。

「Activate MFA on your root account」をクリックします。

f:id:sho322:20140917105631j:plain

Next Stepをクリックしていきます。

f:id:sho322:20140917105641j:plain

次に、
If Your virtual MFA application scanning QR codes,・・・
みたいな文字がある画面が出てきます。

その画面の真ん中あたりにある、

「→ Show sercret key for manual configuration」

をクリックすると文字列が出てきますので、それをet-OTPのsettingsで出てくるCode (base32)にコピペしましょう。

f:id:sho322:20140917105736j:plain

Passwordは任意のもので構いません。

で、saveをクリックします。

次に、et-OTPのUnlock Passwordに、上で設定した任意のパスワードを入力します。

すると、Your CodeとNext Codeが1つずつ出てきますので、それらをAWSの設定画面のAuthentication Code1とAuthentication Code2に入力します。

それで次に進むと、MFA認証の設定が完了します。

一回ログアウトすると、次のログインから二段階認証が求められるようになります。

f:id:sho322:20140917105803j:plain

http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/GenerateMFAConfigAccount.html

認証を求められたら、再度et-OTPでパスワードを入力して、ワンタイムパスワードを生成しましょう。

Amazon Web Services 基礎からのネットワーク&サーバー構築

Amazon Web Services 基礎からのネットワーク&サーバー構築