AWSのSecurity Hubのチェック項目の一つとして、ルートユーザーにはハードウェアMFAを有効にすることが推奨されています。
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/iam-controls.html#iam-6
重要度も最も高い 非常事態(Critical) のため、個人利用のAWSアカウントでも対応しておきたいところです。
Security Hubのチェックでは他に
[IAM.9] ルートユーザーに対して MFA を有効にする必要があります
というものもあります。こちらのチェックはハードウェアではなく仮想MFAの利用であってもOKになります。重要度はこちらも非常事態(Critical)です。
Google Storeで販売されているTitan セキュリティ キーを使って、ハードウェアMFAを有効化しました。
ハードウェアMFAデバイスを登録する
ルートユーザーでログインし、
セキュリティ認証情報
をクリックします。MFA デバイスの割り当て
をクリックします。デバイス名を入力し、MFA deviceとして
Security Key
を選択します。ブラウザの画面がセキュリティキーの応答を待つ画面になります。
Windowsの機能でパスキーを選択するモーダルダイアログが表示されます。ウィザードに従い進めます。
セキュリティ キー
を選択します。初めてキーを使用する際にPINの設定が必要です。
セキュリティ キーをUSBポートに差し込みます。
セキュリティ キーが点滅を始めます。(ちょっとかっこいいです!)光っている部分に指をタッチします。特に指紋を読み取っているとかではなく、タッチをします。
ウィザードが終了すると、登録完了です。
ハードウェアMFAデバイスを使用してログインする
ルートユーザーのメールアドレスを入力、次の画面でパスワードを入力し通常通りログインします。
セキュリティ キーをUSBポートに差し込み、タッチします。
ログインできました。
その他
1つのセキュリティ キーは、1つのルートユーザー専用か??
同じセキュリティ キーを使って、2つのAWSアカウントのそれぞれのルートユーザーに対して設定とログインができました。
1つのルートユーザーに対して指定できるMFAデバイスは1つ??
ドキュメントによると、ルートユーザーとIAMユーザーに対して、最大8個のMFAデバイスの指定ができるようです。
セキュリティ キーは他の用途にも使える??
同一のセキュリティキーをIAM Identity CenterによるSSO時のMFAや、Googleアカウントのセキュリティキーとして設定ができました。
スマホの場合のログインは?
ユーザー名パスワード入力のあと、デバイスの認証が求められます。USBに接続しタッチすることで認証できます。(NFCにも対応しているはずなのですが、私の環境ではうまくいきませんでした)