微消息队列 MQTT 支持云账户(主账号)给 RAM 用户(子账号)授予 Topic 资源级别的权限,避免因暴露阿里云账号(主账号)密钥造成的安全风险。仅限有权限的 RAM 用户在微消息队列 MQTT 的控制台上管理资源,以及通过 SDK/API 发布与订阅消息。

说明 微消息队列 MQTT 目前还不支持跨云账号授权。

应用场景

企业 A 购买了微消息队列 MQTT 服务,企业 A 的员工需要操作这些服务所涉及的资源,例如实例、Topic 或 Group 资源,比如有的负责创建资源,有的负责发布消息,还有的负责订阅消息。由于每个员工的工作职责不一样,需要的权限也不一样。

具体场景说明如下:
  • 出于安全或信任的考虑,企业 A 不希望将云账号密钥直接透露给员工,而希望能给员工创建相应的用户账号。
  • 用户账号只能在授权的前提下操作资源,不需要对用户账号单独计量计费,所有开销都计入企业 A 云账号名下。
  • 企业 A 随时可以撤销用户账号的权限,也可以随时删除其创建的用户账号。

此种场景下,A 的云账号可以将需要员工进行操作的资源进行细粒度的权限分隔。

操作步骤

  1. 企业 A 云账号创建 RAM 用户。

    具体步骤参见创建 RAM 用户

  2. (可选)企业 A 云账号可根据需求为刚创建的 RAM 用户创建自定义的策略。

    具体步骤参见创建自定义策略(可选)

    目前,微消息队列 MQTT 支持实例、Topic 和 Group 粒度的权限设置。详情参见权限策略

  3. 企业 A 云账号为 RAM 用户授权。

    具体步骤参见为 RAM 用户授权

后续步骤

使用阿里云账号(主账号)创建好 RAM 用户后,即可将 RAM 用户的登录名称及密码或者 AccessKey 信息分发给其他用户。其他用户可以按照以下步骤使用 RAM 用户登录控制台或调用 API。

  • 登录控制台
    1. 在浏览器中打开 RAM 用户登录入口
    2. RAM 用户登录页面上,输入 RAM 用户登录名称,单击下一步,并输入 RAM 用户密码,然后单击登录
      说明 RAM 用户登录名称的格式为 <$username>@<$AccountAlias><$username>@<$AccountAlias>.onaliyun.com<$AccountAlias> 为账号别名,如果没有设置账号别名,则默认值为阿里云账号(主账号)的 ID。
    3. 子用户用户中心页面,单击有权限的产品,即可访问控制台。
  • 使用 RAM 用户的 AccessKey 调用 API

    在代码中使用 RAM 用户的 AccessKeyId 和 AccessKeySecret 即可。

更多信息