适用于 RabbitMQ 的亚马逊 MQ 的 IAM 身份验证和授权 - Amazon MQ

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

适用于 RabbitMQ 的亚马逊 MQ 的 IAM 身份验证和授权

适用于 RabbitMQ 的亚马逊 MQ 支持多种身份验证和授权方法。有关所有支持方法的信息,请参阅适用于 RabbitMQ 代理的 Amazon MQ 身份验证和授权

IAM 身份验证和授权允许代理用户通过 AWS IAM 出站联合使用 IAM 凭证进行身份验证。在此方法中,IAM 证书用于从 AWS 安全令牌服务 (STS) 获取 JWT 令牌。这些 JWT 令牌用作身份验证的 OAuth 2.0 令牌,利用了亚马逊 MQ 中对 RabbitMQ 的现有 OAuth 2.0 支持, AWS 其中充当 2.0 身份提供商。 OAuth AWS IAM 处理用户身份验证,而虚拟主机、交易所、队列和主题的资源权限则通过 RabbitMQ 中配置的 IAM 策略和范围别名进行管理。

重要注意事项
  • RabbitMQ 3.13、4.2 及更高版本支持 IAM 身份验证。Amazon MQ 不支持 ActiveMQ 经纪商。

  • IAM 身份验证要求配置并可在您的 AWS 账户中使用 IAM 出站联合。

  • 此方法建立在 Amazon MQ for RabbitMQ 中的现有 OAuth 2.0 基础架构之上,用作 2.0 身份 AWS 提供商。 OAuth

  • Amazon MQ 会自动创建一个名为 monitoring-AWS-OWNED-DO-NOT-DELETE 的系统用户,该用户仅具有监控权限。即使在支持 IAM 的代理上,该用户也使用 RabbitMQ 的内部身份验证系统,并且只能访问环回接口。

IAM 身份验证的工作原理

适用于 RabbitMQ 的 Amazon MQ 的 IAM 身份验证使用 IAM 出站联合身份验证来启用 IA AWS M 凭证向 RabbitMQ 代理进行身份验证。IAM 证书用于从 AWS 安全令牌服务 (STS) 获取 JWT 令牌,而这些 JWT 令牌可用作 OAuth 2.0 令牌,用于向 RabbitMQ 代理进行身份验证。

限制

适用于 RabbitMQ 的 Amazon MQ 的 IAM 身份验证存在以下限制:

  • 作用域声明配置 — 您不能直接使用范围声明,因为 STS 中的 JWT 令牌是嵌套的。关键是sts.amazonaws.com,这需要在 RabbitMQ 配置中使用作用域别名将 IAM 角色映射到 RabbitMQ 权限。此限制还会阻止使用 IAM 策略进行完全授权,而是需要配置 RabbitMQ 才能进行授权。

有关如何为您的 Amazon MQ for RabbitMQ 代理配置 IAM 身份验证和授权的信息,请参阅。使用 IAM 身份验证和授权