本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon MQ 上的 RabbitMQ:無效的 HTTP ARN Amazon MQ
當 HTTP auth_backend 的一個或多個 ARNs 無效或無法存取時,Amazon MQ 上的 RabbitMQ 將引發 INVALID_ARN_HTTP 關鍵動作必要程式碼。 Amazon MQ 這適用於 aws.arns.auth_http.ssl_options.cacertfile、 aws.arns.auth_http.ssl_options.certfile或 中指定的 ARNSaws.arns.auth_http.ssl_options.keyfile,其必須參考包含憑證和私有金鑰的 Amazon S3 物件和 AWS Secrets Manager 秘密。
RABBITMQ_INVALID_ARN_HTTP 隔離中的代理程式無法透過 HTTP 伺服器進行身分驗證。如果 HTTP 是唯一設定的身分驗證方法,使用者將無法連線到代理程式。無效的 ARNs可能是由格式不正確的 ARN 語法、對不存在秘密的參考、與代理程式位於不同 AWS 區域的秘密,或 IAM 角色中的 s3:GetObject/secretsmanager:GetSecretValue 許可不足所造成。
診斷和解決 RABBITMQ_INVALID_ARN_HTTP
若要診斷和解決 RABBITMQ_INVALID_ARN_HTTP 動作所需的程式碼,您必須使用 Amazon CloudWatch Logs 和 主控台。
解決無效的 HTTP ARN 問題
-
導覽至 Amazon CloudWatch Logs Insights,並針對代理程式的日誌群組 執行下列查詢
/aws/amazonmq/broker/<broker-id>/general:fields @timestamp, @message | sort @timestamp desc | filter @message like /error.*aws_arn_config/ | limit 10000 -
尋找類似以下的錯誤訊息:
[error] <0.209.0> aws_arn_config: {<<"could not resolve ARN 'arn:aws:s3:::xxxx' for configuration 'aws.arns.auth_http.ssl_options.certfile', error: \"AWS service is unavailable\"">>,{error,"AWS service is unavailable"}} -
檢查 S3 Object/Secrets Manager 秘密並修正任何問題,例如:
確認資源與代理程式位於相同的 AWS 區域中
確認 ARN 語法正確
確保 IAM 角色具有 s3:GetObject 和 secretsmanager:GetSecretValue 許可
-
在更新代理程式組態之前,使用 ARN 存取驗證 API 端點驗證修正。
-
更新代理程式組態並重新啟動代理程式。