Amazon MQ 上的 RabbitMQ:無效的 HTTP ARN Amazon MQ - Amazon MQ

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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.cacertfileaws.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 問題
  1. 導覽至 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
  2. 尋找類似以下的錯誤訊息:

    [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"}}
  3. 檢查 S3 Object/Secrets Manager 秘密並修正任何問題,例如:

    • 確認資源與代理程式位於相同的 AWS 區域中

    • 確認 ARN 語法正確

    • 確保 IAM 角色具有 s3:GetObject 和 secretsmanager:GetSecretValue 許可

  4. 在更新代理程式組態之前,使用 ARN 存取驗證 API 端點驗證修正。

  5. 更新代理程式組態並重新啟動代理程式。