本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 MQ 上的 RabbitMQ:IAM 代入角色无效
当中指定的 IAM 角色 ARN 无效或亚马逊 MQ 无法代入时,亚马逊 MQ 上的 RabbitMQ 将提出 INVALID_ASSUMEROLE 关键操作要求代码。aws.arns.assume_role_arn当角色不存在、与经纪人位于不同的 AWS 账户或与 mq.amazonaws.com 缺乏必要的信任关系时,就会发生这种情况。
RABBITMQ_INVALID_ASSUMEROLE 隔离区中的代理无法检索 LDAP 身份验证所需的凭据或证书,导致 LDAP 身份验证不可用。如果 LDAP 是唯一配置的身份验证方法,则用户将无法连接到代理。亚马逊 MQ 要求 IAM 角色访问代理配置中 ARN 引用的 AWS 资源,例如 AWS Secrets Manager 机密或用于 LDAP 身份验证的 Amazon S3 对象。
诊断和解决 RABBITMQ_INVALID_ASSUMEROLE
要诊断和解决 RABBITMQ_INVALID_ASSUMEROLE 操作所需的代码,您必须使用亚马逊日志和控制台。 CloudWatch AWS Identity and Access Management
解决无效的代入角色问题
-
导航到 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.254.0> aws_arn_config: {handle_assume_role,{error,{assume_role_failed,"AWS service is unavailable"}}} -
检查 IAM 角色配置并修复任何问题,例如:
确保该角色与经纪人存在于同一个 AWS 账户中
验证信任政策允许 mq.amazonaws.com 代入该角色
确认该角色具有访问所需 AWS 资源的相应权限
-
更新代理配置并重启代理。