翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CloudHSM 管理ユーティリティでクォーラム認証を有効にしたユーザー管理
ハードウェアセキュリティモジュール (HSM) 上の AWS CloudHSM Crypto Officer (CO) は、HSM 上で以下のオペレーションに対してクォーラム認証を設定できます。
-
HSM ユーザーの作成
-
HSM ユーザーの削除
-
別の HSM ユーザーのパスワードの変更
HSM をクォーラム認証用に設定した後では、CO が単独で HSM ユーザー管理オペレーションを実行することはできません。次の例は、CO が HSM で新しいユーザーを作成しようとしたときの出力を示しています。コマンドは RET_MXN_AUTH_FAILED
エラーとなり、クォーラム認証が失敗したことを示しています。
aws-cloudhsm>
createUser CU user1 password
*************************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
Creating User user1(CU) on 2 nodes createUser failed: RET_MXN_AUTH_FAILED creating user on server 0(10.0.2.14) failed Retry/Ignore/Abort?(R/I/A):
A
HSM ユーザー管理オペレーションを実行するには、CO は以下のタスクを完了する必要があります。
HSM をクォーラム認証用にまだ設定していない場合は、今すぐに設定してください。詳細については、「初回の設定」を参照してください。
ステップ 1. クォーラムトークンの取得
まず、CO は cloudhsm_mgmt_util コマンドラインツールを使用して クォーラムトークン をリクエストする必要があります。
クォーラムトークンを取得するには
-
次のコマンドを使用して、cloudhsm_mgmt_util コマンドラインツールをスタートします。
$
/opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
-
loginHSM コマンドを使用して、CO ユーザーとして HSM にログインします。詳細については、「CloudHSM 管理ユーティリティ (CMU) による HSM ユーザー管理」を参照してください。
-
getToken コマンドを使用してクォーラムトークンを取得します。詳細については、次の例を参照するか、または help getToken コマンドを使用してください。
例 クォーラムトークンを取得する
この例では、ユーザー名を officer1 とする CO のクォーラムトークンを取得し、そのトークンを officer1.token
というファイルに保存します。この例のコマンドを使用するには、以下の値を独自のものに置き換えてください。
-
officer1
トークンを取得する CO の名前。HSM にログインし、このコマンドを実行している CO と同じであることが必要です。 -
officer1.token
クォーラムトークンを保存するファイルの名前。
次のコマンドで、3
は取得するトークンを使用できる サービス を識別します。この例のトークンは、HSM ユーザー管理オペレーション (サービス 3) で使用できます。詳細については、「ステップ 2. HSM のクォーラム最小値を設定する」を参照してください。
aws-cloudhsm>
getToken 3
getToken success on server 0(10.0.2.14) Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 getToken success on server 1(10.0.1.4) Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1officer1
officer1.token
ステップ 2. 承認 CO からの署名の取得
クォーラムトークンを持つ CO は、そのトークンを他の CO に承認してもらう必要があります。他の CO は、承認を与えるために、署名キーを使用してトークンを暗号で署名します。この署名は HSM 外で行われます。
トークンの署名にはさまざまな方法が使用されます。次の例では、OpenSSL
例 承認 CO からの署名を取得する
この例では、トークン (officer1) を持つ CO に少なくとも 2 つの承認が必要です。以下のコマンド例では、2 つの CO が OpenSSL を使用してトークンに暗号で署名する方法を示します。
最初のコマンドでは、officer1 が自分のトークンに署名します。以下のコマンド例を使用するには、以下の値を独自のものに置き換えてください。
-
officer1.key
およびofficer2.key
CO の署名キーが含まれているファイルの名前。 -
officer1.token.sig1
およびofficer1.token.sig2
署名を保存するファイルの名前。署名ごとに別のファイルに保存します。 -
officer1.token
CO が署名するトークンが格納されるファイルの名前。
$
openssl dgst -sha256 -sign
officer1.key
-outofficer1.token.sig1
officer1.token
Enter pass phrase for officer1.key:
次のコマンドでは、officer2 が同じトークンに署名します。
$
openssl dgst -sha256 -sign
officer2.key
-outofficer1.token.sig2
officer1.token
Enter pass phrase for officer2.key:
ステップ 3. HSM での署名済みトークンの承認
CO は、他の 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 ユーザー管理」を参照してください。
-
approveToken コマンドを使用して署名済みトークンを承認し、トークン承認ファイルを渡します。詳細については、次の例を参照してください。
例 トークン承認ファイルを作成し、署名済みトークンを HSM で承認する
トークン承認ファイルは、HSM で必要とされる特別な形式のテキストファイルです。このファイルには、トークン、その承認者、および承認者の署名が含まれます。トークン承認ファイルの例は次のとおりです。
# For "Multi Token File Path", type the path to the file that contains # the token. You can type the same value for "Token File Path", but # that's not required. The "Token File Path" line is required in any # case, regardless of whether you type a value. Multi Token File Path = officer1.token; Token File Path = ; # Total number of approvals Number of Approvals = 2; # Approver 1 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer1; Approval File = officer1.token.sig1; # Approver 2 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer2; Approval File = officer1.token.sig2;
トークン承認ファイルの作成後、CO は cloudhsm_mgmt_util コマンドラインツールを使用して HSM にログインします。次に CO は approveToken コマンドを使用し、以下の例に示すように、トークンを承認します。approval.txt
は、トークン承認ファイルの名前に置き換えてください。
aws-cloudhsm>
approveToken
approval.txt
approveToken success on server 0(10.0.2.14) approveToken success on server 1(10.0.1.4)
このコマンドが成功すると、HSM でのクォーラムトークンの承認が完了します。トークンのステータスを確認するには、次の例に示すように、listTokens コマンドを使用します。コマンドの出力は、トークンに必要な数の承認があることを示しています。
トークンの有効期間は、トークンが HSM に保持される保証期間を示します。トークンの有効期間が過ぎた (ゼロ秒) 後でも、トークンを使用できます。
aws-cloudhsm>
listTokens
===================== Server 0(10.0.2.14) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 ===================== Server 1(10.0.1.4) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 listTokens success
ステップ 4. ユーザー管理オペレーションでのトークンの使用
前のセクションで示したように、トークンに必要な数の承認を取得すると、CO は以下のいずれかの HSM ユーザー管理オペレーションを実行できます。
-
createUser コマンドを使用して HSM ユーザーを作成する
-
deleteUser コマンドを使用して HSM ユーザーを削除する
-
changePswd コマンドを使用して別の HSM ユーザーのパスワードを変更する
これらのコマンドの詳しい使用方法については、HSM ユーザー を参照してください。
CO は、トークンを 1 つのオペレーションにのみ使用できます。そのオペレーションが成功すると、トークンは無効になります。別の HSM ユーザー管理オペレーションを行うには、新しいクォーラムトークンを取得し、承認者から新しい署名を取得して、その新しいトークンを HSM で承認する必要があります。
注記
MofN トークンは、現在のログインセッションが開いている間だけ有効です。cloudhsm_mgmt_util からログアウトするか、ネットワーク接続が切断された場合、トークンは無効になります。同様に、承認されたトークンは cloudhsm_mgmt_util 内でのみ使用でき、他のアプリケーションでの認証には使用できません。
次のコマンド例で、CO は HSM で新しいユーザーを作成しています。
aws-cloudhsm>
createUser CU user1
password
*************************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
Creating User user1(CU) on 2 nodes
前のコマンドが成功すると、後続の listUsers コマンドに新しいユーザーが表示されます。
aws-cloudhsm>
listUsers
Users on server 0(10.0.2.14): Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO 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 8 CU user1 NO 0 NO Users on server 1(10.0.1.4): Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO 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 8 CU user1 NO 0 NO
CO が別の HSM ユーザー管理オペレーションを実行しようとすると、次の例に示すように、クォーラム認証エラーが発生して失敗します。
aws-cloudhsm>
deleteUser CU user1
Deleting user user1(CU) on 2 nodes deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 0(10.0.2.14) Retry/rollBack/Ignore?(R/B/I):
I
deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 1(10.0.1.4) Retry/rollBack/Ignore?(R/B/I):
I
listTokens コマンドは、つぎの例のように、CO に承認済みトークンがないことを示しています。別の HSM ユーザー管理オペレーションを実行するには、新しいクォーラムトークンを取得し、承認者から新しい署名を取得して、その新しいトークンを HSM で承認する必要があります。
aws-cloudhsm>
listTokens
===================== Server 0(10.0.2.14) ===================== Num of tokens = 0 ===================== Server 1(10.0.1.4) ===================== Num of tokens = 0 listTokens success