

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

# AWS CloudHSM 客户端 SDK 5 密钥复制失败
<a name="troubleshoot-sdk5-key-replicate-failures"></a>

CloudHSM CLI 中的`key replicate`命令将密钥从源集群复制到 AWS CloudHSM 目标集群。 AWS CloudHSM 本指南解决源集群内部或源集群与目标集群之间的不一致而导致的故障。

## 问题：所选密钥未在整个集群中同步
<a name="troubleshoot-sdk5-key-replicate-failures-desynch"></a>

密钥复制过程检查密钥是否已在整个源集群中同步。如果任何密钥信息或属性的值“不一致”，则表示该密钥未在集群内同步。密钥复制失败，并显示以下错误消息：

```
{
  "error_code": 1,
  "data": "The selected key is not synchronized throughout the cluster"
}
```

要检查源集群中的密钥是否不同步，请执行以下操作：

1. 在 CloudHSM CLI 中运行 `key list` 命令。

1. 使用 `--filter ` 标志指定密钥。

1. 添加 `--verbose` 标志，查看包含关键覆盖信息的完整输出。

```
aws-cloudhsm > key list --filter attr.label=example-desynchronized-key-label --verbose
{
  "error_code": 0,
  "data": {
    "matched_keys": [
      {
        "key-reference": "0x000000000048000f",
        "key-info": {
          "key-owners": [
            {
              "username": "cu1",
              "key-coverage": "full"
            }
          ],
          "shared-users": [],
        "key-quorum-values": {
          "manage-key-quorum-value": 0,
          "use-key-quorum-value": 0
        },
          "cluster-coverage": "full"
        },
        "attributes": {
          "key-type": "aes",
          "label": "example-desynchronized-key-label",
          "id": "0x",
          "check-value": "0xbe79db",
          "class": "secret-key",
          "encrypt": false,
          "decrypt": false,
          "token": true,
          "always-sensitive": true,
          "derive": false,
          "destroyable": true,
          "extractable": true,
          "local": true,
          "modifiable": true,
          "never-extractable": false,
          "private": true,
          "sensitive": true,
          "sign": "inconsistent",
          "trusted": false,
          "unwrap": false,
          "verify": true,
          "wrap": false,
          "wrap-with-trusted": false,
          "key-length-bytes": 16
        }
      }
    ],
    "total_key_count": 1,
    "returned_key_count": 1
  }
}
```

**解决方法：在整个源集群中同步密钥信息和属性**

要在整个源集群中同步密钥信息和属性，请执行以下操作：

1.  对于密钥属性不一致的情况：请使用 `key set-attribute` 命令为特定密钥设置所需的属性。

1.  对于共享用户覆盖范围不一致的情况：请使用 `key share` 或 `key unshare` 命令调整与所需用户共享的密钥。

## 问题：目标集群中存在具有相同引用但具有不同信息或属性的密钥
<a name="troubleshoot-sdk5-key-replicate-failures-ref-attribs"></a>

 如果目标集群中存在具有相同引用但具有不同信息或属性的密钥，可能会出现以下错误：

```
{
  "error_code": 1,
  "data": "Key replicate failed on 1 of 3 connections"
}
```

**解决方案**

1. 确定应保留哪个版本的密钥。

1. 在相应的集群中使用 `key delete` 命令删除不需要的密钥版本。

1. 从版本正确的集群复制该密钥。