AWS CloudHSM Crypto Officer 用のクォーラム認証を設定する
次のトピックでは、AWS CloudHSM Crypto Officers (CO) がクォーラム認証を使用できるようにするためのハードウェアセキュリティモジュール (HSM)の設定に必要なステップについて説明します。CO のクォーラム認証を最初に設定する場合に、これらのステップを 1 回だけ実行する必要があります。これらのステップが完了したら、AWS CloudHSM 管理ユーティリティでクォーラム認証を有効にしたユーザー管理 を参照してください。
前提条件
この例の理解には、cloudhsm_mgmt_util (CMU)コマンドラインツール についての知識が必要です。この例では、AWS CloudHSM クラスターに 2 つの HSM があります。listUsers コマンドの次の出力が示すように、両方の HSM の CO は同じです。ユーザー作成の詳細については、HSM ユーザー を参照してください。
aws-cloudhsm>
listUsers
Users on server 0(10.0.2.14):
Number of users found:7
User Id User Type User Name MofnPubKey LoginFailureCnt 2FA
1 PRECO admin NO 0 NO
2 AU app_user NO 0 NO
3 CO officer1 NO 0 NO
4 CO officer2 NO 0 NO
5 CO officer3 NO 0 NO
6 CO officer4 NO 0 NO
7 CO officer5 NO 0 NO
Users on server 1(10.0.1.4):
Number of users found:7
User Id User Type User Name MofnPubKey LoginFailureCnt 2FA
1 PRECO admin NO 0 NO
2 AU app_user NO 0 NO
3 CO officer1 NO 0 NO
4 CO officer2 NO 0 NO
5 CO officer3 NO 0 NO
6 CO officer4 NO 0 NO
7 CO officer5 NO 0 NO
ステップ 1. 署名のためのキーの作成と登録
クォーラム認証を使用する場合、各 CO が以下の すべて のステップをを実行する必要があります。
RSA キーペアの作成
様々なキーペアを作成、保護する方法があります。次の例では、OpenSSL
例 — OpenSSL でプライベートキーを作成する
次の例は、OpenSSL を使用してパスフレーズで保護された 2048 ビットの RSA キーを作成する方法を示しています。この例を使用するには、officer1.key
を、キーの保存先のファイル名に置き換えてください。
$
openssl genrsa -out
officer1.key
-aes256 2048Generating RSA private key, 2048 bit long modulus .....................................+++ .+++ e is 65537 (0x10001) Enter pass phrase for officer1.key: Verifying - Enter pass phrase for officer1.key:
次に、作成したプライベートキーを使用してパブリックキーを生成します。
例 — OpenSSL でパブリックキーを作成する
以下の例は、OpenSSL を使用して先ほど作成したプライベートキーからパブリックキーを作成する方法を示しています。
$
openssl rsa -in officer1.key -outform PEM -pubout -out officer1.pub
Enter pass phrase for officer1.key: writing RSA key
登録トークンの作成と署名
トークンを作成し、前のステップで生成したプライベートキーを使用して署名します。
例 — トークンを作成する
登録トークンは、最大 245 バイトのサイズを超えないランダムなデータを含むファイルのみです。プライベートキーを使用してトークンに署名し、プライベートキーへのアクセス権があることを示します。次のコマンドは、echo を使用して文字列をファイルにリダイレクトします。
$
echo
"token to be signed"
>officer1.token
トークンに署名し、署名ファイルに保存します。HSM で MofN ユーザーとして CO を登録する場合、署名付きトークン、署名なしトークン、およびパブリックキーが必要です。
例 トークンへ署名する
OpenSSL とプライベートキーを使用して登録トークンに署名し、署名ファイルを作成します。
$
openssl dgst -sha256 \ -sign
officer1.key
\ -outofficer1.token.sig
officer1.token
HSM でパブリックキーを登録する
キーを作成した後、CO はキーのパブリックパート (パブリックキー) を HSM に登録する必要があります。
HSM にパブリックキーの登録するには
-
次のコマンドを使用して、cloudhsm_mgmt_util コマンドラインツールをスタートします。
$
/opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
-
loginHSM コマンドを使用して、CO ユーザーとして HSM にログインします。詳細については、「CloudHSM 管理ユーティリティ (CMU) による HSM ユーザー管理」を参照してください。
-
registerQuorumPubKey コマンドを使用してパブリックキーを登録します。詳細については、次の例を参照するか、または help registerQuorumPubKey コマンドを使用してください。
例 - HSM のパブリックキーを登録する
以下の例では、cloudhsm_mgmt_util コマンドラインツールで registerQuorumPubKey コマンドを使用して、CO のパブリックキーを HSM に登録する方法を示しています。このコマンドを使用するには、CO が HSM にログインしている必要があります。以下の値を自分の値に置き換えてください。
aws-cloudhsm>
registerQuorumPubKey CO <
officer1
> <officer1.token
> <officer1.token.sig
> <officer1.pub
>*************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y registerQuorumPubKey success on server 0(10.0.2.14)
- <officer1.token>
-
署名なし登録トークンを含むファイルへのパスです。最大ファイルサイズが 245 バイトの任意のランダムデータを持つことができます。
必須 : はい
- <officer1.token.sig>
-
登録トークンの SHA256_PKCS メカニズム署名付きハッシュを含むファイルへのパスです。
必須: はい
- <officer1.pub>
-
非対称 RSA-2048 キーペアの公開キーを含むファイルへのパスです。プライベートキーを使用して、登録トークンに署名します。
必須: はい
次の例に示すように、すべての CO がパブリックキーを登録した後、listUsers コマンドの出力の MofnPubKey
列にこれが表示されます。
aws-cloudhsm>
listUsers
Users on server 0(10.0.2.14): Number of users found:7 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO Users on server 1(10.0.1.4): Number of users found:7 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO
ステップ 2. HSM のクォーラム最小値を設定する
CO のクォーラム認証を使用するには、CO が HSM にログインして、m 値とも呼ばれるクォーラム最小値を設定する必要があります。これは、HSM ユーザー管理オペレーションを実行するために必要な CO 承認の最小数です。HSM 上の任意の CO は、署名用のキーを登録していない CO を含むクォーラム最小値を設定できます。クォーラム最小値はいつでも変更できます。詳細情報は、 最小値を変更 を参照してください。
HSM のクォーラム最小値の設定
-
次のコマンドを使用して、cloudhsm_mgmt_util コマンドラインツールをスタートします。
$
/opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
-
loginHSM コマンドを使用して、CO ユーザーとして HSM にログインします。詳細については、「CloudHSM 管理ユーティリティ (CMU) による HSM ユーザー管理」を参照してください。
-
クォーラム最小値を設定する場合、setMValue コマンドを使用します。詳細については、次の例を参照するか、または help setMValue コマンドを使用してください。
例 HSM のクォーラム最小値を設定する
この例では、クォーラム最小値 2 を使用します。最大は HSM 上の CO の合計数で、2 から 8 までの任意の値を選択できます。この例では HSM に 6 つの CO がいるため、指定可能な最大値は 6 です。
次のコマンド例を使用するには、最後の数値 (2
) を所望のフォーラム最小値に置き換えてください。
aws-cloudhsm>
setMValue 3
2
*************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?
y
Setting M Value(2) for 3 on 2 nodes
上記の例では、最初の数字 (3) は、クォーラム最小値を設定しようとしている HSM サービスを示しています。
次の表に、HSM サービス識別子とその名前、説明、およびサービスに含まれるコマンドを示しています。
サービス識別子 | サービス名 | サービスの説明 | HSM コマンド |
---|---|---|---|
3 | USER_MGMT |
HSM ユーザー管理 |
|
4 | MISC_CO |
その他の CO サービス |
|
サービスのクォーラム最小値を取得するには、次の例のように、getMValue コマンドを使用します。
aws-cloudhsm>
getMValue 3
MValue of service 3[USER_MGMT] on server 0 : [2] MValue of service 3[USER_MGMT] on server 1 : [2]
前述の getMValue コマンドの出力は、HSM ユーザー管理オペレーション (サービス 3) のクォーラム最小値が 2 になったことを示しています。
これらのステップが完了したら、AWS CloudHSM 管理ユーティリティでクォーラム認証を有効にしたユーザー管理 を参照してください。