本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Cloud 为 AWS CloudHSM 管理员设置法定身份验证 HSM CLI
以下主题描述了配置硬件安全模块 (HSM) 以便 AWS CloudHSM 管理员可以使用法定身份验证时必须完成的步骤。当您首次为管理员配置仲裁身份验证时,只需执行下列步骤一次。完成这些步骤后,请参阅 为使用 Cloud 启用法定身份验证的 AWS CloudHSM 用户管理 HSM CLI。
先决条件
要理解这个例子,你应该熟悉 Cloud HSM CLI。在此示例中, AWS CloudHSM 集群有两个HSMs,每个集群都有相同的管理员,如user list命令的以下输出所示。有关创建用户的更多信息,请参见 使用 Cloud 进行用户管理 HSM 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"
}
]
}
}
第 1 步。创建并注册签名密钥
要使用仲裁身份验证,每个管理员都必须完成以下所有操作:
创建密RSA钥对
创建和保护密钥对的方式有多种。以下示例显示了如何使用 Open
例 — 使用 Open 创建私钥 SSL
以下示例演示如何使用 Open SSL 创建受密码保护的 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:
接下来,使用您刚刚创建的私钥生成公有密钥。
例 — 使用 Open 创建公钥 SSL
以下示例演示如何使用 Open SSL 根据您刚刚创建的私钥创建公钥。
$
openssl rsa -in admin.key -outform PEM -pubout -out admin1.pub
Enter pass phrase for admin.key: writing RSA key
创建注册令牌并签名
创建一个令牌,并使用上一步生成的私有密钥签名。
例 – 创建注册令牌
-
使用以下命令启动 Cloud HSMCLI:
-
通过运行quorum token-sign generate命令创建注册令牌:
aws-cloudhsm >
quorum token-sign generate --service registration --token /path/tokenfile
{ "error_code": 0, "data": { "path": "/path/tokenfile" } }
-
quorum token-sign generate命令在指定的文件路径上生成注册令牌。检查令牌文件:
$
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:approval_data 的 base64 编码和SHA256哈希令牌。
已签名:未签名令牌的 base64 编码签名令牌(签名),使用先前通过 Open 生成的 RSA 2048 位私钥。SSL
您通过私钥对未签名令牌进行签名,以证明您有权访问私钥。您需要在注册令牌文件中完全填充签名和公钥,才能将管理员注册为集群的法定用户。 AWS CloudHSM
例 – 对未签名注册令牌签名
解码 base64 编码的未签名令牌,并将其放入二进制文件:
$
echo -n '6BMUj6mUjjko6ZLCEdzGlWpR5sILhFJfqhW1ej3Oq1g=' | base64 -d > admin.bin
使用 Open SSL 和私钥对现在的二进制未签名注册令牌进行签名并创建二进制签名文件:
$
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
-
使用以下命令启动 Cloud HSMCLI:
-
使用 Cloud HSMCLI,以管理员身份登录。
aws-cloudhsm >
login --username admin --role admin
Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } } -
使用 使用 Cloud 注册用户的代币签名法定人数策略 HSM CLI 命令注册公有密钥。有关更多信息,请参阅以下示例或使用 help user change-quorum token-sign register 命令。
例 — 向集 AWS CloudHSM 群注册公钥
以下示例说明如何在 Cloud 中使用user change-quorum token-sign register命令HSMCLI向注册管理员的公钥。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" } ] } }
第 2 步。在上设置法定人数的最小值 HSM
要使用法定身份验证,管理员必须登录HSM并设置法定人数的最小值。这是执行HSM用户管理操作所需的最低管理员批准数量。上的任何管理员HSM都可以设置法定人数的最小值,包括尚未注册签名密钥的管理员。您可以随时更改仲裁最小值;有关更多信息,请参阅 更改最小值。
要在上设置法定人数最小值 HSM
-
使用以下命令启动 Cloud HSMCLI:
-
使用 Cloud HSMCLI,以管理员身份登录。
aws-cloudhsm >
login --username admin --role admin
Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } } -
使用 使用 Cloud 更新法定值 HSM CLI 命令设置仲裁最小值。有关更多信息,请参阅以下示例或使用 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服务。该使用 Cloud 显示法定值 HSM CLI命令列出了HSM服务中包含的服务类型、名称和描述。
管理员服务:法定身份验证用于管理员特权服务,例如创建用户、删除用户、更改用户密码、设置法定值以及停用法定人数和权能。MFA
每个服务类型都进一步细分为限定服务名称,其中包含一组特定的、可执行的仲裁支持服务操作。
服务名称 | 服务类型 | 服务操作 |
---|---|---|
用户 | Admin |
|
仲裁 | Admin |
|
集群 1 | Admin |
|
[1] 集群服务仅在 hsm2m.medium 上提供
使用 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 of N)。