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

Amazon MQ for RabbitMQ:Amazon Key Management Service 密钥无效

当使用客户托管式 Amazon KMS key(CMK)创建的代理程序检测到 Amazon Key Management Service(CMK)密钥被禁用时,Amazon MQ for RabbitMQ 将引发 INVALID_KMS_KEY 关键操作所需的代码。拥有 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 授权。如果您想删除密钥,请先删除代理。