

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

# 查找密钥的 KMS AWS CloudHSM 密钥
<a name="find-label-for-key-handle"></a>

如果您知道集群中`kmsuser`拥有的密钥的密钥引用或 ID，则可以使用该值来标识密钥存储中关联的 KMS AWS CloudHSM 密钥。

在您的 AWS CloudHSM 集群中为 KMS 密钥 AWS KMS 创建密钥材料时，它会在密钥标签中写入 KMS 密钥的 Amazon 资源名称 (ARN)。除非您已更改标签值，否则可在 CloudHSM CLI 中使用 [key list](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html) 命令来识别与 AWS CloudHSM 密钥关联的 KMS 密钥。

**注意**  
以下过程使用 AWS CloudHSM 客户端 SDK 5 命令行工具 [CloudHSM C](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli.html) LI。CloudHSM CLI 将 `key-handle` 替换为 `key-reference`。  
2025 年 1 月 1 日， AWS CloudHSM 将终止对客户端 SDK 3 命令行工具、CloudHSM 管理实用程序 (CMU) 和密钥管理实用程序 (KMU) 的支持。有关客户端 SDK 3 命令行工具和客户端 SDK 5 命令行工具之间区别的更多信息，请参阅《AWS CloudHSM 用户指南》**中的[从客户端 SDK 3 CMU 和 KMU 迁移到客户端 SDK 5 CloudHSM CLI](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-migrate-from-kmu-cmu.html)。

要运行这些过程，你需要暂时断开 AWS CloudHSM 密钥存储的连接，这样你才能以 `kmsuser` CU 的身份登录。

**注意**  
虽然自定义密钥存储已断开连接，但在自定义密钥存储中创建 KMS 密钥或在加密操作中使用现有 KMS 密钥的所有尝试都将失败。此操作可以阻止用户存储和访问敏感数据。

**Topics**
+ [识别与密钥参考关联的 KMS 密钥](#key-reference-filter)
+ [识别与配对密钥 ID 关联的 KMS 密钥](#backing-key-id-filter)

## 识别与密钥参考关联的 KMS 密钥
<a name="key-reference-filter"></a>

以下过程演示如何在 CloudHSM CLI 中使用 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html) 命令和 `key-reference` 属性筛选器，在集群中查找用作 AWS CloudHSM 密钥存储中特定 KMS 密钥的密钥材料的密钥。

1. 如果 AWS CloudHSM 密钥存储尚未断开连接，请断开密钥库的连接，然后以身份登录`kmsuser`，如中所述[如何断开和登录](fix-keystore.md#login-kmsuser-1)。

1. 使用 CloudHSM CLI 中的 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html) 命令，按 `key-reference` 属性进行筛选。指定 `verbose` 参数以包含匹配密钥的所有属性和密钥信息。如果不指定 `verbose` 参数，则**密钥列表**操作将仅返回匹配密钥的密钥参考和标签属性。

   在运行此命令之前，请将示例 `key-reference` 替换为您账户中的有效密钥 ID。

   ```
   aws-cloudhsm > key list --filter attr.key-reference="0x0000000000120034" --verbose
   {
     "error_code": 0,
     "data": {
       "matched_keys": [
         {
           "key-reference": "0x0000000000120034",
           "key-info": {
             "key-owners": [
               {
                 "username": "kmsuser",
                 "key-coverage": "full"
               }
             ],
             "shared-users": [],
             "cluster-coverage": "full"
           },
           "attributes": {
             "key-type": "aes",
             "label": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
             "id": "0xbacking-key-id",
             "check-value": "0x29bbd1",
             "class": "my_test_key",
             "encrypt": true,
             "decrypt": true,
             "token": true,
             "always-sensitive": true,
             "derive": false,
             "destroyable": true,
             "extractable": false,
             "local": true,
             "modifiable": true,
             "never-extractable": false,
             "private": true,
             "sensitive": true,
             "sign": false,
             "trusted": false,
             "unwrap": true,
             "verify": false,
             "wrap": true,
             "wrap-with-trusted": false,
             "key-length-bytes": 32
           }
         }
       ],
       "total_key_count": 1,
       "returned_key_count": 1
     }
   }
   ```

1. 注销并重新连接 AWS CloudHSM 密钥库，如中所述。[如何注销并重新连接](fix-keystore.md#login-kmsuser-2)

## 识别与配对密钥 ID 关联的 KMS 密钥
<a name="backing-key-id-filter"></a>

密钥存储中使用 KMS 密钥进行加密操作的所有 CloudTrail 日志条目都包含带有`customKeyStoreId`和`backingKeyId`的`additionalEventData`字段。 AWS CloudHSM `backingKeyId` 字段中返回的值与 CloudHSM 密钥 `id` 属性关联。您可以按 `id` 属性筛选[https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html)操作，识别与特定 `backingKeyId` 关联的 KMS 密钥。

1. 如果 AWS CloudHSM 密钥存储尚未断开连接，请断开密钥库的连接，然后以身份登录`kmsuser`，如中所述[如何断开和登录](fix-keystore.md#login-kmsuser-1)。

1. 在 CloudHSM CLI 中使用 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-list.html) 命令和属性筛选器，在集群中查找用作 AWS CloudHSM 密钥存储中特定 KMS 密钥的密钥材料的密钥。

   以下示例演示如何按 `id` 属性进行筛选。 AWS CloudHSM 将 `id` 值识别为十六进制值。要按`id`属性筛选**密钥列表**操作，必须先将您在 CloudTrail 日志条目中标识的`backingKeyId`值转换为可 AWS CloudHSM 识别的格式。

   1. 使用以下 Linux 命令将 `backingKeyId` 转换为十六进制表示形式。

      ```
      echo backingKeyId | tr -d '\n' |  xxd -p
      ```

      以下示例演示了如何将 `backingKeyId` 字节数组转换为十六进制表示形式。

      ```
      echo 5890723622dc15f699aa9ab2387a9f744b2b884c18b2186ee8ada4f556a2eb9d | tr -d '\n' |  xxd -p
      35383930373233363232646331356636393961613961623233383761396637343462326238383463313862323138366565386164613466353536613265623964
      ```

   1. 在 `backingKeyId` 的十六进制表示形式前面加上 `0x`。

      ```
      0x35383930373233363232646331356636393961613961623233383761396637343462326238383463313862323138366565386164613466353536613265623964
      ```

   1. 使用转换后的 `backingKeyId` 值按 `id` 属性进行筛选。指定 `verbose` 参数以包含匹配密钥的所有属性和密钥信息。如果不指定 `verbose` 参数，则**密钥列表**操作将仅返回匹配密钥的密钥参考和标签属性。

      ```
      aws-cloudhsm > key list --filter attr.id="0x35383930373233363232646331356636393961613961623233383761396637343462326238383463313862323138366565386164613466353536613265623964" --verbose
      {
        "error_code": 0,
        "data": {
          "matched_keys": [
            {
              "key-reference": "0x0000000000120034",
              "key-info": {
                "key-owners": [
                  {
                    "username": "kmsuser",
                    "key-coverage": "full"
                  }
                ],
                "shared-users": [],
                "cluster-coverage": "full"
              },
              "attributes": {
                "key-type": "aes",
                "label": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                "id": "0x35383930373233363232646331356636393961613961623233383761396637343462326238383463313862323138366565386164613466353536613265623964",
                "check-value": "0x29bbd1",
                "class": "my_test_key",
                "encrypt": true,
                "decrypt": true,
                "token": true,
                "always-sensitive": true,
                "derive": false,
                "destroyable": true,
                "extractable": false,
                "local": true,
                "modifiable": true,
                "never-extractable": false,
                "private": true,
                "sensitive": true,
                "sign": false,
                "trusted": false,
                "unwrap": true,
                "verify": false,
                "wrap": true,
                "wrap-with-trusted": false,
                "key-length-bytes": 32
              }
            }
          ],
          "total_key_count": 1,
          "returned_key_count": 1
        }
      }
      ```

1. 注销并重新连接 AWS CloudHSM 密钥库，如中所述。[如何注销并重新连接](fix-keystore.md#login-kmsuser-2)