物联网平台服务端订阅功能支持通过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角色并授权
创建可信实体为阿里云账号的RAM角色:使用阿里云主账号登录RAM控制台,为当前云账号创建RAM角色。
角色可信实体的阿里云账号选择当前云账号。
通过脚本编辑模式创建自定义权限策略:使用阿里云主账号创建自定义权限策略。
服务端订阅授权操作Action为
iot:sub
,权限策略内容如下:{ "Statement": [ { "Action": "iot:sub", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
为RAM角色授权:使用阿里云主账号为刚创建的RAM角色添加上一步创建的自定义权限策略。
为RAM用户授权:使用阿里云主账号为上一步创建的RAM用户,添加AliyunSTSAssumeRoleAccess权限,使RAM用户可以扮演阿里云主账号的RAM角色。
步骤二:RAM用户接收AMQP服务端订阅消息
配置AMQP服务端订阅:使用阿里云主账号登录物联网平台控制台,配置AMQP服务端订阅设备上报数据。
开发AMQP客户端接收服务端订阅消息:RAM用户开发AMQP客户端接入物联网平台,接收物联网平台下服务端订阅的设备消息。