本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon MQ 上的 RabbitMQ:無效的 AWS Key Management Service 金鑰 Amazon MQ
使用客戶受管 AWS KMS key(CMK) 建立的代理程式偵測到已停用 AWS Key Management Service (KMS) 金鑰時,Amazon MQ 上的 RabbitMQ 將引發 INVALID_KMS_KEY 關鍵動作必要程式碼。 Amazon MQ 具有 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 動作所需的程式碼,您必須使用 AWS 命令列界面 (CLI) 和 AWS Key Management Service 主控台。
若要重新啟用您的 KMS 金鑰
-
呼叫
DescribeBroker
方法以擷取您 CMK 代理程式的kmsKeyId
。 登入 AWS Key Management Service 主控台。
在 客戶受管金鑰 頁面上,找出有問題的代理程式的 KMS 金鑰 ID,並確認狀態為 已啟用。
如果您的 KMS 金鑰已停用,請選擇 金鑰動作,然後選擇 啟用,以重新啟用金鑰。重新啟用金鑰後,您必須等待 RabbitMQ 從隔離區中刪除代理程序。
若要驗證必要的授權仍與代理程式的 KMS 金鑰相關聯,請呼叫 ListGrant
ListGrant 方法以驗證 mq_rabbit_grant
和 mq_grant
均存在。如果 KMS 授權或金鑰已刪除,則必須刪除該代理程式,並建立一個具有一切必要授權的新代理程式。如需刪除代理程式的步驟,請參閱刪除代理程式。
若要避免 INVALID_KMS_KEY 需要關鍵動作程式碼,請勿手動刪除或停用 KMS 金鑰或 CMK 授權。如果您想要刪除金鑰,請先刪除代理程式。