智宇物聯(lián) 專注于提供高穩(wěn)定、高速率的三網(wǎng)物聯(lián)網(wǎng)卡
西藏手把手玩轉(zhuǎn)物聯(lián)網(wǎng)丨第一集:如何把設(shè)備安全的接入AWS IoT
- 作者:智宇物聯(lián)
- 發(fā)表時(shí)間:2022年10月17日
- 來(lái)源:智宇物聯(lián)
簡(jiǎn)介
AWS IoT 解決方案是一個(gè)全托管的云平臺(tái),使互聯(lián)設(shè)備可以輕松安全地與云應(yīng)用程序及其他設(shè)備交互。AWS IoT 可支持?jǐn)?shù)十億臺(tái)設(shè)備和數(shù)萬(wàn)億條消息,并且可以對(duì)這些消息進(jìn)行處理并將其安全可靠地路由至 AWS 終端節(jié)點(diǎn)和其他設(shè)備。AWS IoT 平臺(tái)支持您將設(shè)備連接到 AWS 服務(wù)和其他設(shè)備,保證數(shù)據(jù)和交互的安全,處理設(shè)備數(shù)據(jù)并對(duì)其執(zhí)行操作,以及支持應(yīng)用程序與即便處于離線狀態(tài)的設(shè)備進(jìn)行交互。由于 AWS IoT 與 AI 服務(wù)集成,您也可以使設(shè)備更智能。AWS IoT 還提供最全面的安全功能,以便您能夠創(chuàng)建預(yù)防性安全策略,并及時(shí)對(duì)潛在安全問(wèn)題做出響應(yīng)。
使用 AWS IoT 的第一步是將設(shè)備連接到 AWS IoT Core 服務(wù)。AWS IoT 支持多種接入?yún)f(xié)議,身份認(rèn)證方法和授權(quán)策略。 這些不同的協(xié)議,認(rèn)證和授權(quán)方式有多種有效的組合方式。您可以使用任意一種有效的組合方式將您的設(shè)備接入到 AWS IoT。
本系列文章首先介紹了這些協(xié)議,認(rèn)證和授權(quán)方式的原理和細(xì)節(jié),以及其分別所適應(yīng)的場(chǎng)景,然后介紹了 AWS IoT 支持的所有有效的連接組合方式。每種支持的組合方式都提供了模擬設(shè)備的參考代碼,和運(yùn)行模擬設(shè)備連接到 IoT 的步驟。注:模擬設(shè)備連接到 AWS China 的北京 Region。
AWS IoT支持的協(xié)議
設(shè)備要接入 AWS IoT,首先要使用 AWS IoT 支持的協(xié)議來(lái)跟 IoT 平臺(tái)交互。
- HTTP協(xié)議
Http 協(xié)議是互聯(lián)網(wǎng)中最為常見(jiàn)的協(xié)議。Http 協(xié)議下支持后面提到所有的認(rèn)證和授權(quán)的方式。但是在物聯(lián)網(wǎng)的場(chǎng)景中,它也有著協(xié)議開(kāi)銷比較大等缺點(diǎn),另外 Http 只有請(qǐng)求響應(yīng)的模式,不支持物聯(lián)網(wǎng)場(chǎng)景中非常重要的訂閱模式,不能支持下行命令的下發(fā)。
注:AWS IoT 只支持 Https 加密傳輸。
- MQTT 協(xié)議
MQTT 協(xié)議是物聯(lián)網(wǎng)場(chǎng)景中使用最為廣泛的協(xié)議,具有協(xié)議開(kāi)銷小,支持發(fā)布訂閱等所有模式的優(yōu)點(diǎn)。
- MQTT OVER WEBSOCKET
MQTT over Websocket 是基于 Websocket 上的 MQTT 協(xié)議,也具備 MQTT 協(xié)議的優(yōu)點(diǎn),另外它使用了 443 的端口,在網(wǎng)絡(luò)環(huán)境可達(dá)性上比MQTT 更有優(yōu)勢(shì),但是也相對(duì)更為復(fù)雜一些。
AWS IoT 支持的認(rèn)證和授權(quán)方式
設(shè)備接入 AWS IoT 的時(shí)候,必須要進(jìn)行認(rèn)證,確認(rèn)設(shè)備的合法身份。通過(guò)認(rèn)證后,還需要對(duì)設(shè)備的請(qǐng)求進(jìn)行鑒權(quán),只有經(jīng)過(guò)授權(quán)的請(qǐng)求才會(huì)被 AWS IoT 接受。不同的設(shè)備認(rèn)證方式,其授權(quán)方式也可能會(huì)有所不同。
AWS IoT 支持的認(rèn)證方式有四種,分別是 IAM 身份,Amazon Cognito 身份,X.509 證書(shū),和自定義身份驗(yàn)證。
AWS IoT 支持的授權(quán)策略有兩種,分別是 IAM Policy 和 IoT Policy。

準(zhǔn)備工作
- 創(chuàng)建操作環(huán)境
登陸 AWS China 管理控制臺(tái),然后在 AWS 服務(wù)框輸入和選擇 EC2 服務(wù)。

啟動(dòng)一個(gè) EC2 虛機(jī),選擇 Amazon Linux 2 AMI(HVM), SSD Volume Type。


在實(shí)例類型步驟,直接選擇下一步。
在配置實(shí)例詳細(xì)信息步驟,確保自動(dòng)分配共有 IP 選擇了啟用,然后點(diǎn)擊創(chuàng)建新的 IAM 角色。

在彈出的窗口中選擇創(chuàng)建角色,然后依次選擇 AWS 服務(wù),EC2,點(diǎn)擊下一步。


在 Attach 權(quán)限策略步驟,勾選 AdministratorAccess 策略,點(diǎn)擊點(diǎn)一步。

添加標(biāo)簽步驟直接選擇下一步。
角色名稱處輸入
AWSIoTDeviceAccessWorkshop,點(diǎn)擊創(chuàng)建角色。
返回啟動(dòng)虛機(jī)的窗口,確保 IAM 角色選擇剛才創(chuàng)建的
AWSIoTDeviceAccessWorkshop。

依次點(diǎn)擊下一步:添加存儲(chǔ),下一步:添加標(biāo)簽,下一步:配置安全組。
在配置安全組步驟,確保打開(kāi)了 22 端口。

依次點(diǎn)擊審核和啟動(dòng),啟動(dòng)。
依次選擇創(chuàng)建新密鑰對(duì),輸入新密鑰對(duì)的名稱
AWSIoTDeviceAccessWorkshop,點(diǎn)擊下載密鑰對(duì)并保存密鑰文件。最后點(diǎn)擊啟動(dòng)實(shí)例。

在啟動(dòng)狀態(tài)窗口點(diǎn)擊實(shí)例 ID。

選中實(shí)例,并點(diǎn)擊連接。根據(jù)彈出的窗口的指導(dǎo),SSH連接到操作環(huán)境中。


- 配置操作環(huán)境
配置 AWS CLI 權(quán)限。

AWS Access Key ID 和 AWS Secret Access Key 留空,Default region name 配置為 cn-north-1,Default output format 設(shè)置為 json。

準(zhǔn)備操作目錄。

下載 AWS IoT 的 Root CA 文件。
設(shè)備連接應(yīng)該優(yōu)先選擇 ATS 端點(diǎn),使用 ATS 的 CA 文件。但是由于自定義身份驗(yàn)證暫時(shí)不支持 ATS 端點(diǎn),所以也需要下載 VeriSign 端點(diǎn)的 CA 證書(shū)。

安裝倚賴的軟件。

獲取 Account Id。

獲取 Account 的 IoT Endpoint 前綴。

把 Account Id 和 IoT 的 Endpoint 前綴配置到環(huán)境變量中。

- 配置 IoT消息接收監(jiān)控頁(yè)面
進(jìn)入 AWS IoT 服務(wù)的控制臺(tái)。

在 AWS IoT 控制臺(tái)中,依次點(diǎn)擊測(cè)試,訂閱主題,在訂閱主題框里輸入 “IoTDemo/#”,然后點(diǎn)擊訂閱主題。

后續(xù)所有的 AWS IoT Core 收到的消息都會(huì)在下方的空白處顯示出來(lái)。這可以作為設(shè)備發(fā)送消息成功的驗(yàn)證。
設(shè)備使用IAM 身份認(rèn)證接入
您可以使用 IAM 提供的身份來(lái)認(rèn)證設(shè)備。設(shè)備需要預(yù)置或者通過(guò)其他方式獲取 Security Credential,再使用 SigV4 的簽名算法對(duì)請(qǐng)求進(jìn)行簽名。AWS IoT 服務(wù)則通過(guò)簽名來(lái)認(rèn)證設(shè)備的身份。通過(guò)身份認(rèn)證后,AWS IoT 再根據(jù)身份擁有的 IAM Policy來(lái)對(duì)請(qǐng)求進(jìn)行鑒權(quán)。IAM 身份認(rèn)證方式簡(jiǎn)單易用,但是安全性較差,適用于測(cè)試等非正式場(chǎng)景。
IAM 身份認(rèn)證方式示意圖如下圖:

- 創(chuàng)建 IAM身份和權(quán)限
首先,創(chuàng)建一個(gè) IAM 用戶,IoTDeviceUser

為 IoTDeviceUser 用戶創(chuàng)建 Access Key。

記錄下 AccessKeyId 和 SecretAccessKey。

- 設(shè)備使用 HTTP 協(xié)議接入
為設(shè)備創(chuàng)建 IAM Policy。

把 IAM Policy 綁定 IAM 用戶。

生成設(shè)備模擬程序。


運(yùn)行設(shè)備模擬程序。

然后在第 4.3 章節(jié)打開(kāi)的控制臺(tái)中可以看到 AWS IoT 收到的消息。后面的場(chǎng)景類似,不再贅述。

- 設(shè)備使用MQTT OVER WEBSOCKET 接入
為設(shè)備創(chuàng)建 IAM Policy。


把 IAM Policy 綁定 IAM 用戶。

生成設(shè)備模擬程序。





運(yùn)行設(shè)備模擬程序。

此設(shè)備模擬程序會(huì)一直運(yùn)行,接受輸入的數(shù)據(jù),發(fā)送到 AWS IoT Core,同時(shí)也訂閱自己發(fā)送消息的 topic。
輸入要發(fā)送到 AWS IoT 的消息,如 “data from device IAM websocket.”,設(shè)備會(huì)接收到自己發(fā)送的這個(gè)消息。同時(shí),在4.3章節(jié)中打開(kāi)的控制臺(tái)中也可以看到此消息。
執(zhí)行 Ctrl+C 停止程序。
資源清理(可選)

- 西藏物聯(lián)網(wǎng)卡嵌入式(什么是物聯(lián)網(wǎng)卡,有什么用)
- 西藏南京物聯(lián)網(wǎng)卡限制(如何看待南京大眾書(shū)局的聯(lián)名卡事件)
- 西藏自動(dòng)售貨機(jī)物聯(lián)卡的核心功能與優(yōu)勢(shì)
- 西藏物聯(lián)卡:解鎖自動(dòng)售貨機(jī)的智能進(jìn)化密碼
- 西藏物聯(lián)卡:解鎖自動(dòng)售貨機(jī)智能化的關(guān)鍵密鑰
- 西藏重構(gòu)無(wú)人零售的智慧引擎(物聯(lián)卡)
- 西藏智能終端革命:解碼自動(dòng)售貨機(jī)重構(gòu)零售業(yè)的底層邏輯
- 西藏物聯(lián)卡賦能自動(dòng)售貨機(jī):智能化升級(jí)與價(jià)值釋放
- 西藏自動(dòng)售貨機(jī)物聯(lián)卡:智能化、場(chǎng)景化與生態(tài)化演進(jìn)?
- 西藏自動(dòng)售貨機(jī)的數(shù)字化躍遷引擎?
- 西藏華為物聯(lián)網(wǎng)卡網(wǎng)速慢(華為手機(jī)流量網(wǎng)速慢怎么辦)
- 西藏醫(yī)院需要物聯(lián)網(wǎng)卡嗎(什么是物聯(lián)網(wǎng)卡,與手機(jī)卡有什么區(qū)別,能用在手機(jī)上嗎)
- 西藏智能穿戴物聯(lián)卡行業(yè)綜合解決方案
- 西藏安防監(jiān)控物聯(lián)卡行業(yè)綜合解決方案:智能化時(shí)代的“安全守護(hù)者”
- 西藏物聯(lián)卡是如何盤(pán)活自動(dòng)售貨機(jī)市場(chǎng)的?
- 西藏車聯(lián)網(wǎng)物聯(lián)卡行業(yè)綜合解決方案:驅(qū)動(dòng)智慧出行的“數(shù)字紐帶”
- 西藏POS機(jī)物聯(lián)卡行業(yè)綜合解決方案:驅(qū)動(dòng)智能支付場(chǎng)景的數(shù)字化轉(zhuǎn)型
- 西藏智慧林業(yè):構(gòu)建全鏈路數(shù)字化生態(tài)系統(tǒng)的創(chuàng)新實(shí)踐
- 西藏智慧農(nóng)業(yè):重塑現(xiàn)代農(nóng)業(yè)的數(shù)字化革命?
- 西藏智慧醫(yī)療:生命科學(xué)革命下的醫(yī)療生態(tài)重構(gòu)