本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 AWS CloudHSM Management Utility 使用者建立已啟用 2FA 的使用者
使用 AWS CloudHSM Management Utility CMU(CMU) 和金鑰對來建立新的加密辦公室 (CO) 使用者,並啟用雙重驗證 (2FA)。
如建立已啟用 2FA 的 CO 使用者
-
如在一個終端中,請執行下列步驟:
存取 HSM並登入 CloudHSM Management 公用程式:
/opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
以 CO 身分登入,並使用下列命令來建立MFA具有 2FA 的新使用者:
aws-cloudhsm>createUser CO MFA
*************************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)? yCreating User exampleuser3(CO) on 1 nodesAuthentication data written to: "/home/ec2-user/authdata"Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below.Leave this field blank to use the path initially provided.Enter filename:<CO USER NAME>
-2fa /home/ec2-user/authdata將上述終端保留在此狀態。請勿按回車鍵或輸入任何檔案名稱。
如在其他終端中,請執行下列步驟:
-
存取 HSM並登入 CloudHSM Management 公用程式:
/opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
使用下列指令產生公有/私有金鑰對:
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in private_key.pem -out public_key.pem
執行下列命令以安裝 Json 查詢功能,以便從 AuthData 檔案中擷取摘要:
sudo yum install jq
如要擷取摘要值,請先在 AuthData 檔案中尋找下列資料:
{ "Version":"1.0", "PublicKey":"", "Data":[ { "HsmId":
<"HSM ID">
, "Digest":<"DIGEST">
, "Signature":"" } ] }注意
已獲得的摘要是 base64 編碼的,但如要簽署該摘要,您需要先解碼該文件,然後簽署該文件。以下命令將解碼摘要並將解碼的內容存儲在「digest1.bin」中。
cat authdata | jq '.Data[0].Digest' | cut -c2- | rev | cut -c2- | rev | base64 -d > digest1.bin
-
如要轉換公用金錀的內容,請添加「\n」並刪除空格,如下所示:
-----BEGIN PUBLIC KEY-----\n
<PUBLIC KEY>
\n-----END PUBLIC KEY-----重要
以上命令顯示如何在 BEGIN PUBLIC KEY----- 後立即添加「\n」,如何刪除「\n」和公用金錀第一個字元之間的空格,如何在 -----END PUBLIC KEY 之前添加「\n」,以及如何刪除「\n」和公用金錀結尾的空格。
這是在 authdata 檔案中接受的公有金鑰PEM格式。
將公有金錀 PEM 格式的內容粘貼到 AuthData 文件的公用金錀部分。
vi authdata
{ "Version":"1.0", "PublicKey":"-----BEGIN PUBLIC KEY-----\n
<"PUBLIC KEY">
\n-----END PUBLIC KEY-----", "Data":[ { "HsmId":<"HSM ID">
, "Digest":<"DIGEST">
, "Signature":”” } ] }請使用下列指命簽署權杖:
openssl pkeyutl -sign -in digest1.bin -inkey private_key.pem -pkeyopt digest:sha256 | base64
Output Expected:<"THE SIGNATURE">
注意
如以上命令所示,請改用 openssl pkeyutl 而不是 openssl dgst 來簽署。
在「簽名」欄位的 AuthData File 中新增已簽署的摘要。
vi authdata
{ "Version": "1.0", "PublicKey": "-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----", "Data": [ { "HsmId":
<"HSM ID">
, "Digest":<"DIGEST">
, "Signature":"Kkdl ... rkrvJ6Q=="
}, { "HsmId":<"HSM ID">
, "Digest":<"DIGEST">
, "Signature":"K1hxy ... Q261Q=="
} ] }
-
-
返回到第一個終端,然後按
Enter
:Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below. Leave this field blank to use the path initially provided. Enter filename: >>>>> Press Enter here createUser success on server 0(10.0.1.11)