AWS CloudHSM 啟用使用 Cloud 的法定身分驗證的使用者管理HSM CLI - AWS CloudHSM

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS CloudHSM 啟用使用 Cloud 的法定身分驗證的使用者管理HSM CLI

硬體安全模組 (HSM) 上的 AWS CloudHSM 管理員可以為 AWS CloudHSM 叢集中的下列操作設定法定身分驗證:

AWS CloudHSM 叢集設定為法定身分驗證後,管理員就無法自行執行HSM使用者管理操作。下列範例顯示管理員嘗試在 上建立新使用者時的輸出HSM。命令失敗並顯示錯誤,指出需要進行規定人數身分驗證。

aws-cloudhsm > user create --username user1 --role crypto-user Enter password: Confirm password: { "error_code": 1, "data": "Quorum approval is required for this operation" }

若要執行HSM使用者管理操作,管理員必須完成下列任務:

步驟 1. 取得規定人數字符

首先,管理員必須使用 CloudHSM CLI來請求法定權杖

取得規定人數權杖
  1. 使用以下命令啟動 CloudHSM CLI。

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. 使用 login 命令並以管理員身分登入叢集。

    aws-cloudhsm>login --username admin --role admin
  3. 使用 quorum token-sign generate 命令來產生規定人數權杖。如需詳細資訊,請參閱下列範例或使用 help quorum token-sign generate 命令。

範例 – 產生規定人數權杖

此範例會取得使用者名稱為 admin 的管理員的規定人數權杖並將權杖儲存至名為 admin.token 的檔案中。若要使用範例命令,請將這些值取代為您自己的值:

  • <admin> – 取得權杖的管理員名稱。這必須是登入 HSM且正在執行此命令的相同管理員。

  • <admin.token> – 用於儲存法定權杖的檔案名稱。

在以下命令中,user 會識別您可以對其使用要生成權杖的服務名稱。在此情況下,權杖適用於HSM使用者管理操作 (user 服務)。

aws-cloudhsm > login --username <ADMIN> --role <ADMIN> --password <PASSWORD> { "error_code": 0, "data": { "username": "admin", "role": "admin" } } aws-cloudhsm > quorum token-sign generate --service user --token </path/admin.token> { "error_code": 0, "data": { "path": "/home/tfile" } }

quorum token-sign generate 命令會在指定的檔案路徑產生使用者服務規定人數權杖。可以檢查權杖文件:

$cat </path/admin.token> { "version": "2.0", "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA", "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=", "signatures": [] }

權杖檔案由以下項目組成:

  • approval_data :由 產生的 base64 編碼原始資料權杖HSM。

  • 權杖 : approval_data 的 base64 編碼和 SHA-256 雜湊權杖

  • 簽章:未簽章權杖的 base64 編碼簽章權杖 (簽章) 陣列,其中核准者的每個簽章都是JSON物件常值形式:

    { "username": "<APPROVER_USERNAME>", "signature": "<APPROVER_RSA2048_BIT_SIGNATURE>" }

    每個簽章都是從核准者的結果,使用其對應的 RSA 2048 位元私有金鑰,其公有金鑰已向 註冊HSM。

產生的使用者服務量權杖可以透過執行 quorum token-sign list命令來確認存在於 CloudHSM 叢集上:

aws-cloudhsm > quorum token-sign list { "error_code": 0, "data": { "tokens": [ { "username": "admin", "service": "user", "approvals-required": { "value": 2 }, "number-of-approvals": { "value": 0 }, "token-timeout-seconds": { "value": 597 }, "cluster-coverage": "full" } ] } }

token-timeout-seconds 時間表示過期前需核准的所產生權杖的超時期 (以秒為單位)。

步驟 2. 取得核准管理員的簽章

具有規定人數權杖的管理員必須取得其他管理員核准的權杖。為了提供核准,其他管理員會使用其簽署金鑰來以密碼編譯形式簽署權杖。他們在 之外執行此操作HSM。

簽署權杖的方式有很多。下列範例顯示如何使用 Open SSL執行此操作。若要使用不同的簽署工具,請確定該工具使用管理員的私有金鑰 (簽署金鑰) 來簽署 SHA-256 的權杖摘要。

範例 取得核准管理員的簽章

在這個範例中,具有權杖 (admin) 的管理員需要至少兩 (2) 個核准。下列範例命令顯示兩 (2) 個管理員如何使用 OpenSSL 以密碼編譯方式簽署權杖。

  1. 解碼 base64 編碼的未簽署權杖並將其放入二進位檔案中:

    $echo -n '0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=' | base64 -d > admin.bin
  2. 使用 SSL開啟 和核准者的個別私有金鑰(admin3),為使用者服務簽署現在的二進制法定未簽署權杖,並建立二進制簽章檔案:

    $openssl pkeyutl -sign \ -inkey admin3.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in admin.bin \ -out admin.sig.bin
  3. 將二進位簽章編碼為 base64:

    $base64 -w0 admin.sig.bin > admin.sig.b64
  4. 最後,按照先前為核准者簽章指定的JSON物件常值格式,將 base64 編碼簽章複製並貼到權杖檔案中:

    { "version": "2.0", "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA", "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=", "signatures": [ { "username": "admin2", "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw==" }, { "username": "admin3", "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw==" } ] }

步驟 3。核准 AWS CloudHSM 叢集上的權杖並執行使用者管理操作

管理員擁有必要的核准/簽名後 (詳見上一節),管理員可以將該權杖提供給 AWS CloudHSM 叢集,以及下列其中一項使用者管理操作:

如需使用這些命令的詳細資訊,請參閱使用 Cloud 進行使用者管理HSM CLI

在交易期間,權杖將在 AWS CloudHSM 叢集中核准,並執行請求的使用者管理操作。使用者管理操作的成功取決於有效的已核准規定人數權杖和有效的使用者管理操作。

管理員僅可以使用該權杖來進行一個操作。當該操作成功,該字符即不再有效。若要執行另一個HSM使用者管理操作,管理員必須重複上述程序。也就是說,管理員必須產生新的法定權杖、從核准者取得新的簽章,然後在 上HSM透過請求的使用者管理操作核准和使用新的權杖。

注意

規定人數權杖僅在您目前的登入工作階段開啟時才有效。如果您登出 CloudHSM CLI或網路中斷連線,表示字符不再有效。同樣地,授權權杖只能在 CloudHSM 中使用CLI。其不能用於其他應用程式中進行身分驗證。

範例 以管理員身分建立新使用者

在下列範例中,登入的管理員會在 上建立新的使用者HSM:

aws-cloudhsm > user create --username user1 --role crypto-user --approval /path/admin.token Enter password: Confirm password: { "error_code": 0, "data": { "username": "user1", "role": "crypto-user" } }

然後,管理員輸入 user list 命令以確認新使用者的建立:

aws-cloudhsm > user list{ "error_code": 0, "data": { "users": [ { "username": "admin", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin2", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin3", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin4", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "user1", "role": "crypto-user", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "app_user", "role": "internal(APPLIANCE_USER)", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" } ] } }

如果管理員嘗試執行另一個HSM使用者管理操作,則會失敗,並出現法定身分驗證錯誤:

aws-cloudhsm > user delete --username user1 --role crypto-user { "error_code": 1, "data": "Quorum approval is required for this operation" }

如下所示,quorum token-sign list 命令顯示管理員沒有核准的權杖。若要執行另一個HSM使用者管理操作,管理員必須產生新的法定權杖、從核准者取得新的簽章,並使用 -- 核准引數執行所需的使用者管理操作,以便在執行使用者管理操作期間提供要核准和使用的法定權杖。

aws-cloudhsm > quorum token-sign list { "error_code": 0, "data": { "tokens": [] } }