本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對管理員使用規定人數身分驗證:首次設定
下列主題說明設定硬體安全模組 (HSM) 必須完成的步驟,以讓管理員可以使用規定人數身分驗證。第一次針對管理員設定規定人數身分驗證時,您只需要執行一次下列步驟。完成這些步驟之後,請參閱 將規定人數身分驗證用於管理員。
必要條件
若要了解此範例,您應該熟悉 CloudHSM CLI。在此範例中, AWS CloudHSM 叢集有兩個 HSM,每個 HSM 都有相同的管理員,如下列user list命令輸出所示。如需有關建立使用者的詳細資訊,請參閱使用 CloudHSM CLI。
aws-cloudhsm>
user list
{
"error_code": 0,
"data": {
"users": [
{
"username": "admin",
"role": "admin",
"locked": "false",
"mfa": [],
"quorum": [],
"cluster-coverage": "full"
},
{
"username": "admin2",
"role": "admin",
"locked": "false",
"mfa": [],
"quorum": [],
"cluster-coverage": "full"
},
{
"username": "admin3",
"role": "admin",
"locked": "false",
"mfa": [],
"quorum": [],
"cluster-coverage": "full"
},
{
"username": "admin4",
"role": "admin",
"locked": "false",
"mfa": [],
"quorum": [],
"cluster-coverage": "full"
},
{
"username": "app_user",
"role": "internal(APPLIANCE_USER)",
"locked": "false",
"mfa": [],
"quorum": [],
"cluster-coverage": "full"
}
]
}
}
建立和註冊用於簽署的金鑰
若要使用規定人數身分驗證,每個管理員都必須完成下列所有步驟:
建立 RSA 金鑰對
建立和保護金鑰對有許多不同的方式。下列範例示範使用 OpenSSL
範例 – 使用 OpenSSL 建立私有金鑰
以下範例示範如何使用 OpenSSL 來建立受到密碼短語保護的 2048 位元 RSA 金鑰。若要使用這個範例,請將 <admin.key>
以您要存放金鑰的檔案名稱來加以取代。
$
openssl genrsa -out
<admin.key>
-aes256 2048Generating RSA private key, 2048 bit long modulus .....................................+++ .+++ e is 65537 (0x10001) Enter pass phrase for admin.key: Verifying - Enter pass phrase for admin.key:
接下來,使用您剛建立的私有金鑰來產生公有金鑰。
範例 – 使用 OpenSSL 建立一個公有金鑰
下列範例會示範如何使用 OpenSSL 根據您剛建立的私有金鑰建立公有金鑰。
$
openssl rsa -in admin.key -outform PEM -pubout -out admin1.pub
Enter pass phrase for admin.key: writing RSA key
建立並簽署註冊權杖
您可以建立一個權杖並使用在上一步中剛產生的私有金鑰簽署該權杖。
範例 – 建立一個註冊權杖
-
使用以下命令來啟動 CloudHSM CLI:
-
透過執行產生規定人數權杖簽署命令建立註冊權杖:
aws-cloudhsm >
quorum token-sign generate --service registration --token /path/tokenfile
{ "error_code": 0, "data": { "path": "/path/tokenfile" } }
-
產生規定人數權杖簽署命令在指定的檔案路徑產生註冊權杖。檢查權杖檔案:
$
cat /path/tokenfile
{ "version": "2.0", "tokens": [ { "approval_data":
<approval data in base64 encoding>
, "unsigned":<unsigned token in base64 encoding>
, "signed": "" } ] }權杖檔案由以下項目組成:
approval_data:一個 base64 編碼的隨機資料權杖,其原始資料不超過 245 個位元組的最大值。
unsigned:核准資料的 base64 編碼和 SHA256 雜湊權杖。
signed:未簽署的權杖的 base64 編碼簽名權杖 (簽名),使用先前使用 OpenSSL 產生的 RSA 2048 位元私有金鑰。
您可以使用私有金鑰簽署未簽署的權杖,以證明您可以訪問私有金鑰。您需要將註冊 Token 檔案完全填入簽章和公開金鑰,才能將管理員註冊為 AWS CloudHSM 叢集的法定使用者。
範例 — 簽署未簽署的註冊權杖
解碼 base64 編碼的未簽署權杖並將其放入二進位檔案中:
$
echo -n '6BMUj6mUjjko6ZLCEdzGlWpR5sILhFJfqhW1ej3Oq1g=' | base64 -d > admin.bin
使用 OpenSSL 和私有金鑰來簽署現在的二進位未簽署註冊權杖,並建立一個二進位簽署檔案:
$
openssl pkeyutl -sign \ -inkey admin.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in admin.bin \ -out admin.sig.bin
-
將二進位簽章編碼為 base64:
$
base64 -w0 admin.sig.bin > admin.sig.b64
-
將 base64 編碼的簽名複製並粘貼到權杖檔案中:
{ "version": "2.0", "tokens": [ { "approval_data":
<approval data in base64 encoding>
, "unsigned":<unsigned token in base64 encoding>
, "signed":<signed token in base64 encoding>
} ] }
用 HSM 註冊公有金鑰
創建密鑰後,管理員必須在 AWS CloudHSM 集群中註冊公鑰。
向 HSM 註冊公有金鑰
-
使用下列命令來啟動 CloudHSM CLI:
-
使用 CloudHSM CLI,以管理員身分登入。
aws-cloudhsm >
login --username admin --role admin
Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } } -
使用 變更規定人數使用者 註冊字符簽署 命令來註冊公有金鑰。如需詳細資訊,請參閱下列範例或使用 help user change-quorum token-sign register 命令。
範例 — 註冊 AWS CloudHSM 集群的公鑰
下列範例顯示如何在 CloudHSM CLI 中使用 user change-quorum token-sign register 命令,以向 HSM 註冊管理員的公有金鑰。若要使用此命令,管理員必須登入 HSM。以您自己的值取代這些值:
aws-cloudhsm >
user change-quorum token-sign register --public-key
</path/admin.pub>
--signed-token</path/tokenfile>
{ "error_code": 0, "data": { "username": "admin", "role": "admin" } }
注意
/path/admin.pub:公有金鑰 PEM 檔案的檔案路徑
必要:是
/path/tokenfile:帶有權杖由用戶私有金鑰簽名的檔案路徑
必要:是
在所有管理員註冊其公有金鑰之後,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": "app_user", "role": "internal(APPLIANCE_USER)", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" } ] } }
設定 HSM 上的規定人數最小值
若要使用規定人數身分驗證,管理員必須登入 HSM,然後設定規定人數最小值。這是執行 HSM 使用者管理操作所需的管理員核准數下限。HSM 上的任何管理員 (包括尚未註冊用於簽署的金鑰的管理員) 可以設定規定人數最小值。您隨時可以變更規定人數最小值。如需更多資訊,請參閱 變更最小值。
設定 HSM 上的規定人數最小值
-
使用下列命令來啟動 CloudHSM CLI:
-
使用 CloudHSM CLI,以管理員身分登入。
aws-cloudhsm >
login --username admin --role admin
Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } } -
使用 法定令牌符號 set-quorum-value 命令來設定規定人數最小值。如需詳細資訊,請參閱下列範例或使用 help quorum token-sign set-quorum-value 命令。
範例 – 設定 HSM 上的規定人數最小值
此範例使用值為 2 的規定人數最小值。您可以選擇二 (2) 到八 (8) 之間的任何值,最多可到 HSM 上的管理員總數。在此範例中,HSM 有四 (4) 個管理員,因此最大可能值為四 (4) 個。
若要使用以下範例命令,請將最終數字 (<2>
) 以您偏好的規定人數最小值加以取代。
aws-cloudhsm >
quorum token-sign set-quorum-value --service user --value
<2>
{ "error_code": 0, "data": "Set quorum value successful" }
在上述範例中,服務識別您要設定的規定人數最小值的 HSM 服務。法定令牌符號 list-quorum-values 會列出服務中包含的 HSM 服務類型、名稱和說明。
管理員服務:規定人數身分驗證用於管理員特殊權限服務,例如建立使用者、刪除使用者、變更使用者密碼、設定規定人數值,以及停用規定人數和 MFA 功能。
每種服務類型都會進一步細分為合格的服務名稱,這包含一組特定的可執行法定人數支援的服務操作。
服務名稱 | 服務類型 | 服務操作 |
---|---|---|
使用者 | 管理員 |
|
規定人數 | 管理員 |
|
使用 quorum token-sign list-quorum-values 命令取得服務的規定人數最小值。
aws-cloudhsm >
quorum token-sign list-quorum-values
{ "error_code": 0, "data": { "user": 2, "quorum": 1 } }
上述 quorum token-sign list-quorum-values 命令的輸出顯示 HSM 使用者服務 (負責使用者管理操作) 的規定人數最小值現在是 2。完成這些步驟之後,請參閱 使用規定人數身分驗證 (M/N)。