AWSアカウントrootMFAの設定のすゝめ(Day1対応)

# 目次

[1.はじめに](#1-はじめに)
[2.MFAって何？](#2-MFAって何？)
[3.MFAできる設定の種類](#3-MFAでできる設定の種類)
[4.使用する拡張機能-GoogleAuthenticator](#4-使用する拡張機能-GoogleAuthenticator)
[5.拡張機能を使用するメリット、デメリット](#5-拡張機能を使用するメリットデメリット)
[6.おわりに](#6-おわりに)


# 1. はじめに

こんにちはまだ駆け出していないエンジニアのたきたです。
AWSのrootへのMFAが2024年の半ば頃にMFAの設定が強制されるということが発表された（※１）ようなので、MFAの設定についての記事を書いていきたいと思います。

前にSI案件で関わったお客様で、MFAの設定方法がわからないよって手順が欲しいよって方が結構いらっしゃったイメージがあるので、このページ見せてこのように設定すればできますよって説明できるようにするのがこの記事のゴールです。

＜ご参考＞
（※１）[Secure by Design: AWS to enhance MFA requirements in 2024](https://aws.amazon.com/jp/blogs/security/security-by-design-aws-to-enhance-mfa-requirements-in-2024/)

# 2. MFAって何？

MFAは、多要素認証（Multi-Factor Authentication）の略で、2つ以上の認証手段を組み合わせてアカウントの安全を確保するセキュリティ手法です。

一般的には、以下の3つの要素から2つ以上を組み合わせたことを言っている認識です。
（複数から選択なので多要素とか言っている）

- 知識情報 (自分が知っているもの): パスワードやPINコードとIDを組み合わせて使用。
- 所持情報 (自分が持っているもの): スマートフォンやセキュリティトークンを使用。
- 生体認証情報 (自分自身の身体的な特徴など): 指紋や顔認証、虹彩認証（映画とかで見るかっこいいやつ）など。

こんな種類があるんだなーくらいでみていただければと思います。

AWSで今回設定するのはこの所持情報ってものです。
知識情報については、アカウントへログインするときに使用するIAMのパスワードやアカウントIDなどを指していてログインできることを前提としています。そのため、今回の説明からは省きます。

# 3. AWSのMFAできる設定の種類
AWS (Amazon Web Services) では、MFAを利用することで、アカウントとリソースへのアクセスセキュリティを強化できるため、設定することを推奨しています。

AWSにおけるMFA設定の種類は主に以下の3つがあります。

- 仮想MFAデバイス
スマートフォンやタブレット、コンピュータなどにインストールされたアプリを利用して、MFA認証をすることができます。
今回ご紹介するGoogle AuthenticatorなどのMFA対応アプリを利用することで設定することができます。

- U2Fセキュリティキー
Universal 2nd Factor (U2F) セキュリティキーは、物理的なデバイスをコンピュータのUSBポートに接続し、MFAとして設定、利用することができます。

- ハードウェアMFAデバイス
専用のハードウェアデバイスを使用して、MFA認証を設定することができます。
AWSでは、GemaltoなどのハードウェアMFAデバイスが利用することができます。

今回は仮想MFAデバイスとやらを設定していきたいと思っています。

# 4. 使用する拡張機能-GoogleAuthenticator

個人的にPC内で完結すると楽なので今回設定で紹介するものは、chromeの拡張機能の「Google Authenticator」を使用します。


さて、本題のMFA設定です。

#### （１）以下を拡張機能で追加する

[拡張機能「google authenticator」](https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai/related?utm_source=ext_app_menu
)

インストールするとこんな感じ

![スクリーンショット 2023-10-29 16.30.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/979430f9-d30e-abf9-c143-9daed6413e9d.png)

※右の拡張機能部分に追加されていることを確認してください。

次はコンソールに入ってrootにMFAを設定していきます。

#### （２）サービス検索欄に「IAM」と入力する

![スクリーンショット 2023-10-29 16.31.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/a411c804-409e-2843-793c-b2103854bf99.png)

IAMが出てきましたね！IAMをクリックしてダッシュボードへ遷移してください！

![スクリーンショット 2023-10-29 16.31.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/eb852cde-7002-2fce-ba36-811409ac8f1c.png)

#### （３）rootのMFAを設定していない場合、ダッシュボードの先頭にセキュリティに関するレコメンデーションの欄に設定が出てくるので、「MFAを追加」を押下する

![スクリーンショット 2023-10-29 16.32.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/57796201-d350-04e8-4efe-aca5fe5c42d6.png)

こんな感じの画面が出てきます。
デバイス名は、自分がこのOTPだとわかるような任意のデバイス名を命名してあげてください。

・デバイス名を入力
・Authenticator appを選択

上記をして「次へ」を押下してください

![スクリーンショット 2023-10-29 16.32.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/7cfb4929-3144-bc9c-eb45-363101bf4b1a.png)

#### （４）QRコードを表示して読み込ませる

次へを押下後、以下のような画面に遷移してくるので、QRコードを表示して読み込みましょう！

![スクリーンショット 2023-10-29 16.33.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/f9bc5667-6955-322e-19a2-c8fcb0ea5038.png)

chromeの右上のAuthenticatorを押下すると以下のような画面が出てきます。

![スクリーンショット 2023-10-29 16.33.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/e3992279-3a47-b3fa-7d22-cd7c3128c9d9.png)

右上のペンマークの隣にある四角の枠見たいなものを押下してください。
押下すると以下の画像のような画面になるので、表示したQRコードをクリック＆ドラックで読み込ませます。

![スクリーンショット 2023-10-29 16.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/0e926db2-7d69-da12-bf09-051e2b1fbad9.png)


読み込まれるとこんな感じになります。↓↓↓↓

![スクリーンショット 2023-10-29 16.34.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/a870be32-1dea-f98e-c8f4-627afd2b8e84.png)

これで読み込みは完了です。

#### （5）MFAコード１、２に表示されたコードを入力する

・OTPに１２３４５６が表示されていたとしたら、それを１の方に入力します。
・その後時間経過で変わった次のOTP（ワンタイムパスワード）を２の方へ入力します。
＜例＞
最初のOTP：１２３４５６（MFAコード１）
次のOTP：６５４３２１（MFAコード２）

入力を終えたら、MFAの追加をして完了です！

![スクリーンショット 2023-10-29 16.35.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/69064dbf-09cb-615a-4847-e5bd85f2c0ea.png)

こんな感じで追加されているのがわかります。


#### （おまけ）ブラウザでコピーペーストを許可しておきましょう

MACだと以下のような画面がでます。
（たしかwindowsだと左上あたりにポップアップが出たような気がします・・・）

許可を選択！！！！！！！

![スクリーンショット 2023-10-29 16.34.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572821/709ea467-3b4a-eda5-fe43-a8e1a6a5437c.png)

完了！！！！！！


# 5. 拡張機能を使用するメリット、デメリット

この拡張機能を利用するメリットデメリットについてご紹介します。

◾️メリット
- PC一台でMFA認証が完結する。
いちいちスマホのロックを解除してアプリを開いてなど、煩わしい作業が減ります。
またOTP（ワンタイムパスワード）をコピペできるので簡単に入力できる。

- MFA認証のデバイスを複数使わないため、複数のアカウントにログイン可能（スイッチロールできない場合など）

この拡張機能ひとつで複数のアカウントに設定できるので、このアカウントはこのOTPのアプリとかスマホを開かなきゃ、みたいなことがなくなります。
※アプリ側でも複数登録できるので、統一した方が利便性があがると思われます。もちろんデメリットも存在します


◾️デメリット
- セキュリティ観点で利便性と堅牢性はトレードオフ

セキュリティ観点から、利便性と堅牢性はトレードオフである点をご留意ください。
パソコン一台で完結するということは、もしパソコンを紛失した際は、不正ログインをされてしまう可能性があります。

私パソコン落としちゃうかもって方は、スマホのアプリ版の方で設定ください。
アプリ版の設定方法は今回ご紹介しませんが、いろんな方が記事を書いていると思うのでそちらを参照くださいませ。

またセキュリティ要件を確認していただくのが一番いいかと思います。

# 6. おわりに

今回はAWSのrootアカウントに対するMFAの設定でした。
rootを使わないようにすることが、本当はいいのですがそう言ったことができない状況もあるでしょう。

また、まだMFA設定が終わっていないというお客様がいたら今のうちからご連絡しておく方が楽になるかと思います！

手順書代わりになればいいなと思い記載したので、是非是非使っていただければ幸いです！