AWS MFA の設定手順を徹底解説

はい、承知いたしました。AWS MFA(Multi-Factor Authentication:多要素認証)の設定手順について、約5000語の詳細な解説記事を作成します。


AWS MFA(Multi-Factor Authentication)の設定手順を徹底解説:あなたのAWS環境を不正アクセスから守る最強の盾

はじめに:なぜ今、AWS MFAが必須なのか?

インターネットが私たちの生活やビジネスに不可欠なインフラとなった現代において、サイバーセキュリティの重要性はかつてないほど高まっています。特にクラウドサービスは、企業の機密情報や顧客データ、そしてビジネスを支えるアプリケーションの根幹を担っており、そのセキュリティ対策は最優先事項と言えるでしょう。

クラウドコンピューティングのリーダーであるAmazon Web Services(AWS)は、そのセキュリティ設計において業界最高水準を目指していますが、AWS環境の最終的なセキュリティ責任の一部はユーザー側にもあります。 その最も基本的かつ決定的に重要な責任の一つが、アクセス認証情報の管理と保護です。

私たちがAWSにアクセスする際に使用する認証情報の代表例は、パスワードです。しかし、ご存知の通り、パスワードは様々な理由から容易に侵害される可能性があります。

  • 使い回し: 複数のサービスで同じパスワードを使用している場合、一つのサービスからパスワードが漏洩すると、他のサービスも危険に晒されます。
  • 推測されやすいパスワード: 誕生日、名前、簡単な単語などの推測されやすいパスワードは、攻撃者によって容易に破られます。
  • フィッシング詐欺: 偽のログインページに誘導され、パスワードを入力してしまうケースは後を絶ちません。
  • マルウェア: コンピュータに感染したマルウェアによって、キー入力が記録されパスワードが盗まれることがあります。
  • データ漏洩: サービス提供者側でのセキュリティ事故により、ユーザーのパスワードリストが流出する可能性があります。

これらのリスクから、パスワード単独での認証は、もはや十分なセキュリティ対策とは言えません。もし、あなたのAWSアカウントの認証情報が攻撃者の手に渡ってしまったらどうなるでしょうか?

  • 保存されている機密データが盗み見られたり、改ざんされたりする。
  • マルウェアの配布元やサイバー攻撃の踏み台として悪用され、加害者となる。
  • 仮想通貨のマイニングなど、大量の計算リソースを不正に使用され、身に覚えのない高額な請求が発生する。
  • 重要なシステムやサービスが停止させられ、ビジネスに壊滅的な被害が出る。

このような最悪の事態を防ぐために、AWSはMFA(Multi-Factor Authentication:多要素認証)の利用を強く推奨しています。 MFAは、パスワードという「知っていること」だけでなく、「持っているもの」や「あなた自身であること」といった別の要素を組み合わせることで、認証のセキュリティ強度を格段に向上させる仕組みです。たとえパスワードが漏洩しても、もう一つの認証要素がなければログインできないため、不正アクセスを防ぐことができます。

AWSにおけるMFAは、ログイン時のセキュリティを強化するための最も効果的かつ実装が容易な手段です。本記事では、AWS MFAの仕組み、種類、そしてAWSアカウント(ルートユーザー)およびIAMユーザー向けの詳細な設定手順について、徹底的に解説していきます。あなたのAWS環境を不正アクセスから守るための第一歩として、ぜひMFAの設定に取り組んでみてください。

AWS MFAとは何か?基本概念と仕組み

AWS MFAは、ログイン時に通常の認証情報(ユーザー名とパスワード)に加えて、MFAデバイスが生成する一時的な認証コード(ワンタイムパスワード:OTP)の入力を求めることで、アカウントへのアクセスを保護するセキュリティ機能です。

MFA(多要素認証)は、認証に必要な要素を3つのカテゴリのうち、2つ以上組み合わせて行う認証方式全般を指します。

  1. 知識情報 (Something you know): ユーザーだけが知っている情報。例: パスワード、PINコード、秘密の質問の答え。
  2. 所有情報 (Something you have): ユーザーだけが持っている物理的なもの。例: スマートフォン(認証アプリ)、ハードウェアトークン、物理キー。
  3. 生体情報 (Something you are): ユーザー自身の身体的特徴。例: 指紋、顔認識、声紋、虹彩認証。

AWS MFAでは、主に知識情報(パスワード)所有情報(MFAデバイス)を組み合わせて認証を行います。具体的には、AWSサインイン時に以下の2つが必要になります。

  • ユーザー名とパスワード
  • 関連付けられたMFAデバイスが生成する、その時点での有効な認証コード

これにより、攻撃者が万が一ユーザー名とパスワードを知ったとしても、そのユーザーに関連付けられたMFAデバイスを持っていなければ認証を完了できないため、不正なログインを試みてもブロックされる可能性が非常に高くなります。

AWS MFAで使用されるワンタイムパスワード(OTP)は、一般的にTOTP (Time-based One-Time Password) または HOTP (HMAC-based One-Time Password) 規格に基づいて生成されます。

  • TOTP: 現在時刻と共有シークレットキー(MFAデバイスとAWSの間で共有される秘密の情報)を基に、一定期間(通常30秒)ごとに新しいコードが生成されます。時間同期が重要になります。
  • HOTP: カウンター(認証試行ごとに増加する数値)と共有シークレットキーを基にコードが生成されます。連続してコードを入力する際に使用されることがあります。

AWSで利用可能なMFAデバイスは、これらの規格に対応しており、安全にワンタイムパスワードを生成・表示します。

AWS MFAデバイスの種類

AWSでは、いくつかの種類のMFAデバイスをサポートしています。それぞれに特徴があり、用途やセキュリティ要件に応じて選択できます。

  1. 仮想MFAデバイス (Virtual MFA Device)

    • 概要: スマートフォンやタブレットにインストールした認証アプリケーションを利用するMFAデバイスです。最も手軽で、多くのユーザーに利用されています。
    • 対応アプリ: Google Authenticator、Microsoft Authenticator、Authyなど、TOTP規格に対応した多くの認証アプリが利用可能です。
    • 仕組み: AWSコンソールで表示されるQRコードまたはセットアップキーを認証アプリで読み込むことで、AWSアカウントとアプリが関連付けられます。以降、アプリは一定時間(通常30秒)ごとに新しい6桁のコードを生成します。
    • メリット:
      • 無料で利用できる(アプリはApp StoreやGoogle Playで入手可能)。
      • 常に持ち歩いているスマートフォンを利用できるため、便利。
      • 一つのアプリで複数のAWSアカウントや他のサービスのMFAを管理できる場合がある。
    • デメリット:
      • スマートフォン自体がマルウェアに感染した場合、リスクがある(ただし、認証コード生成機能自体はオフラインでも動作することが多い)。
      • スマートフォンの紛失、破損、バッテリー切れで使用できなくなる可能性がある。
      • フィッシング耐性はハードウェアMFAデバイスに比べて低い場合がある(偽のログインページでパスワードとMFAコードの両方を要求されるリスク)。
      • 機種変更時の移行作業が必要になることがある。
    • 推奨されるケース: 個人ユーザーや、コストをかけずに手軽にMFAを導入したい場合に適しています。多くのIAMユーザーにとって標準的な選択肢となります。
  2. ハードウェアMFAデバイス (Hardware MFA Device)

    • 概要: 専用の物理デバイスを利用するMFAデバイスです。仮想MFAデバイスよりもセキュリティ強度が高いとされる場合があります。
    • 種類:
      • FIDOセキュリティキー (FIDO Security Key): USBポートやNFC、Bluetoothなどでコンピュータやスマートフォンに接続して使用する物理キー(例: YubiKey, Titan Security Key)。FIDO Allianceが推進する新しい認証規格「FIDO」または「WebAuthn」に基づいています。
      • ジェネリックハードウェアTOTPトークン (Generic Hardware TOTP Token): 以前から存在する、小型ディスプレイに6桁のコードが表示されるタイプの物理トークン。RSA SecurIDなどが有名ですが、AWSはOATH TOTP互換のジェネリックなトークンをサポートしています。ただし、AWSは特定のメーカーを推奨していません。
    • FIDOセキュリティキーの特徴:
      • フィッシング耐性: ログインしようとしているサイトの正規性を検証する仕組みがあるため、偽のサイトで誤って認証情報を入力してしまうリスクを大幅に減らせます。これは仮想MFAやジェネリックハードウェアTOTPトークンにはない大きなメリットです。
      • 操作の簡便さ: デバイスを挿入したり、タッチしたりするだけで認証が完了する場合が多く、コードを入力する手間が省けます。
    • ジェネリックハードウェアTOTPトークンの特徴:
      • オフラインでコードを生成。
      • 電池切れや破損のリスクがある。
      • デバイス自体の購入費用がかかる。
    • メリット:
      • 物理デバイスであるため、マルウェアの影響を受けにくい(FIDOキーはさらに高いセキュリティを提供)。
      • 特にFIDOキーはフィッシングに対する耐性が高い。
      • ルートユーザーなど、最高度のセキュリティが求められるアカウントに適している。
    • デメリット:
      • デバイス自体の購入費用がかかる。
      • 持ち歩く必要がある。
      • 紛失した場合のリカバリーが複雑になる場合がある。
    • 推奨されるケース: AWSアカウントのルートユーザー、高い権限を持つIAMユーザー、または組織全体としてより強固なセキュリティポリシーを求める場合に適しています。特にフィッシング耐性を重視する場合はFIDOセキュリティキーが推奨されます。

AWSでは、ルートユーザーには少なくとも仮想MFAまたはハードウェアMFA(推奨はハードウェアMFA、特にFIDOセキュリティキー)を設定することを強く推奨しています。また、IAMユーザーにも同様にMFAを設定し、可能であれば全てのユーザーにMFAを強制するポリシーを適用することが、AWS環境全体のセキュリティレベルを飛躍的に向上させます。

次のセクションでは、これらのMFAデバイスを実際にAWSアカウントに設定する手順について、詳細に解説していきます。

AWS MFAの設定手順(IAMユーザー向け)

まずは、日常的にAWSを利用するIAMユーザー向けにMFAを設定する手順を解説します。この手順は、IAM管理者またはMFAを設定したいIAMユーザー自身が行います(ただし、ユーザー自身がMFAを設定するには、MFAデバイス管理に関する適切なIAM権限が必要です)。ここでは、IAMユーザー自身が自分のアカウントにMFAを設定するケースを想定して説明します。

前提条件:

  • AWSアカウントにIAMユーザーとしてサインインできること。
  • 使用したいMFAデバイス(スマートフォンと認証アプリ、またはハードウェアMFAデバイス)を準備していること。

全体的な流れ:

  1. AWSマネジメントコンソールにサインインします。
  2. IAMコンソールに移動します。
  3. MFAを設定したいIAMユーザーを選択します。
  4. セキュリティ認証情報のセクションでMFAデバイスを割り当てます。
  5. 選択したMFAデバイスの種類に応じてセットアップを行います。

それでは、具体的な手順を見ていきましょう。

ステップ 1: AWSマネジメントコンソールにサインインする

  • 普段利用しているIAMユーザーとして、AWSマネジメントコンソールにサインインします。
  • サインインURLは通常、https://<your_account_id>.signin.aws.amazon.com/console または https://<your_alias>.signin.aws.amazon.com/console の形式です。

ステップ 2: IAMコンソールに移動する

  • サインイン後、画面上部の検索バーに「IAM」と入力し、表示された「IAM」を選択するか、左上のサービス一覧から「Security, Identity, & Compliance」の下にある「IAM」を選択して、IAMコンソールに移動します。

ステップ 3: MFAを設定したいIAMユーザーを選択する

  • IAMコンソールのナビゲーションペイン(画面左側)で、「Users」(ユーザー)を選択します。
  • 表示されたユーザーリストの中から、MFAを設定したいユーザー名をクリックします。これにより、そのユーザーの詳細画面が表示されます。

ステップ 4: セキュリティ認証情報タブを選択する

  • ユーザーの詳細画面が開いたら、上部にあるタブの中から「Security credentials」(セキュリティ認証情報)を選択します。
  • このタブには、パスワード、アクセスキー、MFAデバイスなどのセキュリティ関連情報が表示されます。

ステップ 5: MFAデバイスの割り当てを開始する

  • 「Security credentials」タブを下にスクロールすると、「Assigned MFA device」(割り当てられたMFAデバイス)という項目があります。
  • 初期状態では、「None assigned」(割り当てられていません)と表示されているはずです。
  • 「Assign MFA device」(MFAデバイスの割り当て)ボタンをクリックします。

ステップ 6: MFAデバイスのセットアップウィザードを開始する

  • 「Manage MFA device」(MFAデバイスの管理)という新しいウィンドウが開きます。
  • ここで、MFAデバイスに付ける名前(例えば「MyVirtualMFA」など)を入力できます。これは必須ではありませんが、複数のMFAデバイスを登録する場合などに識別しやすくなります。
  • 次に、使用するMFAデバイスの種類を選択します。
    • Virtual MFA device (仮想MFAデバイス)
    • Hardware MFA device (ハードウェアMFAデバイス – Generic TOTP token または FIDO Security Key)
  • 選択したら、「Continue」(続行)をクリックします。

ここから先は、選択したMFAデバイスの種類によって手順が分かれます。

仮想MFAデバイスの設定手順(IAMユーザー向け)

仮想MFAデバイスを選択した場合の手順です。

ステップ 6-1: 仮想MFAデバイスを選択し続行

  • 前のステップで「Virtual MFA device」を選択し、「Continue」をクリックします。

ステップ 6-2: 仮想MFAデバイスのセットアップ

  • 「Set up virtual MFA device」(仮想MFAデバイスのセットアップ)画面が表示されます。
  • この画面には、QRコード(大きな四角い画像)と、「Show secret key for manual configuration」(手動設定用のシークレットキーを表示)というリンクが表示されます。
  • スマートフォンの認証アプリ(Google Authenticator, Authyなど)を開きます。
  • アプリで新しいアカウントを追加する機能(通常は「+」ボタンなど)を選択し、「Scan a QR code」(QRコードをスキャン)または類似のオプションを選びます。
  • スマートフォンのカメラで、AWSコンソールに表示されているQRコードを読み取ります。
  • QRコードが読み取れない場合や、手動で設定したい場合は、「Show secret key for manual configuration」をクリックして表示されるテキスト形式のシークレットキーを、認証アプリで手動入力します。
  • 重要: 認証アプリが正常にセットアップされると、AWSアカウント名(またはユーザー名)と、6桁のコードが表示されるようになります。このコードは30秒ごとに更新されます。

ステップ 6-3: MFAコードの入力と割り当て

  • AWSコンソールの「Set up virtual MFA device」画面に戻ります。
  • 「Enter MFA code 1」(MFAコード 1 を入力)と「Enter MFA code 2」(MFAコード 2 を入力)という2つの入力フィールドがあります。
  • 認証アプリに表示されている現在の6桁のコードを「Enter MFA code 1」に入力します。
  • 認証アプリのタイマーが更新され、新しい6桁のコードが表示されるのを待ちます(通常30秒以内)。
  • 表示された新しいコードを「Enter MFA code 2」に入力します。
  • なぜ2つのコードが必要なのか? これは、AWSのシステムとあなたの認証アプリの間の時間同期が正しく行われていることを確認するためです。連続する2つのコードが正しく認識されれば、以降は時間同期が取れていると判断されます。
  • 両方のコードを入力したら、「Assign MFA」(MFAの割り当て)をクリックします。

ステップ 6-4: 設定完了の確認

  • MFAデバイスの割り当てが成功すると、「Success」メッセージが表示されます。
  • ユーザー詳細画面の「Security credentials」タブに戻ると、「Assigned MFA device」の項目に、割り当てられたMFAデバイスの種類(Virtual MFA device)と、設定したMFAデバイス名(またはデフォルトの名前)が表示されていることを確認できます。

これで、このIAMユーザーに対する仮想MFAデバイスの設定は完了です。次回サインインする際には、パスワードに加えて、この認証アプリが表示するMFAコードの入力が求められるようになります。

ハードウェアMFAデバイスの設定手順(IAMユーザー向け)

ハードウェアMFAデバイス(ジェネリックTOTPトークンまたはFIDOセキュリティキー)を選択した場合の手順です。

ステップ 6-1: ハードウェアMFAデバイスを選択し続行

  • 前のステップで「Hardware MFA device」を選択し、「Continue」をクリックします。

ステップ 6-2: ハードウェアMFAデバイスのタイプを選択

  • 「Set up hardware MFA device」(ハードウェアMFAデバイスのセットアップ)画面が表示されます。
  • ここで、使用するハードウェアデバイスのタイプを選択します。
    • Generic hardware TOTP token (ジェネリックハードウェアTOTPトークン)
    • FIDO security key (FIDOセキュリティキー)
  • 選択したら、「Continue」をクリックします。
ジェネリックハードウェアTOTPトークンの場合
  • 「Serial number」(シリアル番号)入力フィールドが表示されます。お持ちのハードウェアTOTPトークンに表示されているシリアル番号を入力します。
  • 「Enter MFA code 1」(MFAコード 1 を入力)と「Enter MFA code 2」(MFAコード 2 を入力)という2つの入力フィールドが表示されます。
  • ハードウェアトークンが表示する現在の6桁のコードを「Enter MFA code 1」に入力します。
  • トークンが表示する次の6桁のコード(通常30秒後に更新されるか、ボタンを押すなどで生成)を「Enter MFA code 2」に入力します。
  • 両方のコードを入力したら、「Assign MFA」(MFAの割り当て)をクリックします。
  • 設定完了の確認は仮想MFAと同様です。
FIDOセキュリティキーの場合
  • 「Set up FIDO Security Key」(FIDOセキュリティキーのセットアップ)画面が表示されます。
  • 「Security Key Name」(セキュリティキーの名前)を入力できます(例えば「MyYubiKey」など)。
  • 「Register security key」(セキュリティキーを登録)ボタンをクリックします。
  • ブラウザからセキュリティキーへのアクセス許可を求めるダイアログが表示されます。許可します。
  • コンピュータのUSBポートにFIDOセキュリティキーを挿入するように指示されます。挿入します。
  • デバイスによっては、デバイス上のボタンやセンサーに触れるように求められます。指示に従って操作します。
  • 登録が成功すると、デバイス名が表示され、「Assign MFA」(MFAの割り当て)ボタンがクリックできるようになります。クリックします。
  • 設定完了の確認は仮想MFAと同様です。

これで、このIAMユーザーに対するハードウェアMFAデバイスの設定は完了です。次回サインインする際には、パスワードに加えて、ハードウェアMFAデバイスを使用した認証が求められるようになります(TOTPトークンならコード入力、FIDOキーならデバイスの操作)。

AWSアカウント(ルートユーザー)向けMFA設定手順

AWSアカウント作成時に最初に作成されるユーザーがルートユーザーです。ルートユーザーはAWSアカウントに対する全ての権限を持っており、AWS上のあらゆるリソースにアクセスし、設定を変更できます。このため、ルートユーザーの認証情報は最も厳重に保護されなければなりません。 もしルートユーザーが侵害された場合、アカウント全体が乗っ取られる危険性があります。

AWSは、ルートユーザーにMFAを設定することを強く、強く推奨しています。 可能であれば、仮想MFAよりも物理的なハードウェアMFAデバイス、特にフィッシング耐性の高いFIDOセキュリティキーの使用が推奨されます。

ルートユーザーのMFA設定手順は、IAMユーザーの場合と似ていますが、アクセスする場所が少し異なります。

前提条件:

  • AWSアカウントのルートユーザーとしてサインインできること。
  • 使用したいMFAデバイスを準備していること。

全体的な流れ:

  1. AWSマネジメントコンソールにルートユーザーとしてサインインします。
  2. アカウント設定ページに移動します。
  3. セキュリティ設定のMFAセクションでMFAデバイスを有効化します。
  4. 選択したMFAデバイスの種類に応じてセットアップを行います。

それでは、具体的な手順を見ていきましょう。

ステップ 1: AWSマネジメントコンソールにルートユーザーとしてサインインする

  • AWSのサインインページ (https://aws.amazon.com/console/) にアクセスします。
  • 「Root user」(ルートユーザー)を選択し、AWSアカウント作成時に使用したメールアドレスを入力して「Next」をクリックします。
  • パスワードを入力してサインインします。

ステップ 2: アカウント設定ページに移動する

  • サインイン後、画面右上のアカウント名(通常はメールアドレス)をクリックします。
  • ドロップダウンメニューから「Account」(アカウント)を選択します。

ステップ 3: セキュリティ設定のMFAセクションに移動する

  • アカウント設定ページが開いたら、下の方にスクロールすると「Security preferences」(セキュリティ設定)というセクションがあります。
  • このセクションに「Multi-factor authentication (MFA)」という項目があります。
  • 初期状態では、「Disabled」(無効)と表示されているはずです。
  • 「Assign MFA device」(MFAデバイスの割り当て)ボタンをクリックします。

ステップ 4: MFAデバイスのセットアップウィザードを開始する

  • 「Manage MFA device」(MFAデバイスの管理)という新しいウィンドウが開きます。
  • IAMユーザーの場合と同様に、MFAデバイスに名前を付けることができます。
  • 使用するMFAデバイスの種類を選択します。
    • Virtual MFA device (仮想MFAデバイス)
    • Hardware MFA device (ハードウェアMFAデバイス – Generic TOTP token または FIDO Security Key)
  • 選択したら、「Continue」(続行)をクリックします。

ここから先の手順は、選択したMFAデバイスの種類によって分かれ、IAMユーザーの場合とほぼ同じです。

仮想MFAデバイスの設定手順(ルートユーザー向け)

ステップ 4-1: 仮想MFAデバイスを選択し続行

  • 「Virtual MFA device」を選択し、「Continue」をクリックします。

ステップ 4-2: 仮想MFAデバイスのセットアップ

  • 「Set up virtual MFA device」画面が表示され、QRコードとシークレットキーが表示されます。
  • スマートフォンの認証アプリを開き、AWSコンソールのQRコードをスキャンするか、シークレットキーを手動入力してセットアップします。
  • 認証アプリにAWSアカウント名(または「Root Account」など)と6桁のコードが表示されることを確認します。

ステップ 4-3: MFAコードの入力と有効化

  • AWSコンソールの「Set up virtual MFA device」画面に戻ります。
  • 認証アプリが表示する現在の6桁のコードを「Enter MFA code 1」に入力します。
  • 次に認証アプリが表示する新しい6桁のコードを「Enter MFA code 2」に入力します。
  • 両方のコードを入力したら、「Assign MFA」(MFAの割り当て)をクリックします。

ステップ 4-4: 設定完了の確認

  • MFAデバイスの割り当てが成功すると、「Success」メッセージが表示されます。
  • アカウント設定ページの「Security preferences」セクションに戻ると、「Multi-factor authentication (MFA)」の項目が「Enabled」(有効)と表示され、割り当てられたMFAデバイスの種類が表示されていることを確認できます。

これで、ルートユーザーに対する仮想MFAデバイスの設定は完了です。次回ルートユーザーとしてサインインする際には、パスワードに加えて、この認証アプリが表示するMFAコードの入力が求められるようになります。

ハードウェアMFAデバイスの設定手順(ルートユーザー向け)

ハードウェアMFAデバイスを選択した場合の手順です。ルートユーザーには、仮想MFAよりもハードウェアMFA、特にFIDOセキュリティキーが推奨されます。

ステップ 4-1: ハードウェアMFAデバイスを選択し続行

  • 「Hardware MFA device」を選択し、「Continue」をクリックします。

ステップ 4-2: ハードウェアMFAデバイスのタイプを選択

  • 「Set up hardware MFA device」画面が表示されます。
  • 「Generic hardware TOTP token」または「FIDO security key」を選択し、「Continue」をクリックします。
ジェネリックハードウェアTOTPトークンの場合(ルートユーザー向け)
  • お持ちのハードウェアTOTPトークンのシリアル番号を入力します。
  • トークンが表示する現在の6桁のコードを「Enter MFA code 1」に入力します。
  • トークンが表示する次の6桁のコードを「Enter MFA code 2」に入力します。
  • 両方のコードを入力したら、「Assign MFA」をクリックします。
  • 設定完了の確認は仮想MFAと同様です。
FIDOセキュリティキーの場合(ルートユーザー向け)
  • セキュリティキーの名前を入力します。
  • 「Register security key」ボタンをクリックします。
  • ブラウザからのアクセス許可と、デバイスの挿入、タッチなどの指示に従います。
  • 登録が成功したら、「Assign MFA」をクリックします。
  • 設定完了の確認は仮想MFAと同様です。

これで、ルートユーザーに対するハードウェアMFAデバイスの設定は完了です。次回ルートユーザーとしてサインインする際には、パスワードに加えて、ハードウェアMFAデバイスを使用した認証が求められるようになります。

ルートユーザーのMFAデバイスに関する重要な注意点:

  • ルートユーザーは日常的な操作には使用せず、IAMユーザーを作成して日々の作業を行うのがベストプラクティスです。そのため、ルートユーザーに設定したMFAデバイスは頻繁に使用しません。
  • MFAデバイスは安全な場所に保管してください。 特にハードウェアMFAデバイスは物理的なキーなので、紛失や盗難に十分注意が必要です。
  • ルートユーザーのパスワードとMFAデバイスの両方を失うと、アカウントへのアクセス復旧が非常に困難になります。 最悪の場合、アカウントにアクセスできなくなる可能性もあります。リカバリープロセスは複雑で時間もかかるため、MFAデバイスはパスワードとは別の、非常に安全な場所に保管することが極めて重要です。
  • ルートユーザーには、仮想MFAとハードウェアMFAの両方を登録するなど、複数のMFAデバイスを設定しておくことも可能です。これにより、一方のデバイスを紛失した場合でも、もう一方のデバイスでサインインできる可能性が高まり、リカバリープロセスが容易になります。

セキュリティベストプラクティスとMFAの管理

MFAを設定するだけでなく、効果的に運用するためにはいくつかのベストプラクティスがあります。

1. すべてのIAMユーザーにMFAを強制する

組織でAWSを利用する場合、特定の特権を持つユーザーだけでなく、可能な限りすべてのIAMユーザーにMFAを強制することが推奨されます。IAMポリシーを使用して、MFAで認証されていないユーザーからの特定のAPIアクション(例えば、EC2インスタンスの起動、S3バケットへの書き込みなど、リスクの高い操作)を拒否することができます。

MFA強制ポリシーの例(IAMポリシーのJSON形式):

json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessIfMfaPresent",
"Effect": "Allow",
"Principal": "*",
"Action": "서비스:액션", // 許可したいサービスとアクションを指定
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "true"
}
}
},
{
"Sid": "DenyAccessIfNotMfaPresent",
"Effect": "Deny",
"Principal": "*",
"Action": "서비스:액션", // MFAがない場合に拒否したいサービスとアクションを指定 (Allowと同じかそれ以上の範囲)
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
}
}
}
]
}

このポリシーでは、Condition要素のaws:MultiFactorAuthPresentキーを使用しています。このキーは、リクエストを行ったユーザーがMFAで認証されたかどうかを示します。"true"ならMFAあり、"false"ならMFAなしです。

  • AllowAccessIfMfaPresent ステートメント: aws:MultiFactorAuthPresent"true" (MFAあり) の場合に、指定されたアクションを許可します。
  • DenyAccessIfNotMfaPresent ステートメント: aws:MultiFactorAuthPresent"false" (MFAなし) の場合に、指定されたアクションを拒否します。

このポリシーをユーザー、グループ、またはロールにアタッチすることで、MFAなしでの高権限操作を制限できます。MFA強制ポリシーを導入する際は、まず監査を行い、段階的に適用することをおすすめします。また、IAMユーザーがMFAデバイスを自分で設定できるように、MFAデバイス管理に関する権限を付与するポリシーも別途必要になる場合があります。

2. MFAデバイスの管理とセキュリティ

  • 物理的な管理: ハードウェアMFAデバイスは、パスワードとは別の場所に安全に保管してください。仮想MFAの場合、スマートフォン自体に十分なセキュリティ対策(画面ロック、生体認証など)を施してください。
  • 譲渡の禁止: MFAデバイスは個人の所有物であり、他人に貸し借りしたり、譲渡したりしないでください。認証情報の共有はセキュリティリスクを高めます。
  • 定期的な確認: 設定しているMFAデバイスがまだ有効であり、正しく動作しているか定期的に確認してください。

3. MFAデバイスの紛失、交換、無効化

MFAデバイスを紛失したり、新しいデバイスに交換したり、MFAが不要になったりした場合、適切な手続きが必要です。

  • IAMユーザーの場合:
    • 自分でMFAデバイスを無効化/再設定: IAMユーザー自身にMFAデバイスの管理権限が付与されている場合、IAMコンソールの自分のユーザーページから、現在割り当てられているMFAデバイスを削除し、新しいデバイスを再度設定できます。
    • 管理者に依頼: 通常は、IAM管理者またはアカウント管理者にMFAデバイスのリセット(無効化)を依頼します。管理者はIAMコンソールから対象ユーザーのMFAデバイスを削除し、ユーザーは新しいデバイスを再設定できるようになります。
    • MFAデバイスを紛失してサインインできない場合: IAM管理者に連絡し、MFAデバイスをリセットしてもらってください。管理者はMFAなしでサインインできる権限を持っているか、ルートユーザーに依頼してリセットしてもらう必要があります。
  • ルートユーザーの場合:
    • MFAデバイスを紛失してサインインできない場合: これは最も深刻なケースです。AWSが提供するアカウント復旧プロセスに従う必要があります。これは通常、本人確認のためのいくつかの手順(アカウント情報、請求情報、過去のサポートケースなど)を含み、AWSサポートとの連携が必要になります。非常に時間と手間がかかるため、ルートユーザーのMFAデバイス紛失は避けるべき事態です。複数のMFAデバイスを登録しておくことが、このリスクを軽減する有効な手段です。
    • MFAデバイスを交換したい場合: ルートユーザーとしてサインインできる状態であれば、アカウント設定ページから既存のMFAデバイスを削除し、新しいデバイスを再設定できます。

4. ルートユーザーMFAの特別な扱い

前述のように、ルートユーザーは特別な権限を持つため、そのMFAデバイスも特別に扱う必要があります。

  • 日常業務ではルートユーザーを使用しないこと。
  • ルートユーザーにMFAを必ず設定すること。
  • ルートユーザーのMFAデバイス(特にハードウェアキー)は、パスワードとは別の、非常に安全な場所(例えば会社の金庫など)に保管すること。
  • 緊急時にルートユーザーとしてサインインする必要がある場合に備え、MFAデバイスの保管場所と使用方法を少数の信頼できる人物と共有することを検討する(ただし、共有に伴うリスクを理解した上で慎重に行うこと)。
  • 複数のMFAデバイスを登録しておくことを強く推奨。

これらのベストプラクティスを実践することで、MFAの効果を最大限に引き出し、AWS環境のセキュリティを堅牢に保つことができます。

よくある質問 (FAQ) とトラブルシューティング

MFAの設定や使用中に遭遇する可能性のある一般的な問題とその解決策について説明します。

Q1: MFAコードを入力しても「無効です」と表示されてログインできません。

A1: 最も一般的な原因は、MFAデバイス(スマートフォンやハードウェアトークン)とAWSサーバーの間で時間が同期していないことです。

  • 仮想MFA(スマートフォン)の場合:
    • スマートフォンの日付と時刻の設定が「自動」になっているか確認してください。手動設定になっていると、時間ずれが発生しやすくなります。多くの認証アプリはスマートフォンのシステム時刻に依存しています。
    • 一部の認証アプリには、時間同期を修正する機能があります(例: Google Authenticatorの「時刻調整のためのコード」設定)。試してみてください。
    • スマートフォンを再起動してみるのも有効です。
  • ハードウェアMFA(TOTPトークン)の場合:
    • ハードウェアトークンは電池で動作しており、電池残量が少なくなると時刻がずれることがあります。電池切れの場合はデバイスを交換する必要があります。
    • デバイス自体に時間調整機能がない場合がほとんどです。時間ずれが頻繁に発生する場合は、新しいデバイスへの交換や、仮想MFAへの切り替えを検討してください。
  • 全般:
    • コードの入力間違いがないか再度確認してください。
    • 連続して2つのコードを求められる場合は、時間内に正確に新しいコードが生成されるのを待ってから入力してください。
    • それでも解決しない場合は、MFAデバイスのリセット(管理者に依頼するか、ルートユーザーの場合はアカウント復旧プロセス)が必要になる可能性があります。

Q2: MFAデバイスを紛失してしまいました。どうすればサインインできますか?

A2:

  • IAMユーザーの場合: 所属する組織のAWS管理者またはIAM管理者に連絡し、あなたのIAMユーザーのMFAデバイスをリセット(無効化)してもらう必要があります。リセット後、MFAなしでサインインできるようになり、新しいMFAデバイスを再設定できます。
  • ルートユーザーの場合: 残念ながら、サインインページから直接MFA設定を解除することはできません。AWSが提供する「MFA デバイスを紛失した場合」のアカウント復旧プロセスに従う必要があります。このプロセスは、アカウントの所有者であることを証明するためのいくつかの手順を含み、AWSサポートの支援が必要です。非常に時間と手間がかかるため、ルートユーザーのMFAデバイスは厳重に管理することが必須です。複数のMFAデバイスを登録しておくと、一方を失ってももう一方を使用できるため、このリスクを軽減できます。

Q3: IAMユーザー全員にMFA設定を強制したいのですが、どうすればいいですか?

A3: IAMポリシーを使用して、MFAで認証されていないユーザーによる特定のアクションを拒否することができます。例えば、以下のポリシーをユーザーまたはグループにアタッチすると、MFAなしではEC2インスタンスの起動や停止などの操作ができなくなります。

json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAllUsersToAuthenticateWithMFA",
"Effect": "Allow",
"Action": "iam:ListUsers", // MFA設定に必要な最低限のアクション(例として)
"Resource": "*"
},
{
"Sid": "DenyAccessIfNoMFA",
"Effect": "Deny",
"NotAction": [ // MFAがなくても許可するアクション(例えば、MFA設定関連のアクション)
"iam:CreateVirtualMFADevice",
"iam:EnableMFADevice",
"iam:ResyncMFADevice",
"iam:ListMFADevices",
"iam:DeleteVirtualMFADevice",
"iam:DeactivateMFADevice",
"sts:GetSessionToken" // 一時的な認証情報取得など、MFA関連で必要になる場合があるアクション
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
}
}
}
]
}

このポリシーは、MFAが有効になっていない ("aws:MultiFactorAuthPresent": "false") 場合に、NotActionで指定されたアクション以外の全てのアクションを拒否します。NotActionには、MFAを設定するために必要な最小限のアクションを含めます。これにより、ユーザーはMFAを設定するまでほとんど何もできなくなり、MFA設定を促すことができます。このポリシーはあくまで一例であり、実際の要件に合わせてカスタマイズが必要です。より詳細なMFA強制ポリシーの実装については、AWS公式ドキュメントを参照してください。

Q4: 一つのAWSアカウントに複数のMFAデバイスを登録できますか?

A4: はい、ルートユーザーの場合、最大8つのMFAデバイスを登録できます。IAMユーザーの場合、最大1つの仮想MFAデバイスと最大1つのハードウェアMFAデバイス(合計2つ)を登録できます。

ルートユーザーには、複数のMFAデバイス(例えば、スマートフォンの仮想MFAと物理的なFIDOセキュリティキーの両方)を登録しておくことを強く推奨します。これにより、一方のデバイスを紛失したり故障したりした場合でも、もう一方のデバイスを使用してサインインし、アカウントにアクセスできなくなるリスクを大幅に減らすことができます。

Q5: ハードウェアMFAデバイスはどこで購入できますか?

A5: AWSは特定のメーカーを推奨していませんが、Amazonなどのオンラインストアや、専門のコンピュータ機器販売店などで購入できます。FIDOセキュリティキーとしては、YubiKeyやTitan Security Keyなどが有名で、AWSで利用可能です。ジェネリックTOTPトークンも様々なメーカーから販売されています。購入前に、お使いのデバイス(コンピュータやスマートフォン)のポートと互換性があるか確認してください。

まとめ:AWS MFAで強固なセキュリティを

本記事では、AWS MFAの重要性、種類、そしてAWSアカウント(ルートユーザー)およびIAMユーザー向けの詳細な設定手順を解説しました。

AWS MFAは、パスワード認証の弱点を補強し、不正アクセスからあなたのAWS環境を守るための、最も効果的かつ基本的なセキュリティ対策です。その設定は比較的容易であり、仮想MFAデバイスを利用すればコストもかかりません。しかし、そのセキュリティ向上効果は計り知れません。

特に、全ての権限を持つAWSアカウントのルートユーザーには、MFA設定が必須です。可能であれば、フィッシング耐性の高いハードウェアMFAデバイス、特にFIDOセキュリティキーの利用を強く推奨します。さらに、複数のMFAデバイスを登録しておくことで、紛失時のリスクを大幅に軽減できます。

IAMユーザーについても、業務でAWSを利用する全てのユーザーに対してMFAを適用することが、組織全体のセキュリティレベルを高める上で極めて重要です。IAMポリシーを活用してMFA利用を強制する仕組みを導入することで、セキュリティを仕組みとして担保できます。

サイバー攻撃の手法は日々進化しており、セキュリティ対策に終わりはありません。しかし、MFAは、その進化する脅威に対抗するための、依然として非常に有効な第一防衛線となります。

この記事が、あなたのAWS環境のセキュリティを強化するための一助となれば幸いです。ぜひ今日から、AWS MFAの設定と適切な運用を開始し、安心してAWSをご利用ください。


注意点:
* 本記事は一般的な情報提供を目的としており、特定の環境におけるセキュリティコンサルティングを提供するものではありません。
* AWSのサービス仕様やコンソールの画面UIは変更される可能性があります。設定時には最新のAWS公式ドキュメントも併せて参照してください。
* セキュリティ対策は多層的に行うことが重要です。MFAは認証レイヤーのセキュリティを強化しますが、他のセキュリティ対策(ネットワークACL、セキュリティグループ、IAM権限の最小化、モニタリング、暗号化など)も適切に実施する必要があります。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール