

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

# 亚马逊 MQ 上的 RabbitMQ：密钥无效 AWS Key Management Service
<a name="troubleshooting-action-required-codes-invalid-kms-key"></a>

 当使用客户托管 AWS KMS key(CMK) 创建的代理检测到 (KMS) 密钥被禁用时，亚马逊 MQ 上的 RabbitMQ 将引发一个 INVALID\$1KMS\$1KEY 关键操作所需的代码。 AWS Key Management Service 拥有 CMK 的 RabbitMQ 代理程序会定期验证 KMS 密钥是否已启用以及代理程序是否具有所有必要的授权。如果 RabbitMQ 无法验证密钥是否已启用，则代理程序将被隔离，RabbitMQ 将返回 INVALID\$1KMS\$1KEY。

 如果没有有效的 KMS 密钥，代理程序就没有客户托管式 KMS 密钥的基本权限。在您重新启用密钥和代理程序重新启动之前，代理程序无法使用您的密钥执行加密操作。KMS 密钥已禁用的 RabbitMQ 代理程序会被隔离，以防止情况恶化。在 RabbitMQ 确定 KMS 密钥再次处于活动状态后，您的代理程序将从隔离区中移除。Amazon MQ 不会使用禁用的 KMS 密钥重新启动代理程序，并且，只要代理程序继续具有无效的 KMS 密钥，就会为 `RebootBroker` API 操作返回异常。

## 诊断和解决 INVALID\$1KMS\$1KEY
<a name="w2aac40c21b7"></a>

 要诊断和解决 INVALID\$1KMS\$1KEY 操作所需的代码，必须使用命令 AWS 行界面 (CLI) 和控制台。 AWS Key Management Service 

**重新启用您的 KMS 密钥**

1. 调用 `DescribeBroker` 方法以检索 CMK 代理程序的 `kmsKeyId`。

1. 登录 AWS Key Management Service 控制台。

1. 在**客户托管式密钥**页面上，找到有问题的代理程序的 KMS 密钥 ID，并验证状态为**已启用**。

1. 如果您的 KMS 密钥已被禁用，请通过选择**密钥操作**来重新启用密钥，然后选择**启用**。重新启用密钥后，您必须等待 RabbitMQ 将代理程序从隔离区中删除。

 要验证必要的授权是否仍与代理的 KMS 密钥相关联，请调用`ListGrant`ListGrant 方法来验证`mq_rabbit_grant`和`mq_grant`是否存在。如果 KMS 授权或密钥已被删除，则必须删除代理程序，并使用所有必要的授权创建一个新的代理程序。有关删除代理程序的步骤，请参阅[删除代理程序](https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/amazon-mq-deleting-broker.html)。

 要防止 INVALID\$1KMS\$1KEY 关键操作所需的代码，请勿手动删除或禁用 KMS 密钥或 CMK 授权。如果您想删除密钥，请先删除代理。