こんにちは、かつコーチです。
前回の記事で「ルートユーザーは日常作業に使わない方がいい」とお伝えしました。
では実際にはどうすればいいのかというと、答えはIAMユーザーを作成して、そちらで日常的な作業を行うことです。
この記事では、作業用IAMユーザーの作成手順と、不正利用を防ぐためのMFA設定について、実際の画面操作に沿って解説します。
私自身、IAMユーザーへの切り替えを後回しにしていた結果、前回紹介した警告に気づくまで数週間ルートユーザーを使い続けてしまいました。
今日この記事を読んで作業すれば、その数週間分の遠回りをせずに済みます。
IAMとMFAとは?
IAMユーザーの基本的な考え方
IAM(Identity and Access Management、AWSの権限管理の仕組みです)は、社員証と入退室権限に例えるとイメージしやすいです。
会社では、社員一人ひとりに社員証が発行され、その社員証によって「入れる部屋」と「入れない部屋」が決まっています。
AWSでも同じように、IAMユーザー(AWSの操作を行うための個別のアカウントです)ごとに、アクセスできるサービスや操作範囲を細かく設定できます。
ルートユーザーがマスターキーだとすれば、IAMユーザーは「決められた部屋にだけ入れる社員証」だとイメージしてください。
なぜMFAが必要なのか
MFA(Multi-Factor Authentication、多要素認証。パスワードに加えてもう一つの認証要素を求める仕組みです)は、パスワードだけの認証よりも格段に安全性が高くなります。
仮にパスワードが漏洩してしまっても、スマホの認証アプリがなければログインできないため、不正利用のリスクを大きく減らせます。
「ルートユーザーだけMFAを設定すれば十分では?」と思うかもしれませんが、それは誤解です。
日常的にログインするのはIAMユーザーであり、攻撃者が狙うのもそのIAMユーザーの認証情報です。
そのため、ルートユーザーとIAMユーザーの両方にMFAを設定することが、AWSの公式ベストプラクティスとしても強く推奨されています。
実装手順
手順1:管理者権限を持つIAMユーザーを作成する
ルートユーザーでサインインした状態で、IAMのコンソールを開きます。
- マネジメントコンソールの検索窓で「IAM」と入力してサービスを開く
- 左メニューから「ユーザー」→「ユーザーを作成」を選択
- ユーザー名を入力する(例:
katsu-admin) - 「AWS Management Consoleへのユーザーアクセスを提供する」にチェックを入れる
- パスワードは「自動生成パスワード」または任意のパスワードを設定
- 「次回のサインイン時に新しいパスワードの作成が必要」にチェックを入れる
手順2:ポリシーをアタッチして権限を付与する
ユーザー作成の途中で、権限の設定画面が表示されます。
学習段階では、以下のように管理者権限を付与するのが手軽です。
- 「アクセス許可を設定」で「ポリシーを直接アタッチする」を選択
AdministratorAccessポリシーを検索してチェック- 「次へ」から作成を完了する
ポリシー名: AdministratorAccess
説明: AWSのすべてのサービス・リソースへのフルアクセスを許可する
AdministratorAccess はルートユーザーに近い強力な権限です。
学習中はこれで問題ありませんが、実務でチーム運用する場合は、必要な権限だけに絞った独自ポリシーを使うのが基本です(ポリシーの書き方は別記事で扱います)。
手順3:作成したIAMユーザーでサインインする
ユーザー作成後、以下の情報が表示されるので必ず控えておきます。
- サインインURL(
https://[アカウントID].signin.aws.amazon.com/consoleの形式) - ユーザー名
- 初期パスワード
このURLからサインインし、初回ログイン時に新しいパスワードを設定すれば準備完了です。
手順4:IAMユーザーにMFAを設定する
MFAの設定手順は、ルートユーザーのときとほぼ同じです。
- IAMユーザーでサインインした状態で、右上のユーザー名から「セキュリティ認証情報」を開く
- 「多要素認証(MFA)」→「MFAデバイスの割り当て」をクリック
- デバイス名を入力(例:
katsu-admin-mfa) - 認証方法として「認証アプリ」を選択
- スマートフォンにインストールしたGoogle AuthenticatorやAuthyなどのアプリでQRコードを読み取る
- アプリに表示される6桁のコードを、連続する2回分入力する
- 「MFAの追加」をクリックして完了
設定が完了すると、次回以降のログイン時にパスワードに加えて6桁のコード入力が求められるようになります。
つまずきやすい設定・注意点
- IAMユーザー名は、後から変更しにくいので分かりやすい名前を最初に決めておく
- MFAアプリをインストールしたスマホを紛失した場合に備えて、複数の復旧手段(別デバイスへの再設定手順など)を事前に確認しておく
AdministratorAccessは強力な権限なので、共用PCなどではログイン状態を放置しない
よくあるつまずきポイント・エラー対処
2つ目の認証コードでMFAの登録が失敗する
❌ Before:1つ目のコードだけ入力してすぐ次に進もうとする
私が実際にMFAを設定したとき、最初の1回目のコードを入力してすぐ「完了」を押そうとして、次のようなエラーに遭遇しました。
Invalid authentication code. Please generate a new one and try again.
原因を調べてみると、AWSのMFA設定では「連続する2つの認証コード」を入力する必要があり、1つ目を入力した直後にコードが切り替わってしまうタイミングで焦って2つ目を入力していたことが原因でした。
認証アプリのコードは30秒ごとに切り替わるため、タイミングがずれると簡単に失敗します。
✅ After:1つ目のコードが表示されてすぐ入力し、切り替わりを待って2つ目を入力する
対処法はシンプルで、1つ目のコードを入力したら、画面のカウントダウンを見ながら次のコードに切り替わるのを待ち、切り替わった直後に2つ目を入力することです。
焦らず時間に余裕を持って作業すれば、まず失敗しません。
私はこのエラーで3回ほどやり直しましたが、仕組みを理解してからは1分もかからずに設定できるようになりました。
応用・一歩先の使い方
グループを使った権限管理への発展
IAMユーザーが1人だけの個人開発では意識しにくいですが、複数人で作業する場合は、ユーザーに直接ポリシーをアタッチするのではなく、IAMグループ(複数のユーザーをまとめて権限管理する仕組みです)を使うのが基本です。
「開発者グループ」「閲覧のみグループ」のように役割ごとにグループを作り、そこにユーザーを所属させることで、権限管理がシンプルになります。
この考え方は、次回以降の記事「IAMの仕組み:ユーザー・グループ・ロール・ポリシーの関係」で詳しく扱います。
ハードウェアMFAデバイスの選択肢
スマホアプリによる仮想MFAのほかに、YubiKeyのような物理的なハードウェアMFAデバイスを使う方法もあります。
特に重要なアカウントを運用する場合は、スマホの紛失リスクを避けるためにハードウェアデバイスを検討する価値があります。
まとめ
この記事のポイント
- IAMは「社員証と入退室権限」に例えられる、AWSの権限管理の仕組み
- 日常作業は管理者権限を持つIAMユーザーで行い、ルートユーザーは温存する
- MFAはルートユーザーだけでなく、IAMユーザーにも必ず設定する
- MFAの認証コードは30秒で切り替わるため、焦らず入力するのがコツ
次に読むべき記事
- 予算アラートと無料枠管理で高額請求を防ぐ方法
- IAMの仕組み:ユーザー・グループ・ロール・ポリシーの関係
タグ: AWS, 初心者向け, セキュリティ