开发者社区> 问答> 正文

消息服务MNS报“[Error Code]:403 AccessDenied [Message]:T

消息服务MNS报“[Error Code]:403 AccessDenied [Message]:The OwnerId that your Access Key Id associated to is forbidden for this operation.”的错误,如何解决?

展开
收起
保持可爱mmm 2020-03-29 00:25:40 1480 0
1 条回答
写回答
取消 提交回答
  • 问题原因 引发该报错的可能性如下。 跨地域访问MNS队列。 使用私网队列地址时,生产端、消费端必须部署在相应地域的ECS上,否则会报上述错误。 使用公网队列地址时,生产端、消费端可以部署在本地,也可以部署在任意地域且开通公网访问的ECS上。 OwnerId配置错误。OwnerId指阿里云账号的账号ID,您可以在阿里云控制台选择 账号管理 > 安全设置 查看。

    错误的RAM账号或者RAM账号权限配置异常。 调用HTTP API时,使用的URL地址与标志头不对应。详情请参考更多信息。 使用了非阿里云官方的SDK。

    解决方案 请参考如下步骤进行排查。 登录消息服务MNS的控制台,切换到MNS实例所在的地域,单击 队列,确认存在您创建的MNS实例。单击 获取Endpoint。 注:获取的Endpoint地址中,以数字开头的信息即为OwnerId。

    检查生产端和消费端使用的Endpoint地址和OwnerId是否正确。 检查生产端和消费端是否符合如下原则。如果不符合,需要参考如下原则进行调整。 使用私网队列地址时,生产端、消费端必须部署在相应地域的ECS上。 使用公网队列地址时,生产端、消费端可以部署在本地,也可以部署在任意地域且开通公网访问的ECS上。 如果使用RAM账号访问MNS实例,请检查主账号的RAM配置是否正确。例如,主账号RAM配置中授权的资源如下,RAM子账号实际访问的队列是/queues/busi-msn/messages,那么也会由于不匹配,导致报错。关于如何配置RAM账号,请参见子账号访问MNS。

    "Resource": [ "acs:mns:::/queues", "acs:mns:::/queues/busi-test", "acs:mns:::/queues/busi-test/*" 如果排查完以上几点后,该报错仍然存在,可能是因为您使用了非官方的SDK或者调用HTTP API时,使用的URL地址与标志头不对应。详情请参考更多信息。

    更多信息 消息服务MNS在正式商用前,名为MQS。正式商用前后,获取Endpoint中显示的信息是不同的。 正式商用前,Endpoint地址为http://y9g.mqs-cn-beijing.aliyuncs.com/。 正式商用后,Endpoint地址为http://44404.mns.cn-beijing.aliyuncs.com/。 注:上述Endpoint地址仅为示例,现场以实际情况为准。后文中旧Endpoint地址指http://y9g.mqs-cn-beijing.aliyuncs.com/;新Endpoint地址指http://44404.mns.cn-beijing.aliyuncs.com/。

    消息服务MNS正式商用后,在兼容旧协议规则的同时,启用了新协议规则。http header x-mns-version就是服务端用来识别新旧协议的标志头。
    如果用户发送的请求包含x-mns-version: 2015-06-06,服务端将使用新协议规则解析。 如果用户发送的请求包含x-mqs-version: xxxx-xx-xx,服务端将使用旧协议规则解析。

    因此,您需要参考如下规范来使用消息服务MNS。 调用HTTP API时,请求中的URL地址必须和标志头对应。如果URL使用新地址,标志头却用x-mqs-version:xxxx-xx-xx,那么还是会报错。 使用SDK时,如果使用非官方SDK,非官方SDK可能没有新旧Endpoint地址识别的功能,当用户使用新Endpoint地址时,可能会出现问题。建议使用阿里云官方SDK,一方面能够得到有保证的支持,另一方面官方SDK提供了BatchSendMessage、BatchReceiveMessage等批量操作,可以带来更高的消息处理效率,而这些功能是没有包含在非官方SDK包里的。如果不想更改已有代码,坚持使用非官方SDK(不推荐),则可以联系阿里云技术支持获取旧Endpoint地址。

    2020-03-29 00:28:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载