こんにちは。植松です。

先日、AWSから以下の題名でメールが来ました。

[Action Required] Enable MFA on the root user of your account [AWS Account: XXXXXXXXX]

ルートアカウントのMFAを有効にしてくださいとのこと。

メール本文をみてみます。

Beginning July 16, 2024, AWS will require multi-factor authentication (MFA) for the root user of your AWS account when accessing the AWS Console. MFA is one of the simplest and most effective mechanisms to enhance the security of your accounts, and can be configured at no additional cost.

訳:2024年7月16日より、AWSはAWSコンソールにアクセスする際、AWSアカウントのルートユーザーに対して多要素認証(MFA)を要求するようになります。MFAは、アカウントのセキュリティを強化するための最もシンプルで効果的な仕組みの一つであり、追加費用なしで設定することができます。

〜中略〜

What happens if I do not enable MFA?
If you do not enable MFA for this account before July 16, 2024, you may be unable to access the AWS Console until you enable MFA. MFA is an important security control and one of our AWS IAM Security best practices, and we strongly encourage you to enable MFA now to add an additional layer of protection to your AWS Organizations management account.
訳:MFAを有効にしないとどうなりますか?

2024年7月16日までにこのアカウントのMFAを有効にしなかった場合、MFAを有効にするまでAWSコンソールにアクセスできなくなる可能性があります。MFAは重要なセキュリティコントロールであり、AWS IAM Securityのベストプラクティスの1つです。今すぐMFAを有効にして、AWS Organizations管理アカウントに追加の保護レイヤーを追加することを強くお勧めします。

・・・サラッと恐ろしいこと書いてますね。7/16までに対応しない場合コンソールにルートアカウントがアクセスできなくなるとは。
ルートアカウントにしかできないことがいくつかあって、請求情報はルートアカウントでしか閲覧ができないのもそのうちの一つです。
(設定変更でIAMユーザーも閲覧できますが、デフォルトだとルートアカウントしか閲覧できません)

その他にもアカウントの停止や請求情報の修正などはルートアカウントでしか行えなかったりするので、アクセスできなくなるのは非常に困ります。
ということで、弊社で管理しているAWSのアカウント全部を点検&未設定のものは設定を行いました。

AWS MFAの仕様について

MFAが設定有効なデバイスは以下になります。(記事執筆時点)

Authenticator app
Security Key
Hardware TOTP token

Security Key、Hardware TOTP tokenは物理デバイスが必要になるので、AWSから購入したりして用意する必要があります。
Authenticator appはお手持ちのスマホに認証アプリを入れて利用するタイプです。
詳細はこちら

MFA有効化の手順

1)お手持ちのスマホに認証アプリをインストール

Android、iOSでは以下のアプリが現状使えるようですので、お好きなアプリをインストールしてください。
Twilio Authy Authenticator、Duo Mobile、Microsoft Authenticator、Google Authenticator、Symantec VIP

2)AWSコンソールでMFA設定

MFA設定したいアカウント(今回はルートアカウントでした)でAWSコンソールにサインインします。

IAMのダッシュボードを表示すると、「セキュリティに関するレコメンデーション 」に「root ユーザーの MFA を追加する」と表示されています。
その横に「MFAを追加」ボタンがあるので、クリックします。
※ルートユーザー以外にも、作成したすべてのユーザーにMFAを設定することが可能です。IAM>アクセス管理>ユーザーから、設定したいユーザーを選択し、「セキュリティ認証情報」タブの「多要素認証 (MFA) 」>「MFAデバイスの割り当て」から可能です。

次にMFAデバイス名を任意で入力し、利用するデバイスを選択します。今回は「Authenticator app」を選択しました。

次の画面で表示されるQRコードをアプリで読み取り、アプリに表示されたMFAコード2つを入力し、「MFAを追加」をクリックしたら完了です。

設定したアカウントで再度AWSコンソールにサインインしユーザー名とパスワードを入力します。
MFA設定が正常に完了しているユーザーは、「MFA認証」画面に遷移します。
アプリに表示されているMFAコードを入力するとサインインができるようになります。

AWSのMFAはデバイスを使った認証になるので、認証に使うデバイスの取り扱いには要注意ですね。