

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 CMU 列出 AWS CloudHSM 加密用户拥有的密钥
<a name="cloudhsm_mgmt_util-findAllKeys"></a>

使用 c AWS CloudHSM loudhsm\$1mgmt\$1util (CMU) 中的**findAllKeys**命令获取指定加密用户 (CU) 拥有或共享的密钥。 AWS CloudHSM 该命令还会返回每个的用户数据的哈希值 HSMs。您可以使用哈希值一目了然地确定集群 HSMs 中所有用户、密钥所有权和密钥共享数据是否相同。在输出中，用户拥有的密钥由 `(o)` 进行注释，而共享密钥由 `(s)` 进行注释。

**findAllKeys**仅当指定的 CU 拥有密钥时才返回公钥，即使 HSM CUs 上的所有用户都可以使用任何公钥。此行为不同于 key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md)，前者将为所有 CU 用户返回公有密钥。

只有加密官员（COs 和 PCOs）和设备用户（AUs）才能运行此命令。加密用户 (CUs) 可以运行以下命令：
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)，用于查找所有用户
+ 通过 key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md) 可以找到其可以使用的密钥
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)在 key\$1mgmt\$1util 中查找他们拥有或共享的特定密钥的所有者和共享用户

在运行任何 CMU 命令之前，必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。

如果添加或删除 HSMs，请更新 CMU 的配置文件。否则，您所做的更改可能不会对集群 HSMs 中的所有人生效。

## 用户类型
<a name="findAllKeys-userType"></a>

以下用户均可运行此命令。
+ 加密员 (CO、PCO)
+ 设备用户 (AU)

## 语法
<a name="findAllKeys-syntax"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
findAllKeys <user id> <key hash (0/1)> [<output file>]
```

## 示例
<a name="findAllKeys-examples"></a>

这些示例说明`findAllKeys`如何使用查找用户的所有密钥并获取每个密钥的密钥用户信息的哈希值 HSMs。

**Example ：查找 CU 的密钥**  
此示例**findAllKeys**用于在用户 4 拥有和共享 HSMs 的中查找密钥。该命令使用第二个参数的值 `0` 来隐藏哈希值。由于本示例忽略了可选的文件名，因此该命令将写入到 stdout（标准输出）。  
输出表明用户 4 可使用 6 个密钥：8、9、17、262162、19 和 31。输出使用 `(s)` 指示用户显式共享的密钥。用户拥有的密钥由 `(o)` 表示，包含用户未共享的对称密钥和私有密钥，以及对所有加密用户可用的公有密钥。  

```
aws-cloudhsm> findAllKeys 4 0
Keys on server 0(10.0.0.1):
Number of keys found 6
number of keys matched from start index 0::6
8(s),9(s),17,262162(s),19(o),31(o)
findAllKeys success on server 0(10.0.0.1)

Keys on server 1(10.0.0.2):
Number of keys found 6
number of keys matched from start index 0::6
8(s),9(s),17,262162(s),19(o),31(o)
findAllKeys success on server 1(10.0.0.2)

Keys on server 1(10.0.0.3):
Number of keys found 6
number of keys matched from start index 0::6
8(s),9(s),17,262162(s),19(o),31(o)
findAllKeys success on server 1(10.0.0.3)
```

**Example ：验证用户数据是否已同步**  
此示例**findAllKeys**用于验证集群 HSMs 中的所有用户是否都包含相同的用户、密钥所有权和密钥共享值。为了执行此操作，它获取了每个 HSM 上的密钥用户数据的哈希并比较了哈希值。  
为了获取密钥哈希，该命令在第二个参数中使用了值 `1`。由于可选文件名已忽略，因此该命令将密钥哈希写入到 stdout。  
该示例指定了用户`6`，但是对于拥有或共享上任何密钥的任何用户，哈希值都将相同 HSMs。如果指定的用户不拥有或共享任何密钥 (如 CO)，则该命令不会返回哈希值。  
输出显示密钥哈希值与集群 HSMs 中的两者相同。如果其中一个 HSM 具有不同的用户、不同的密钥所有者或不同的共享用户，密钥哈希值将不相等。  

```
aws-cloudhsm> findAllKeys 6 1
Keys on server 0(10.0.0.1):
Number of keys found 3
number of keys matched from start index 0::3
8(s),9(s),11,17(s)
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 0(10.0.0.1)
Keys on server 1(10.0.0.2):
Number of keys found 3
number of keys matched from start index 0::3
8(s),9(s),11(o),17(s)
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 1(10.0.0.2)
```
此命令演示了哈希值表示 HSM 上的所有密钥的用户数据。此命令对用户 3 使用了 **findAllKeys**。与仅拥有或共享 3 个密钥的用户 6 不同，用户 3 拥有或共享 17 个密钥，但它们的密钥哈希值是相同的。  

```
aws-cloudhsm> findAllKeys 3 1
Keys on server 0(10.0.0.1):
Number of keys found 17
number of keys matched from start index 0::17
6(o),7(o),8(s),11(o),12(o),14(o),262159(o),262160(o),17(s),262162(s),19(s),20(o),21(o),262177(o),262179(o),262180(o),262181(o)
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 0(10.0.0.1)
Keys on server 1(10.0.0.2):
Number of keys found 17
number of keys matched from start index 0::17
6(o),7(o),8(s),11(o),12(o),14(o),262159(o),262160(o),17(s),262162(s),19(s),20(o),21(o),262177(o),262179(o),262180(o),262181(o)
Key Hash:
55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49

findAllKeys success on server 1(10.0.0.2)
```

## 参数
<a name="findAllKeys-params"></a>

由于此命令没有命名参数，因此您必须按语法图中指定的顺序输入参数。

```
findAllKeys <user id> <key hash (0/1)> [<output file>]
```

**<user id>**  
获取指定用户拥有或共享的所有密钥。在上输入用户的用户 ID HSMs。要查找所有用户的 IDs 用户，请使用[列表](cloudhsm_mgmt_util-listUsers.md)用户。  
所有用户 IDs 均有效，但仅`findAllKeys`返回加密用户的密钥 (CUs)。  
是否必需：是

**<key hash>**  
包含 (`1`) 或排除 (`0`) 用户所有权以及每个 HSM 中的所有密钥的共享数据的哈希。  
当 `user id` 参数表示拥有或共享密钥的用户时，系统将填充密钥哈希。密钥哈希值对拥有或共享 HSM 上的密钥的所有用户都是相同的，即使它们拥有和共享不同的密钥。但是，当 `user id` 表示不拥有或共享任何密钥的用户 (如 CO) 时，将不会填充哈希值。  
是否必需：是

**<output file>**  
将输出写入到指定文件。  
必需：否  
默认值：Stdout

## 相关主题
<a name="findAllKeys-seealso"></a>
+ [changePswd](cloudhsm_mgmt_util-changePswd.md)
+ [deleteUser](cloudhsm_mgmt_util-deleteUser.md)
+ [listUsers](cloudhsm_mgmt_util-listUsers.md)
+ [syncUser](cloudhsm_mgmt_util-syncUser.md)
+ key\$1mgmt\$1util 中的 [findKey](key_mgmt_util-findKey.md)
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)在 key\$1mgmt\$1util 中