Knowledge Stones

フリーランスエンジニアの技術ブログです。

AWS ルートアカウントのMFA(多要素認証)を有効にする

AWSのアカウントを作成したら早めにやっておこう

AWSにおけるルートユーザーアカウントは、AWS IAMの管理ができて、リソースへのフルアクセスが可能なアカウント。

もし乗っ取られたら・・・ユーザーは抹殺され、リソースは蹂躙され、完全に支配されてしまうでしょう。

なので、AWSのベストプラクティスに従ってMFAを有効化してみようという記事です。

 

AWS Trusted Adviserを使用して、セキュリティ設定の最適化推奨事項がみられますが、AWSアカウントを登録してIAMユーザーを1つ作成した時点で下図のようになっています。

f:id:polar_bear_tech:20190627183813p:plain

重要なチェック事項として「ルートアカウントのMFA」が挙げられています。
これに対応していきます。

 

手順の概要

ざっくり下記の流れです。

  • MFAに使用できるアプリをスマホにインストールする
  • ルートユーザーアカウントでサインイン
  • IAMダッシュボードからセキュリティ認証情報設定画面へ
  • MFAの有効化を選択する
  • MFAアプリを使用してQRコードを読み取り、連携設定をする

 

ルートユーザーアカウントのMFAを有効化する

まず、AWSコンソールにルートユーザーアカウントでログインして、IAMのダッシュボードを開きます。

IAMユーザーの作成やポリシー設定などは既に行ったうえで、Warningマークがついている「ルートアカウントのMFAを有効化」項目を開き、ボタンをクリックします。

f:id:polar_bear_tech:20190627184108p:plain

すると、「セキュリティ認証情報」という画面に移動しますので、「多要素認証(MFA)」項目を開き、ボタンをクリックします。

f:id:polar_bear_tech:20190627184354p:plain

ポップアップ画面が表示されるのでで、MFA認証デバイスの登録を行っていきます。
今回使用するのは、仮想MFAデバイスなので、一番目の項目を選択。

f:id:polar_bear_tech:20190627184549p:plain


ここでQRコードの表示とMFAコードの入力項目が出てきます。
QRコードの表示」をクリックして表示させましょう。

f:id:polar_bear_tech:20190627184708p:plain

 

MFAに使用するアプリケーションのインストール・設定

ページ下部の参考リンクにAWSの公式ページを載せました。
サポートされている仮想MFAアプリケーションの中から、「Authy 2段階認証」を使用したいと思います。

f:id:polar_bear_tech:20190627182803p:plain

 

アプリケーションを実行して、基本設定をしましょう。
電話番号やメールアドレスの登録と、SMSによる番号認証があります。

基本設定が完了したら、+マークからアカウントを追加します。

f:id:polar_bear_tech:20190627183033p:plain

QRコードの読み取り画面に移るので、先ほどAWSコンソールに表示させたQRコードを読み取りましょう。

f:id:polar_bear_tech:20190627185139p:plain

読み取ると、アカウントの情報をバックアップするための画面へ移ります。

例えばスマホをなくした、壊れたというときに、取り込んでいたアカウントの情報が一緒になくなってしまい、MFA認証できなくなった!となると詰んでしまうので、
ここでパスワードをかけてバックアップできるようです。

f:id:polar_bear_tech:20190627185427p:plain

次に、アカウント情報に名前とアイコンを付けます。
カギマークをタップすると、アイコンの選択肢が出てきますので、「Amazon Web Service」を選ぶと、他のMFA認証を追加していく際に判別しやすくできますね!

アカウント名は任意でよいかと思います。

f:id:polar_bear_tech:20190627185623p:plain
f:id:polar_bear_tech:20190627185627p:plain

設定が完了するとおもしろいポップアップ。
Authyを使って2段階認証を設定しました!という情報をシェアしませんか?という。

f:id:polar_bear_tech:20190627185957p:plain


もちろんエンジニア映えするのでTweetしました。

 

そして認証コードが表示されるようになりました!
一時的な番号なので張ってもオッケー。

f:id:polar_bear_tech:20190627190256p:plain

 

AWSコンソールにMFAデバイスを登録する(仕上げ)

最後に、AWSコンソール側にMFAコードを入力します。

コードは30秒で切り替わりますが、連続2回分のMFAコードを入力すればOKです。

f:id:polar_bear_tech:20190627184708p:plain

 

「MFAの割り当て」ボタンをクリックして、完了!

f:id:polar_bear_tech:20190627190818p:plain

 

動作確認

一度サインアウトして、うまく設定できているか確認しましょう。
できたらサインインのフローとして下図のような入力画面が増えます。

f:id:polar_bear_tech:20190627190730p:plain

 

Trusted Adviser先生のお怒りは静まったかな・・・?

f:id:polar_bear_tech:20190627190859p:plain

静まりたもうた。

 

終わりに

AWSは1年間無料枠があって、気軽に体験できるようになっているけど、
気軽に使い始めた時にセキュリティ周りを設定していないと、万が一ってこともある。

ぶっちゃけ始めてAWS触ってみた時はこんな設定存在も知らなかったのでやっていなかった。

これを設定するきっかけは、Trusted Adviser先生の存在を知ったことと、AWSのベストプラクティスを軽く学習したおかげだった。

セキュリティ設定は甘く見ないで丁寧にやっていかねばと心に刻んだ次第です。

 

参考

MFAに関するAWSのページ
https://aws.amazon.com/jp/iam/details/mfa/