プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

AWSをMFAで保護する

前回、AWSのサーバにログインできるようにしたところでそのままになっていましたが、管理者権限ユーザーは二段階認証で保護しておくべき。
そこで今回は、MFAを有効にするところまでやります。

ステップ0 前置き

AWSのサーバは、不正アクセス者が不正にアクセス権を取得して、人のアカウントでサーバを使われる、ということがこれまでも起こっているようです。
人のアカウントでサーバを立てて何をするの?と思ったら、ビットコインの採掘に使われたりするみたいなので、不正アクセスされるとガチでやばいかもしれません。
そこで今回はパスワードだけの認証は不安なので、MFAで保護することにします。

MFAとはMulti-Factor Authenticationのことで、複数要素認証という意味。
AWSではワンタイムパスワード端末を使って二段階認証が可能となっています。
AWSで使うワンタイムパスワード端末は数千円程度なので、高いというほどではないにせよただでサーバを立てようとしている人には余計な出費です。
そこでiPhoneAndroidを仮想ワンタイムパスワード端末として使うことができるアプリがあります。
その代表的なものがGoogle Autheticator。iPhoneAndroidの両方に対応しています。
今回はこれを使います。
また、説明の画面にはAndroidを使いますが、iPhone版も似たような画面構成になっていると思われます。

ステップ1 Google Autheticatorのインストール

まずはGoogle Autheticatorをインストールします。

AndroidならばGooglePlayのここから入手できます。↓
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=ja

iPhoneiTunesストアから入手できます。↓
https://itunes.apple.com/jp/app/google-authenticator/id388497605?mt=8
スクリーンショットは省略

ステップ2 AWS上でMFAを有効にする

AWSにサインインし、トップメニューから、Identity & Access Management(通称IAM)を選択します。

「ルートアカウントの MFA をアクティブ化」を選び、続いて「MFAの管理」を選びます。

「MFAデバイスの管理」が表示されたら、「仮想MFAデバイス」を選択して「次のステップ」をクリックします。

スマホにMFAで使うアプリがインストールされているかの確認なので「次のステップ」をクリックします。

すると、QRコードが表示されます。

ここでスマホ側のGoogle Autheticatorを起動します。
「アカウントの追加」で「バーコードをスキャン」を選択し、カメラでQRコードを読み取ります。

すると、AWSのアカウントIDとともに6桁の数字が表示されます。これがワンタイムパスワードになります。
この数字は30秒ごとに変化します。

ここでAWSの画面に戻って、認証コード1の欄にその6桁の数字を入力します。
そして、しばらく待って6桁の数字が変わったら、すぐに新しい6桁の数字を認証コード2の欄に入力します。

これでMFAの完了です。

なお、先ほどのQRコードは再び表示することはできないようです。
スマホ2台持ちしていて両方で使えるようにしたい場合にはどうするか?

1つめの方法は、一度MFAを無効化してから再度MFAを有効化する方法です。

2つめの方法は、QRコードスクリーンショットを保存しておいて、2台目の方に読み込ませる方法です。
ただし、QRコードスクリーンショットを厳密に管理しておく必要があります。
万一スマホをなくした場合に備えてバックアップとして画像をとっておくのもいいかもしれません。
ただし自己責任で。

ステップ3 MFAでサインインする

実際にAWSにMFAでサインインしてみます。
すでにサインインしている場合は、一度サインアウトします。
その後でサインインすると、いつものパスワード入力画面が出てきますので、ふつうにパスワードを入力します。

すると、次に「現在アクセスしようとしているページは、認証コードを用いてサインインする認証デバイスを持つユーザーが必要です。」と表示されます。
この認証コードの欄にGoogle Autheticatorに表示された6桁の数字を入力して、「サインイン(セキュリティシステムを使う)」をクリックします。

これでサインインできました。

パスワードを入力してから、認証コードの入力を終えるまで時間がかかると認証失敗になって再度パスワードの入力からはじまります。
あらかじめGoogle Autheticatorを起動しておいて、すばやく終えるとよいでしょう。何回かトライすればサインインできると思います。


また、Google Autheticatorを使っていて、スマホの機種変更などで別のスマホへの移行が必要な場合は以下の記事が参考になります。
http://www.atmarkit.co.jp/ait/articles/1412/12/news136.html

今回は以上です。