适用于 RabbitMQ 的亚马逊 MQ:密钥无效 Amazon Key Management Service - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

适用于 RabbitMQ 的亚马逊 MQ:密钥无效 Amazon Key Management Service

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

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

诊断和解决 INVALID_KMS_KEY

要诊断和解决 INVALID_KMS_KEY 操作所需的代码,必须使用命令 Amazon 行界面 (CLI) 和控制台。 Amazon Key Management Service

重新启用您的 KMS 密钥
  1. 调用 DescribeBroker 方法以检索 CMK 代理程序的 kmsKeyId

  2. 登录 Amazon Key Management Service 控制台。

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

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

要验证必要的授权是否仍与代理的 KMS 密钥相关联,请调用ListGrantListGrant 方法来验证mq_rabbit_grantmq_grant是否存在。如果 KMS 授权或密钥已被删除,则必须删除代理程序,并使用所有必要的授权创建一个新的代理程序。有关删除代理程序的步骤,请参阅删除代理程序

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