

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CloudHSM CLI で HSM ユーザーの MFA を管理する
<a name="login-mfa-token-sign"></a>

セキュリティを強化するために、 AWS CloudHSM クラスターの保護に役立つように、ユーザーの多要素認証 (MFA) を設定できます。

MFA が有効なハードウェアセキュリティモジュール (HSM) ユーザーアカウントを使用してクラスターにログインする場合、CloudHSM CLI でパスワード (最初の要素、既知の情報) を入力します。次に、CloudHSM CLI からトークンを取得し、そのトークンに署名するように求められます。

2 番目の要素 (自分の持っているもの) を提供する場合、すでに作成して HSM ユーザーに紐づけしたキーペアからプライベートキーを使用してトークンに署名します。クラスターにアクセスする場合、署名付きトークンを CloudHSM CLI に指定します。

ユーザーの MFA 設定の詳細については、「[CloudHSM CLI 用の MFA のセットアップ](set-up-mfa-for-cloudhsm-cli.md)」を参照してください

次のトピックでは、 AWS CloudHSMでのクォーラム認証の操作について詳しく説明します。

**Topics**
+ [クォーラム認証](quorum-mfa-cloudhsm-cli.md)
+ [キーペアの要件](mfa-key-pair-cloudhsm-cli.md)
+ [MFA のセットアップ](set-up-mfa-for-cloudhsm-cli.md)
+ [ユーザーを作成する](create-mfa-users-cloudhsm-cli.md)
+ [ログインユーザ](login-mfa-cloudhsm-cli.md)
+ [キーをローテーションする](rotate-mfa-cloudhsm-cli.md)
+ [MFA パブリックキーの登録解除](deregister-mfa-cloudhsm-cli.md)
+ [トークンファイルのリファレンス](reference-mfa-cloudhsm-cli.md)

# CloudHSM CLI を使用した AWS CloudHSM クラスターのクォーラム認証と MFA
<a name="quorum-mfa-cloudhsm-cli"></a>

 AWS CloudHSM クラスターは、クォーラム認証と多要素認証 (MFA) に同じキーを使用します。これは、MFA が有効になっているユーザーが実質的に MofN またはクォーラムアクセス制御に登録されていることを意味します。同じ HSM ユーザーに対して MFA 認証とクォーラム認証を正常に実行する際、次の点を考慮する必要があります。
+ 現在、ユーザーに対してクォーラム認証を使用している場合は、クォーラムのユーザーに対して作成したものと同じキーペアを使用し、ユーザーに対して MFA を有効化する必要があります。
+ クォーラム認証ユーザーではない非 MFA ユーザーに MFA 要件を追加する場合は、そのユーザーを MFA 認証を備えたクォーラム (MofN) 登録ユーザーとして登録します。
+ MFA 要件を削除するか、クォーラム認証ユーザーでもある MFA ユーザーのパスワードを変更する場合、クォーラム (MofN) ユーザーとしてそのユーザーの登録も削除されます。
+ MFA 要件を削除するか、クォーラム認証ユーザーでもある MFA ユーザーのパスワードを変更する場合、*それでもそのユーザーがクォーラム認証に加わる必要がある場合*、当該ユーザーを クォーラム (MofN) ユーザーとして再登録する必要があります。

認証の詳細情報は、「[クォーラム認証の管理 (M/N)](quorum-auth-chsm-cli.md)」を参照してください。

# CloudHSM CLI AWS CloudHSM を使用するための MFA キーペアの要件
<a name="mfa-key-pair-cloudhsm-cli"></a>

でハードウェアセキュリティモジュール (HSM) ユーザーの多要素認証 (MFA) を有効にするには AWS CloudHSM、新しいキーペアを作成するか、次の要件を満たす既存のキーを使用できます。
+ **キータイプ :** 非対称
+ **キーの使用方法 :** 署名と検証
+ **キースペック:** RSA\$12,048
+ **署名アルゴリズムには以下が含まれます。** sha256WithRSAEncryption

**注記**  
クォーラム認証を使用している場合、またはクォーラム認証を使用する予定の場合は、「[CloudHSM CLI を使用した AWS CloudHSM クラスターのクォーラム認証と MFA](quorum-mfa-cloudhsm-cli.md)」を参照してください

CloudHSM CLI とキーペアを使用して、MFA を有効化した新しい管理者ユーザーを作成できます。

# CloudHSM CLI 用の MFA のセットアップ
<a name="set-up-mfa-for-cloudhsm-cli"></a>

CloudHSM CLI の多要素認証 (MFA) を設定するには、次の手順に従います。

1. トークン署名戦略を使用して MFA をセットアップするには、まず 2,048 ビットの RSA プライベートキーと関連するパブリックキーを生成する必要があります。

   ```
   $ openssl genrsa -out officer1.key 2048
   Generating RSA private key, 2048 bit long modulus (2 primes)
   ...........................................................+++++
   ....................................................................+++++
   e is 65537 (0x010001)
   
   $ openssl rsa -in officer1.key -outform PEM -pubout -out officer1.pub
   writing RSA key
   ```

1. 次のコマンドを使用して CLI をインタラクティブモードで起動します。

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm-cli interactive
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. CloudHSM CLI を使用して、ユーザーアカウントにログインします。

   ```
   aws-cloudhsm > login --username <admin> --role <admin> --cluster-id <cluster ID>
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<admin>",
       "role": "<admin>"
     }
   }
   ```

1. 次に、コマンドを実行して MFA ストラテジーを変更します。パラメーター `--token` を指定する必要があります。このパラメータは、署名されていないトークンが書き込まれるファイルを指定します。

   ```
   aws-cloudhsm > user change-mfa token-sign --token unsigned-tokens.json --username <username> --role crypto-user --change-quorum
   Enter password:
   Confirm password:
   ```

1. これで、署名が必要な未署名のトークンを含むファイルが作成されました: `unsigned-tokens.json`。このファイル内のトークンの数は、クラスター内の HSM の数によって異なります。各トークンは 1 つの HSM を表します。このファイルは JSON 形式で、プライベートキーを持っていることを証明するための署名が必要なトークンが含まれています。

   ```
   $ cat unsigned-tokens.json
   {
     "version": "2.0",
     "tokens": [
   {
       {
         "unsigned": "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=",
         "signed": ""
       },
       {
         "unsigned": "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=",
         "signed": ""
       },
       {
         "unsigned": "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=",
         "signed": ""
       }
     ]
   }
   ```

1. 次のステップは、ステップ 1 で作成したプライベートキーを使用してこれらのトークンに署名することです。署名をファイルに戻します。まず、base64 でエンコードされたトークンを抽出してデコードする必要があります。

   ```
   $ echo "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=" > token1.b64
   $ echo "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=" > token2.b64
   $ echo "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=" > token3.b64
   $ base64 -d token1.b64 > token1.bin
   $ base64 -d token2.b64 > token2.bin
   $ base64 -d token3.b64 > token3.bin
   ```

1. これで、ステップ 1 で作成した RSA プライベートキーを使用して署名できるバイナリトークンができました。

   ```
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token1.bin \
         -out token1.sig.bin
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token2.bin \
         -out token2.sig.bin
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token3.bin \
         -out token3.sig.bin
   ```

1. これで、トークンのバイナリ署名ができました。base64 を使用してエンコードし、トークンファイルに戻す必要があります。

   ```
   $ base64 -w0 token1.sig.bin > token1.sig.b64
   $ base64 -w0 token2.sig.bin > token2.sig.b64 
   $ base64 -w0 token3.sig.bin > token3.sig.b64
   ```

1. 最後に、base64 値をコピーしてトークンファイルに貼り付けます。

   ```
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=",
         "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w=="
       },
       {
         "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=",
         "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w=="
       },
       {
         "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=",
         "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA=="
       }
     ]
   }
   ```

1. トークンファイルに必要な署名がすべて揃ったので、次に進むことができます。署名されたトークンを含むファイルの名前を入力し、Enter キーを押します。最後に、パブリックキーのパスを入力します。

   ```
   Enter signed token file path (press enter if same as the unsigned token file):
   Enter public key PEM file path:officer1.pub
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "crypto-user"
     }
   }
   ```

   これで、MFA を使用してユーザーを設定できました。

   ```
   {
       "username": "<username>",
       "role": "crypto-user",
       "locked": "false",
       "mfa": [
         {
           "strategy": "token-sign",
           "status": "enabled"
         }
       ],
       "cluster-coverage": "full"
   },
   ```

# CloudHSM CLI で MFA が有効になっているユーザーを作成する
<a name="create-mfa-users-cloudhsm-cli"></a>

多要素認証 (MFA) が有効になっている AWS CloudHSM ユーザーを作成するには、次の手順に従います。

1. CloudHSM CLI を使用し、管理者として HSM にログインします。

1. [**user create**](cloudhsm_cli-user-create.md) コマンドを使用して、任意のユーザーを作成します。次に、[CloudHSM CLI 用の MFA のセットアップ](set-up-mfa-for-cloudhsm-cli.md) の手順に従ってユーザーの MFA を設定します。

# CloudHSM CLI で MFA が有効になっているユーザーにログインする
<a name="login-mfa-cloudhsm-cli"></a>

多要素認証 (MFA) が有効になっている AWS CloudHSM ユーザーにログインするには、次の手順に従います。

1. CloudHSM CLI の [**login mfa-token-sign**](cloudhsm_cli-login-mfa-token-sign.md) コマンドを使用して、MFA が有効になっているユーザーのログインプロセスを MFA で開始します。

   ```
   aws-cloudhsm > login --username <username> --role <role> mfa-token-sign --token <unsigned-tokens.json>
   Enter password:
   ```

1. パスワードを入力します。次に、署名されていないトークンと署名されたトークンのペアを含むトークンファイルへのパスを入力するよう求められます。ここで、署名付きトークンは、プライベートキーを使用して生成されたものです。

   ```
   aws-cloudhsm > login --username <username> --role <role> mfa-token-sign --token <unsigned-tokens.json>
   Enter password:
   Enter signed token file path (press enter if same as the unsigned token file):
   ```

1. 署名済みトークンのファイルパスを入力するように求められますが、別の端末で署名されていないトークンファイルを調べることができます。署名が必要な未署名のトークンを含むファイルを特定します: `<unsigned-tokens.json>`。このファイル内のトークンの数は、クラスター内の HSM の数によって異なります。各トークンは 1 つの HSM を表します。このファイルは JSON 形式で、プライベートキーを持っていることを証明するための署名が必要なトークンが含まれています。

   ```
   $ cat <unsigned-tokens.json>
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=",
         "signed": ""
       },
       {
         "unsigned": "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=",
         "signed": ""
       },
       {
         "unsigned": "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=",
         "signed": ""
       }
     ]
   }
   ```

1. ステップ 2 で作成したプライベートキーを使用して、署名されていないトークンに署名します。まず、base64 でエンコードされたトークンを抽出してデコードする必要があります。

   ```
   $ echo "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=" > token1.b64
   $ echo "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=" > token2.b64
   $ echo "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=" > token3.b64
   $ base64 -d token1.b64 > token1.bin 
   $ base64 -d token2.b64 > token2.bin
   $ base64 -d token3.b64 > token3.bin
   ```

1. これで、バイナリトークンが作成されました。[MFA セットアップのステップ 1](set-up-mfa-for-cloudhsm-cli.md) で作成した RSA プライベートキーを使用して署名します。

   ```
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token1.bin \
         -out token1.sig.bin
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token2.bin \
         -out token2.sig.bin
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token3.bin \
         -out token3.sig.bin
   ```

1. これで、トークンのバイナリ署名ができました。base64 を使用してエンコードし、トークンファイルに戻します。

   ```
   $ base64 -w0 token1.sig.bin > token1.sig.b64
   $ base64 -w0 token2.sig.bin > token2.sig.b64
   $ base64 -w0 token3.sig.bin > token3.sig.b64
   ```

1. 最後に、base64 値をコピーしてトークンファイルに貼り付けます。

   ```
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=",
         "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w=="
       },
       {
         "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=",
         "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w=="
       },
       {
         "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=",
         "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA=="
       }
     ]
   }
   ```

1. トークンファイルに必要な署名がすべて揃ったので、次に進むことができます。署名されたトークンを含むファイルの名前を入力し、Enter キーを押します。これで、正常にログインできたはずです。

   ```
   aws-cloudhsm > login --username <username> --role <role> mfa-token-sign --token <unsigned-tokens.json>
   Enter password:
   Enter signed token file path (press enter if same as the unsigned token file):
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "<role>"
     }
   }
   ```

# CloudHSM CLI に対して MFA が有効になっているユーザーのキーをローテーションする
<a name="rotate-mfa-cloudhsm-cli"></a>

多要素認証 (MFA) が有効になっている AWS CloudHSM ユーザーのキーをローテーションするには、次の手順に従います。

1. CloudHSM CLI を使用して、任意の管理者または MFA が有効になっている特定のユーザーとして HSM にログインします (詳細については、「[MFA が有効になっているユーザーのログイン]()」を参照)。

1. 次に、コマンドを実行して MFA ストラテジーを変更します。パラメーター **--token** を指定する必要があります。このパラメータは、署名されていないトークンが書き込まれるファイルを指定します。

   ```
   aws-cloudhsm > user change-mfa token-sign --token unsigned-tokens.json --username <username> --role crypto-user --change-quorum
   Enter password:
   Confirm password:
   ```

1. 署名が必要な未署名のトークンを含むファイルを特定します: `unsigned-tokens.json`。このファイル内のトークンの数は、クラスター内の HSM の数によって異なります。各トークンは 1 つの HSM を表します。このファイルは JSON 形式で、プライベートキーを持っていることを証明するための署名が必要なトークンが含まれています。これは、現在登録されているパブリックキーのローテーションに使用したい新しい RSA パブリック/プライベートキーペアからの新しいプライベートキーになります。

   ```
   $ cat unsigned-tokens.json
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=",
         "signed": ""
       },
       {
         "unsigned": "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=",
         "signed": ""
       },
       {
         "unsigned": "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=",
         "signed": ""
       }
     ]
   }
   ```

1. これらのトークンには、セットアップ時に作成したプライベートキーで署名します。まず、base64 でエンコードされたトークンを抽出してデコードする必要があります。

   ```
   $ echo "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=" > token1.b64
   $ echo "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=" > token2.b64
   $ echo "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=" > token3.b64
   $ base64 -d token1.b64 > token1.bin
   $ base64 -d token2.b64 > token2.bin
   $ base64 -d token3.b64 > token3.bin
   ```

1. これで、バイナリトークンが作成されました。セットアップ時に作成した RSA プライベートキーを使用して署名します。

   ```
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token1.bin \
         -out token1.sig.bin
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token2.bin \
         -out token2.sig.bin
   $ openssl pkeyutl -sign \
         -inkey officer1.key \
         -pkeyopt digest:sha256 \
         -keyform PEM \
         -in token3.bin \
         -out token3.sig.bin
   ```

1. これで、トークンのバイナリ署名ができました。base64 を使用してエンコードし、トークンファイルに戻します。

   ```
   $ base64 -w0 token1.sig.bin > token1.sig.b64
   $ base64 -w0 token2.sig.bin > token2.sig.b64 
   $ base64 -w0 token3.sig.bin > token3.sig.b64
   ```

1. 最後に、base64 値をコピーしてトークンファイルに貼り付けます。

   ```
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=",
         "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w=="
       },
       {
         "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=",
         "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w=="
       },
       {
         "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=",
         "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA=="
       }
     ]
   }
   ```

1. トークンファイルに必要な署名がすべて揃ったので、次に進むことができます。署名されたトークンを含むファイルの名前を入力し、Enter キーを押します。最後に、新しいパブリックキーのパスを入力します。これで、[user list]()の出力の一部として、次の内容が表示されます。

   ```
   Enter signed token file path (press enter if same as the unsigned token file):
   Enter public key PEM file path:officer1.pub
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "crypto-user"
     }
   }
   ```

   これで、ユーザーに MFA を設定できました。

   ```
   {
       "username": "<username>",
       "role": "crypto-user",
       "locked": "false",
       "mfa": [
         {
           "strategy": "token-sign",
           "status": "enabled"
         }
       ],
       "cluster-coverage": "full"
   },
   ```

生成された JSON 形式のトークンファイルにプライベートキーで署名し、新しい MFA パブリックキーを登録しました。

# CloudHSM CLI を使用して MFA パブリックキーの登録を解除する
<a name="deregister-mfa-cloudhsm-cli"></a>

MFA パブリックキーが登録されているときに、 AWS CloudHSM 管理者ユーザーの多要素認証 (MFA) パブリックキーを登録解除するには、次の手順に従います。

1. CloudHSM CLI を使用し、MFA を有効化した管理者として HSM にログインします。

1. **user change-mfa token-sign** コマンドを使用して、ユーザーの MFA を削除します。

   ```
   aws-cloudhsm > user change-mfa token-sign --username <username> --role admin --deregister --change-quorum
   Enter password:
   Confirm password:
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "admin"
     }
   }
   ```

# CloudHSM CLI を使用した MFA のトークンファイルリファレンス
<a name="reference-mfa-cloudhsm-cli"></a>

多要素認証 (MFA) パブリックキーを登録するとき、または MFA を使用して CloudHSM CLI にログインしようとするときに生成されるトークンファイルには、次の内容が含まれます。
+ **トークン:** JSON オブジェクトリテラルの形式で、base64 でエンコードされた署名なし/署名付きトークンのペアの配列。
+ **署名なし:** Base64 でエンコードされ、SHA256 ハッシュされたトークン。
+ **署名済み:** RSA 2,048 ビットプライベートを使用した、署名されていないトークンの base64 でエンコードされた署名付きトークン (署名)。

```
{
  "version": "2.0",
  "tokens": [
    {
      "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=",
      "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w=="
    },
    {
      "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=",
      "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w=="
    },
    {
      "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=",
      "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA=="
    }
  ]
}
```