

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 亚马逊 MQ 上的 RabbitMQ：IAM 代入角色无效
<a name="troubleshooting-action-required-codes-invalid-assumerole"></a>

 当中指定的 IAM 角色 ARN 无效或无法由亚马逊 MQ 担任时，亚马逊 MQ 上的 RabbitMQ 将引发一个 INVALID\$1ASSUMEROLE 关键操作所需的代码。`aws.arns.assume_role_arn`当该角色不存在、与经纪人位于不同的 AWS 账户中，或者与 mq.amazonaws.com 缺乏必要的信任关系时，就会发生这种情况。

 RABBITMQ\$1INVALID\$1ASSUMEROLE 隔离区中的代理无法检索 LDAP 身份验证所需的凭据或证书，从而导致 LDAP 身份验证不可用。如果 LDAP 是唯一配置的身份验证方法，则用户将无法连接到代理。Amazon MQ 需要使用 IAM 角色才能访问代理配置 ARNs 中引用的 AWS 资源，例如用于 LDAP 身份验证的 AWS Secrets Manager 密钥或 Amazon S3 对象。

## 诊断和解决 RABBITMQ\$1INVALID\$1ASSUMEROLE
<a name="w2aac40c29b7"></a>

 要诊断和解决 RABBITMQ\$1INVALID\$1ASSUMEROLE 操作所需的代码，您必须使用亚马逊日志和控制台。 CloudWatch AWS Identity and Access Management 

**解决无效的代入角色问题**

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
   ```

1. 查找类似于以下内容的错误消息：

   ```
   [error] <0.254.0> aws_arn_config: {handle_assume_role,{error,{assume_role_failed,"AWS service is unavailable"}}}
   ```

1. 检查 IAM 角色配置并修复任何问题，例如：
   + 确保该角色与经纪人位于同一个 AWS 账户中
   + 验证信任策略是否允许 mq.amazonaws.com 担任该角色
   + 确认该角色具有访问所需 AWS 资源的相应权限

1. 在更新代理配置之前，使用 [ARN 访问验证](arn-support-rabbitmq-configuration.md#arn-support-validation) API 端点验证修复程序。

1. 更新代理配置并重启代理。