物聯網平台服務端訂閱功能支援通過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用戶端接入物聯網平台,接收物聯網平台下服務端訂閱的裝置訊息。