本账号RAM用户授权服务端订阅

物联网平台服务端订阅功能支持通过RAM角色授权RAM用户操作,本文档介绍如何通过RAM角色授权RAM用户接收物联网平台配置的服务端订阅消息。

背景信息

STS(Security Token Service)是阿里云提供的一种临时访问权限管理服务。RAM提供RAM用户和RAM角色两种身份。

RAM角色是一种虚拟用户,可以被授予一组权限策略。与RAM用户不同,RAM角色没有确定的登录密码或访问密钥,它需要被一个可信的实体用户(RAM用户、阿里云服务或身份提供商)扮演。扮演成功后实体用户将获得RAM角色的临时身份凭证,即安全令牌(STS Token),使用安全令牌就能以RAM角色身份访问被授权的资源。

了解STS的功能特性和优势,请参见什么是STS

说明

您也可直接授权RAM用户访问物联网平台资源,但通过RAM角色授权RAM用户访问被授权的资源更安全。

对于直接授权的RAM用户,需要给该RAM用户授予操作AMQP服务端订阅功能的权限(iot:sub),否则将会连接失败。授权方法,请参见授权RAM用户访问物联网平台

步骤一:创建RAM角色并授权

  1. 创建可信实体为阿里云账号的RAM角色:使用阿里云主账号登录RAM控制台,为当前云账号创建RAM角色。

    角色可信实体的阿里云账号选择当前云账号

  2. 通过脚本编辑模式创建自定义权限策略:使用阿里云主账号创建自定义权限策略。

    服务端订阅授权操作Actioniot:sub,权限策略内容如下:

    {
      "Statement": [
        {
          "Action": "iot:sub",
          "Effect": "Allow",
          "Resource": "*"
        }
      ],
      "Version": "1"
    }
  3. 为RAM角色授权:使用阿里云主账号为刚创建的RAM角色添加上一步创建的自定义权限策略。

  4. 创建RAM用户:使用阿里云主账号登录RAM控制台,创建RAM用户。

  5. 为RAM用户授权:使用阿里云主账号为上一步创建的RAM用户,添加AliyunSTSAssumeRoleAccess权限,使RAM用户可以扮演阿里云主账号的RAM角色。

步骤二:RAM用户接收AMQP服务端订阅消息

  1. 配置AMQP服务端订阅:使用阿里云主账号登录物联网平台控制台,配置AMQP服务端订阅设备上报数据。

  2. 开发AMQP客户端接收服务端订阅消息:RAM用户开发AMQP客户端接入物联网平台,接收物联网平台下服务端订阅的设备消息。