IAM チュートリアル: ユーザーに自分の認証情報および MFA 設定を許可する - AWS Identity and Access Management

IAM チュートリアル: ユーザーに自分の認証情報および MFA 設定を許可する

ユーザーが各自の多要素認証 (MFA) デバイスと認証情報を [セキュリティ認証情報] ページで管理するようにできます。AWS Management Console を使用して、認証情報 (アクセスキー、パスワード、デジタル署名用証明書、SSH パブリックキー) およびユーザーの MFA デバイスを設定することができます。ユーザー数が少ない場合に便利です。しかし、この作業には、ユーザーの数が増えるにつれて時間がかかります。セキュリティ上のベストプラクティスでは、ユーザーが定期的にパスワードを変更し、アクセスキーをローテーションするように指定しています。また、不要な資格情報を削除または無効にする必要があります。また、機密性の高いオペレーションには MFA を使用することを強くお勧めします。このチュートリアルでは、このようなベストプラクティスを管理者に負担を与えずに実現する方法を説明します。

このチュートリアルでは、AWS サービスへのアクセスをユーザーに許可する方法を示します。ただし、ユーザーが MFA を使用してサインインした場合に限ります。MFA デバイスでサインインしていない場合、ユーザーは他のサービスにアクセスできません。

このワークフローには 3 つの基本的な手順が含まれます。

ステップ 1: MFA サインインを強制するポリシーを作成する

いくつかの IAM アクションを除く、すべてのアクションを禁止するカスタマー管理ポリシーを作成します。これらの例外により、 ユーザーは[セキュリティ認証情報]ページで自分のクレデンシャルを変更し、MFAデバイスを管理できます。該当ページへのアクセスの詳細については、「IAM ユーザー自身によるパスワードの変更方法 (コンソール)」を参照してください。

ステップ 2: テストユーザーグループにポリシーをアタッチする

メンバーが MFA でサインインすると、すべての Amazon EC2 アクションにフルアクセスできるグループを作成します。このようなユーザーグループを作成するには、AmazonEC2FullAccess という AWS 管理ポリシーと最初の手順で作成したカスタマー管理ポリシーの両方をアタッチします。

ステップ 3: ユーザーアクセスをテストする

テストユーザーとしてサインインし、ユーザーが MFA デバイスを作成するまで Amazon EC2 へのアクセスがブロックされていることを確認します。ユーザーは、そのデバイスを使用してサインインできます。

前提条件

このチュートリアルのステップを実行するには、以下を持っている必要があります:

  • 管理者権限を持つ IAM ユーザーとしてサインインできる AWS アカウント。

  • アカウント ID 番号。ステップ 1 のポリシーに入力します。

    アカウント ID 番号を確認するには、ページ上部のナビゲーションバーで [サポート]、[サポートセンター] の順に選択します。アカウント ID 番号は、このページの [サポート] メニューの下で確認できます。

  • 仮想 (ソフトウェアベース) MFA デバイスFIDO セキュリティキー、またはハードウェアベース MFA デバイス

  • ユーザーグループのメンバーであるテスト IAM ユーザーは次のとおりです。

ユーザーアカウントを作成する ユーザーグループアカウントを作成して設定する
[User name] (ユーザー名) その他の手順 ユーザーグループ名 メンバーとしてユーザーを追加する その他の手順
MFAUser [AWS Management Console のアクセス] のオプションのみを選択し、パスワードを割り当てます。 EC2MFA MFAUser このユーザーグループへのポリシーのアタッチや、アクセス許可の付与は行わないでください。

ステップ 1: MFA サインインを強制するポリシーを作成する

まず、IAM ユーザー各自の認証情報と MFA デバイスの管理に必要な権限を除いて、すべてのアクセス権限を拒否する IAM カスタマー管理ポリシーを作成します。

  1. 管理者認証情報を使用してユーザーとして AWS マネジメントコンソール にサインインします。IAM のベストプラクティスに準拠し、AWS アカウント ルートユーザー 認証情報ではサインインしないでください。詳細については、個々の IAM ユーザーの作成を参照してください。

  2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  3. ナビゲーションペインで [Policies] (ポリシー) を選択してから [Create policy] (ポリシーの作成) を選択します。

  4. [JSON] タブを選択し、以下の JSON ポリシードキュメントからテキストをコピーします。AWS: MFA で認証された IAM ユーザーが [My Security Credentials] (マイセキュリティ資格情報) ページで自分の認証情報を管理できるようにする

  5. このポリシーに関するテキストを [JSON] ボックスに貼り付けます。ポリシーの検証中に生成されたセキュリティ警告、エラー、または一般的な警告を解決してから、[Next: Tags] (次の手順: タグ) を選択します。

    注記

    いつでも [Visual editor (ビジュアルエディタ)] タブと [JSON] タブを切り替えることができます。ただし、上記のポリシーには NotAction 要素が含まれていますが、これはビジュアルエディタではサポートされていません。このポリシーについては、[Visual editor (ビジュアルエディタ)] タブに通知が表示されます。[JSON] タブに戻り、このポリシーの操作を続行します。

    このポリシー例では、初めて AWS Management Console にサインインする際のパスワードのリセットをユーザーに許可していません。新しいユーザーがサインインしてパスワードをリセットするまで、そのユーザーにアクセス許可を付与しないことを推奨しています。

  6. リポジトリの [Tag] (タグ) ページで、タグのキーと値のペアをカスタマー管理ポリシーに追加し (オプション)、[Next: Review] (次の手順) を選択します。

  7. [Review] (確認) ページで、ポリシー名として「Force_MFA」と入力します。ポリシーの詳細として、「This policy allows users to manage their own passwords and MFA devices but nothing else unless they authenticate with MFA.」と入力します。ポリシーの [Summary] (概要) で、ポリシーによって割り当てられたアクセス許可を確認し、[Create policy] (ポリシーの作成) を選択して作業を保存します。

    新しいポリシーが管理ポリシーの一覧に表示され、アタッチの準備ができます。

ステップ 2: テストユーザーグループにポリシーをアタッチする

次に、MFA で保護されたアクセス許可を付与するために使用されるテスト IAM ユーザーグループに、2 つのポリシーをアタッチします。

  1. ナビゲーションペインで、[ユーザーグループ] を選択します。

  2. 検索ボックスに「EC2MFA」と入力し、リストのグループ名 (チェックボックスではありません) を選択します。

  3. [アクセス許可]タブを選択し、[アクセス許可の追加]を選択してから、[ポリシーの添付]を選択します。

  4. [アクセス許可ポリシーを EC2MFA グループにアタッチする] ページの検索ボックスに、EC2Full と入力します。ポリシーのリストで、AmazonEC2FullAccess ポリシーの横にあるチェックボックスを選択します。変更はまだ保存しないでください。

  5. 検索ボックスに「Force」と入力し、リストの [Force_MFA] の横にあるチェックボックスをオンにします。

  6. [ポリシーのアタッチ] を選択します。

ステップ 3: ユーザーアクセスをテストする

チュートリアルのこの部分では、テストユーザーとしてサインインし、ポリシーが意図したとおりに動作することを確認します。

  1. 前のセクションで割り当てたパスワードを使用し、MFAUser として AWS アカウントにサインインします。URL: https://<alias or account ID number>.signin.aws.amazon.com/console を使用します。

  2. [EC2] を選択して Amazon EC2 コンソールを開き、ユーザーには一切の操作を行うアクセス許可がないことを確認します。

  3. 右上のナビゲーションバーで MFAUser ユーザー名を選択し、続いて [My Security Credentials (セキュリティ認証情報)] を選択します。

    
            AWS マネジメントコンソールの [My Security Credentials (セキュリティ認証情報)] リンク
  4. ここで MFA デバイスを追加します。[Multi-Factor Authentication(MFA) (多要素認証 (MFA))] セクションで、[Assign MFA device (MFA デバイスを割り当てる)] を選択します。

    注記

    iam:DeleteVirtualMFADevice を実行する権限がないというエラーが表示されることがあります。これは、誰かが以前にこのユーザーに仮想 MFA デバイスの割り当てを開始し、プロセスをキャンセルした場合に発生する可能性があります。続行するには、ユーザーまたは他の管理者がユーザーの既存の MFA デバイスを削除する必要があります。詳細については、「iam:DeleteVirtualMFADevice を実行する権限がありません」を参照してください。

  5. このチュートリアルでは、携帯電話で Google Authenticator アプリなどの仮想 (ソフトウェアベース) MFA デバイスを使用します。[仮想 MFA デバイス] を選択し、[次のステップ] をクリックします。

    IAM が QR コードを含む仮想 MFA デバイスの設定情報を生成して表示します。図は、QR コードに対応していないデバイスでの手動入力に利用できるシークレット設定キーを示しています。

  6. 仮想 MFA アプリを開きます。(仮想 MFA デバイスをホストするために使用できるアプリのリストについては、「仮想 MFA アプリケーション」を参照) 仮想 MFA アプリが複数のアカウント (複数の仮想 MFA デバイス) をサポートしている場合は、新しいアカウント (新しい仮想 MFA デバイス) を作成するオプションを選択します。

  7. MFA アプリが QR コードをサポートしているかどうかを確認してから、次のいずれかを実行します。

    • ウィザードから、[Show QR code (QR コードの表示)] を選択します。QR コードをスキャンするアプリを使用します。例えば、カメラアイコンまたは [Scan code] (スキャンコード) に似たオプションを選択し、デバイスのカメラを使用してコードをスキャンします。

    • [MFA デバイスの管理] ウィザードで [手動設定のシークレットキーを表示] を選択し、MFA アプリにシークレット設定キーを入力します。

    これで仮想 MFA デバイスはワンタイムパスワードの生成を開始します。

  8. [MFA デバイスの管理] ウィザードの [MFA Code 1 (MFA コード 1)] ボックスに、現在仮想 MFA デバイスに表示されているワンタイムパスワードを入力します。デバイスが新しいワンタイムパススワードを生成するまで待ちます (最長 30 秒)。生成されたら [MFA Code 2 (MFA コード 2)] ボックスに 2 つ目のワンタイムパススワードを入力します。[Assign MFA] (MFA の割り当て) を選択します。

    重要

    コードを生成したら、即時にリクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、MFA デバイスはユーザーと正常に関連付けられます。ただし、MFA デバイスは同期しません。これは、時刻ベースのワンタイムパスワード (TOTP) の有効期間が短いために起こります。その場合は、デバイスの再同期ができます。

    これで仮想 MFA デバイスを AWS で使用できます。

  9. コンソールからサインアウトし、再度 MFAUser としてサインインします。今回は AWS により、携帯電話から MFA コードを取得するよう求められます。コードを取得したら、それをボックスに入力し、[Submit (送信)] を選択します。

  10. [EC2] を選択し、再度 Amazon EC2 コンソールを開きます。今回は、すべての情報を表示して、必要なアクションを実行することができます。このユーザーとして他のコンソールに移動すると、アクセス拒否メッセージが表示されます。その理由は、このチュートリアルのポリシーでは Amazon EC2 へのアクセスのみが許可されるためです。

IAM ユーザーガイド の関連情報については、以下の関連リソースを参照してください。