

# IAM チュートリアル: ユーザーに自分の認証情報および MFA 設定を許可する
<a name="tutorial_users-self-manage-mfa-and-creds"></a>

ユーザーが **[セキュリティ認証情報]** ページで自分の多要素認証 (MFA) デバイスと認証情報を管理することを許可できます。AWS マネジメントコンソール を使用して、認証情報 (アクセスキー、パスワード、デジタル署名用証明書、SSH パブリックキー) を設定したり、不要な認証情報を削除または非アクティブ化したり、ユーザーの MFA デバイスを有効にしたりできます。これは少数のユーザーにとっては便利ですが、ユーザーの数が増えるとすぐに、このタスクは時間がかかるようになる可能性があります。このチュートリアルでは、このようなベストプラクティスを管理者に負担を与えずに実現する方法を説明します。

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

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

**[ステップ 1: MFA サインインを強制するポリシーを作成する](#tutorial_mfa_step1)**  
いくつかの IAM アクションを**除く**、すべてのアクションを禁止するカスタマー管理ポリシーを作成します。これらの例外により、ユーザーは **[セキュリティ認証情報]** ページで自分の認証情報を変更したり、MFA デバイスを管理したりすることができます。該当ページへのアクセスの詳細については、「[IAM ユーザー自身によるパスワードの変更方法 (コンソール)](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console)」を参照してください。

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

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

## 前提条件
<a name="tutorial_mfa_prereqs"></a>

このチュートリアルのステップを実行するには、以下を持っている必要があります:
+ 管理者アクセス許可を持つ IAM ユーザーとしてサインインできる AWS アカウント。
+ アカウント ID 番号。ステップ 1 のポリシーに入力します。

  アカウント ID 番号を確認するには、ページ上部のナビゲーションバーで [**サポート**]、[**サポートセンター**] の順に選択します。アカウント ID 番号は、このページの [**サポート**] メニューの下で確認できます。
+ [仮想 (ソフトウェアベース) MFA デバイス](id_credentials_mfa_enable_virtual.md)、[FIDO セキュリティキー](id_credentials_mfa_enable_fido.md)、または[ハードウェアベース MFA デバイス](id_credentials_mfa_enable_physical.md)。
+ ユーザーグループのメンバーであるテスト IAM ユーザーは次のとおりです。


| ユーザー名 | ユーザー名に関する指示 | ユーザーグループ名 | メンバーとしてユーザーを追加する | ユーザーグループに関する指示 | 
| --- | --- | --- | --- | --- | 
| MFAUser | [コンソールアクセスを有効にする - オプション] のオプションのみを選択し、パスワードを割り当てます。 | EC2MFA | MFAUser | このユーザーグループへのポリシーのアタッチや、アクセス許可の付与は行わないでください。 | 

## ステップ 1: MFA サインインを強制するポリシーを作成する
<a name="tutorial_mfa_step1"></a>

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

1. 管理者認証情報を使用してユーザーとして AWS マネジメントコンソール にサインインします。IAM のベストプラクティスに準拠し、AWS アカウントのルートユーザー 認証情報ではサインインしないでください。
**重要**  
 IAM [ベストプラクティス](best-practices.md)では、長期的な認証情報を持つIAMユーザーを使用するのではなく、一時的な認証情報を使用して AWS にアクセスするために、IDプロバイダーとのフェデレーションを使用することを人間ユーザーに求めることを推奨します。IAM ユーザーは、フェデレーションユーザーでサポートされていない[特定のユースケース](gs-identities-iam-users.md)にのみ使用することをお勧めします。

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

   

1. ナビゲーションペインで **ポリシー**を選択してから **ポリシーの作成**を選択します。

1. [**JSON**] タブを選択し、以下の JSON ポリシードキュメントからテキストをコピーします。[AWS: MFA で認証された IAM ユーザーが [セキュリティ認証情報] ページで自分の認証情報を管理できるようにします](reference_policies_examples_aws_my-sec-creds-self-manage.md)

1. このポリシーに関するテキストを [**JSON**] ボックスに貼り付けます。ポリシーの検証中に生成されたセキュリティ警告、エラー、または一般的な警告を解決してから、**[次へ]** を選択します。
**注記**  
いつでも **[Visual エディタ]** と **[JSON]** オプションを切り替えることができます。ただし、上記のポリシーには `NotAction` 要素が含まれていますが、これはビジュアルエディタではサポートされていません。このポリシーについては、**[ビジュアルエディタ]** タブに通知が表示されます。**[JSON]** に戻り、このポリシーの操作を続行します。  
このポリシー例では、初めて AWS マネジメントコンソール にサインインする際のパスワードのリセットをユーザーに許可していません。新しいユーザーがサインインしてパスワードをリセットするまで、そのユーザーにアクセス許可を付与しないことを推奨しています。

1. **[確認および作成]** ページで、ポリシー名として「**Force\_MFA**」と入力します。ポリシーの説明の **[タグ]** 領域に **This policy allows users to manage their own passwords and MFA devices but nothing else unless they authenticate with MFA.** と入力すると、オプションでタグのキーと値のペアをカスタマー管理ポリシーに追加できます。ポリシーによって割り当てられたアクセス許可を確認し、**[ポリシーの作成]** を選択して作業を保存します。

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

## ステップ 2: テストユーザーグループにポリシーをアタッチする
<a name="tutorial_mfa_step2"></a>

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

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

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

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

1. [**Attach permission policies to EC2MFA group**] (許可ポリシーを EC2MFA グループにアタッチする) ページの検索ボックスに、**EC2Full** と入力します。次に、リストで、**AmazonEC2FullAccess** の横にあるチェックボックスをオンにします。変更はまだ保存しないでください。

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

1. **ポリシーのアタッチ** を選択します。

## ステップ 3: ユーザーアクセスをテストする
<a name="tutorial_mfa_step3"></a>

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

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

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

1. 右上のナビゲーションバーで `MFAUser` ユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![AWS マネジメントコンソールのセキュリティ認証情報へのリンク。](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. ここで MFA デバイスを追加します。[**Multi-Factor Authentication(MFA) (多要素認証 (MFA))**] セクションで、[**Assign MFA device (MFA デバイスを割り当てる)**] を選択します。
**注記**  
`iam:DeleteVirtualMFADevice` を実行することを認可されていないというエラーが表示されることがあります。これは、誰かが以前にこのユーザーに仮想 MFA デバイスの割り当てを開始し、プロセスをキャンセルした場合に発生する可能性があります。続行するには、ユーザーまたは他の管理者がユーザーの既存の割り当てられていない仮想化 MFA デバイスを削除する必要があります。詳細については、「[iam:DeleteVirtualMFADevice を実行することを認可されていません](troubleshoot.md#troubleshoot_general_access-denied-delete-mfa)」を参照してください。

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

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

1. 仮想 MFA アプリを開きます。(仮想 MFA デバイスをホストするために使用できるアプリのリストについては、「[仮想 MFA アプリケーション](https://aws.amazon.com/iam/details/mfa/#Virtual_MFA_Applications)」を参照) 仮想 MFA アプリが複数のアカウント (複数の仮想 MFA デバイス) をサポートしている場合は、新しいアカウント (新しい仮想 MFA デバイス) を作成するオプションを選択します。

1. MFA アプリが QR コードをサポートしているかどうかを確認してから、次のいずれかを実行します。
   + ウィザードから、[**Show QR code (QR コードの表示)**] を選択します。QR コードをスキャンするアプリを使用します。例えば、カメラアイコンまたは **[Scan code]** (スキャンコード) に似たオプションを選択し、デバイスのカメラを使用してコードをスキャンします。
   + **[デバイスの設定]** ウィザードで **[シークレットキーを表示]** を選択し、MFA アプリケーションにシークレットキーを入力します。

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

1. **[Set up device]** (デバイスの設定) ウィザードの **[Enter the code from your authenticator app.]** (認証アプリケーションからコードを入力) ボックスに、現在仮想 MFA デバイスに表示されているワンタイムパスワードを入力します。**[MFA の登録]** を選択します。
**重要**  
コードを生成したら、即時にリクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、MFA デバイスはユーザーと正常に関連付けられます。ただし、MFA デバイスは同期しません。これは、タイムベースドワンタイムパスワード (TOTP) の有効期間が短いために起こります。その場合は、[デバイスの再同期](id_credentials_mfa_sync.md)ができます。

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

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

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

## 関連リソース
<a name="tutorial_mfa_related"></a>

詳細については、以下のトピックを参照してください。
+ [IAM の AWS 多要素認証](id_credentials_mfa.md)
+ [MFA 対応のサインイン](console_sign-in-mfa.md)