← ハンズオン一覧に戻る

AWS Hands-on / Identity

作業用ユーザーを作り、二段階認証で守る

最初に手に入れた「ルートユーザー」は、何でもできてしまう特別な存在です。普段の作業には、必要な権限だけを持った「IAM ユーザー」を作って使い、さらに二段階認証(MFA)でログインを守ります。AWS を安全に使い始めるための、いちばん大切な土台づくりです。

● Lv.1 AWS を触りはじめた人 ⏱ 所要 25〜45 分 すべてコンソールで完結
01 — Prerequisites

はじめる前に

  • 必須AWS アカウントを持っていること(最初に作った「ルートユーザー」でサインインできること)
  • 必須スマートフォンに認証アプリを入れられること(例:Google Authenticator、Microsoft Authenticator など。無料)
  • あると良い「ID とパスワード」「二段階認証(ワンタイムコード)」を、他のサービスで使ったことがある

※ このハンズオンは すべてコンソールだけで完結します。IAM は地域(リージョン)に依存しないグローバルなサービスなので、リージョンの指定は不要です。

02 — References

参照する公式ドキュメント

手順に迷ったときや、用語の意味を確かめたいときに開きましょう。

※ リンク切れの場合は、ページタイトルで検索してください。

03 — Background

背景・シナリオ

AWS アカウントを作ると、最初にルートユーザーという管理者でサインインできます。これは何でもできてしまう、いちばん強い権限を持つ存在です。便利ですが、その分とても危険でもあります。もしルートのパスワードが漏れたら、アカウントごと乗っ取られてしまいます。

そこで AWS では、ルートユーザーは普段使わずに大切にしまっておき、日々の作業は「IAM ユーザー」で行うことが強くすすめられています。IAM ユーザーは、必要な権限だけを持たせた作業用の身分証のようなものです。さらに、ログインを二段階認証(MFA)で守ると、たとえパスワードが漏れても、手元のスマホがなければ入れなくなります。今回は、この「作業用ユーザー+二段階認証」を作ります。

ルートと IAM ユーザーは、何が違うの?

ルートは「アカウントの親鍵」で、すべてを操作でき、止めることもできません。IAM ユーザーは「必要なドアだけ開けられる合鍵」です。普段は合鍵で作業し、親鍵は金庫にしまっておく——というイメージです。

二段階認証(MFA)って何?

「パスワード(知っているもの)」に加えて、「スマホに表示されるワンタイムコード(持っているもの)」の 2 つがそろって初めてログインできる仕組みです。片方(パスワード)が漏れても、もう片方(スマホ)がなければ入れないので、ぐっと安全になります。

Goal

必要な権限を付けた IAM ユーザーを 1 つ作成し、二段階認証(MFA)を有効化する。最後にいったんサインアウトし、その IAM ユーザーで、パスワードとワンタイムコードを使ってサインインできることを確認する。

04 — Architecture

つくる構成

「何でもできるルート」はしまっておき、「必要な権限だけの作業用ユーザー」を普段使いにします。そのユーザーのログインを、パスワード+ワンタイムコードの二段階で守ります。

ルートユーザー

アカウントの親鍵
(普段は使わない)

  • 何でもできてしまう(止められない)
  • 漏れるとアカウントごと危険
  • 大切にしまっておく存在
IAM ユーザー(今回作る)

作業用の合鍵
(普段使い)

  • 必要な権限だけを持つ
  • 二段階認証(MFA)で守る
  • 万一のときも被害を抑えやすい
🔑 パスワード 📱 ワンタイムコード(スマホ) ✓ 二段階認証で安全にログイン
05 — Requirements

要件

以下の要件を満たし、作った IAM ユーザーで二段階認証ログインができることを確認してください。

No要件
1ルートユーザーでサインインし、IAM コンソールを開く。
2IAM ユーザーを 1 つ作成する(例:my-iam-user)。マネジメントコンソールへのアクセスを有効にし、パスワードを設定する。
3そのユーザーに権限を付与する。学習用に、まずは閲覧のみ可能な権限(例:マネージドポリシー ReadOnlyAccess)を付ける。
4そのユーザーに仮想 MFA デバイス(認証アプリ)を有効化する。
5いったんサインアウトし、作成した IAM ユーザーで、パスワードとワンタイムコードを使ってサインインできることを確認する。
06 — Steps

構築の進め方

「ユーザーを作る → 権限を付ける → 二段階認証を有効にする → そのユーザーで入り直す」の順に進みます。最後に自分でログインして確かめるところまでがゴールです。

  1. ルートユーザーでサインインし、IAM コンソールを開く

    最初に作ったルートユーザーでマネジメントコンソールにサインインします。画面上部の検索バーに IAM と入力して、IAM コンソールを開きます。

    最初の 1 回だけルートを使う

    作業用ユーザーをまだ持っていない今だけ、ルートで作業します。このユーザーを作り終えたら、以降の作業はそちらに切り替えていく、というのが安全な進め方です。

  2. IAM ユーザーを作成する(コンソールアクセスを有効に)

    左メニュー「ユーザー」→「ユーザーの作成」を開きます。ユーザー名my-iam-user を入力し、「マネジメントコンソールへのユーザーアクセスを提供する」にチェックを入れます。パスワードを設定し(自動生成でも可)、画面の案内に従って進めます。

    サインイン情報は控えておく

    作成の最後に、サインイン用の URL・ユーザー名・パスワードが表示されます。あとでこのユーザーでログインするので、メモするか、表示される情報を保存しておきましょう。

  3. 権限(ポリシー)を付ける

    権限の設定画面で、「ポリシーを直接アタッチする」を選び、一覧から ReadOnlyAccess を検索してチェックを入れます。これで「見ることはできるが、変更はできない」権限になります。そのまま進めてユーザーを作成します。

    まずは最小限から

    権限は、必要なものだけを少しずつ付けるのが安全の基本です(最小権限)。今回は学習なので、まず安全な「閲覧のみ」を付けました。実際の作業で操作が必要になったら、その都度ふさわしい権限を足していきます。

  4. そのユーザーに二段階認証(MFA)を有効にする

    作成したユーザーを開き、「セキュリティ認証情報」タブ →「MFA デバイスの割り当て」を選びます。「認証アプリ(Authenticator app)」を選び、表示されるQR コードをスマホの認証アプリで読み取ります。アプリに表示される6 桁のコードを、続けて 2 回入力して登録します。

    MFA デバイスの割り当て — デバイスの選択(イメージ)

    MFA デバイスの種類

    認証システム(authenticator app)
    スマホの認証アプリで QR コードを読み取る
    セキュリティキー
    物理的な USB キーなどを使う
    ハードウェア TOTP トークン
    専用のハードウェア機器を使う

    スマホの認証アプリだけで用意できるので、今回はこれを選びます

    コードは 2 回続けて入力

    登録では、アプリに表示される連続した 2 つのコードを入力します。コードは時間で変わるので、1 つ目を入れたら、次に切り替わったコードを 2 つ目として入力します。あわてず、表示が変わるのを待ちましょう。

  5. サインアウトして、IAM ユーザーで入り直す

    画面右上からサインアウトします。手順 2 で控えたサインイン URL(または「IAM ユーザー」としてのサインイン)から、ユーザー名・パスワードを入力し、続けてスマホのワンタイムコードを入力します。無事に入れれば、二段階認証つきの作業用ユーザーの完成です。

    ここが本番の確認

    「パスワードだけでなく、スマホのコードも求められる」「両方そろうと入れる」——これを自分で体験することが、このハンズオンのいちばん大事なポイントです。

07 — Pitfalls

つまずきポイント

初学者がよく引っかかる箇所を先回りでまとめました。答えそのものは載せていませんが、「どこを見直せばよいか」の手がかりとして使ってください。

Pitfall 01 — MFA の登録で「コードが正しくない」と出る

「6 桁のコードを入れても、登録できない」

登録には連続した 2 つのコードが必要です。①1 つ目を入れたあと、アプリの表示が切り替わるのを待って 2 つ目を入れたか②スマホの時刻が自動設定(正確な時刻)になっているかを確認しましょう。コードは時刻をもとに作られるため、スマホの時刻がずれていると合いません。

Pitfall 02 — IAM ユーザーでサインインできない

「ユーザー名やパスワードを入れても入れない」

サインインの入口を間違えている可能性があります。①「ルートユーザー」ではなく「IAM ユーザー」としてサインインしているか(入口の画面が分かれています)、②アカウント ID(またはアカウントの別名)を正しく入れているか③手順 2 で控えたサインイン URL を使っているかを見直しましょう。

08 — Checklist

完了チェック

要件の再確認ではなく、画面のどこを見れば達成を確認できるかをまとめました。IAM コンソールとサインイン画面で、次を順に確かめましょう。

  • IAM の「ユーザー」一覧に、作成したユーザー(例:my-iam-user)がある。
  • そのユーザーの「許可」に、ReadOnlyAccess などの権限(ポリシー)が付いている
  • そのユーザーの「セキュリティ認証情報」に、MFA デバイスが割り当て済みと表示されている。
  • サインアウト後、IAM ユーザーとしてサインインでき、その際にワンタイムコードを求められた
  • パスワードとコードの両方を入れて、マネジメントコンソールに入れた
09 — Think

考えてみよう

手を動かすことに加えて、次の問いに自分の言葉で答えられるようにしておくと、理解がより深まります。

  1. 普段の作業を、ルートユーザーではなく IAM ユーザーで行うのはなぜでしょうか。もしルートで作業し続けると、どんなリスクがあるか考えてみましょう。
    ヒント
    ルートは何でもできるぶん、漏れたときの被害が最大になります。普段使いを「必要な権限だけの合鍵」にしておけば、万一漏れても被害を限定でき、ルート(親鍵)は安全にしまっておけます。「被害を小さく保つ」という観点で考えてみましょう。
  2. 二段階認証(MFA)は、「パスワードが漏れても安全」とよく言われます。なぜパスワードだけより安全なのか、2 つの要素の性質の違いから説明してみましょう。
    ヒント
    パスワードは「知っているもの」、スマホのコードは「持っているもの」です。攻撃者がパスワードを盗めても、あなたのスマホまでは手元にありません。2 種類の異なるものを両方そろえる必要がある、という点が安全さの理由です。
  3. 今回は学習のため「閲覧のみ」の権限を付けました。実際に作業するユーザーには、どんな考え方で権限を決めるとよいでしょうか。「とりあえず全部できる権限」にしない理由も考えてみましょう。
    ヒント
    必要な操作だけを許可する「最小権限」が基本です。全部できる権限にすると、誤操作や乗っ取りのときの被害が大きくなります。「その人(その用途)がやることに必要な権限だけ」を足していく、という観点で考えてみましょう。
10 — Clean up

後片づけ

IAM ユーザーや MFA は料金がかからないため、今回作ったユーザーは、これからの作業用にそのまま残しておくのがおすすめです。練習用として消したい場合だけ、次のように片づけます。

  1. 残す場合(おすすめ):作った IAM ユーザーは、今後の作業の入口として使い続けられます。ルートユーザーは、これ以降は基本的に使わず、大切にしまっておきましょう。
  2. 消す場合:IAM の「ユーザー」一覧で対象を選び、「削除」します(MFA デバイスも一緒に外れます)。ただし、これが唯一の作業用ユーザーなら、消すと普段使いの入口がなくなる点に注意します。
Caution — ルートユーザーも MFA で守る

いちばん強いルートこそ、二段階認証を

今回は IAM ユーザーに MFA を付けましたが、ルートユーザーにも MFA を設定しておくのが安全のために重要です(手順はほぼ同じです)。いちばん強い権限を持つルートこそ、しっかり守りましょう。作った IAM ユーザーやパスワード、認証アプリの登録は、他人に渡さないよう管理してください。

コストに関する注意: IAM の利用そのものに料金はかかりません。IAM ユーザーの作成・権限の付与・MFA(二段階認証)の有効化は、すべて無料です。今回のハンズオンで料金が発生することはありません。なお、付与した権限を使って実際に何かのサービス(EC2 や S3 など)を作って動かせば、そのサービスぶんの料金はかかりますが、今回は「閲覧のみ」の権限なので、リソースを新しく作ることはありません。安心して進めてください。