北京手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT
- 作者:佚名
- 发表时间:2022年10月17日下午12:00
- 来源:未知
简介
AWS IoT 解决方案是一个全托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。AWS IoT 可支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AWS 终端节点和其他设备。AWS IoT 平台支持您将设备连接到 AWS 服务和其他设备,保证数据和交互的安全,处理设备数据并对其执行操作,以及支持应用程序与即便处于离线状态的设备进行交互。由于 AWS IoT 与 AI 服务集成,您也可以使设备更智能。AWS IoT 还提供最全面的安全功能,以便您能够创建预防性安全策略,并及时对潜在安全问题做出响应。
使用 AWS IoT 的第一步是将设备连接到 AWS IoT Core 服务。AWS IoT 支持多种接入协议,身份认证方法和授权策略。 这些不同的协议,认证和授权方式有多种有效的组合方式。您可以使用任意一种有效的组合方式将您的设备接入到 AWS IoT。
本系列文章首先介绍了这些协议,认证和授权方式的原理和细节,以及其分别所适应的场景,然后介绍了 AWS IoT 支持的所有有效的连接组合方式。每种支持的组合方式都提供了模拟设备的参考代码,和运行模拟设备连接到 IoT 的步骤。注:模拟设备连接到 AWS China 的北京 Region。
AWS IoT支持的协议
设备要接入 AWS IoT,首先要使用 AWS IoT 支持的协议来跟 IoT 平台交互。
- HTTP协议
Http 协议是互联网中最为常见的协议。Http 协议下支持后面提到所有的认证和授权的方式。但是在物联网的场景中,它也有着协议开销比较大等缺点,另外 Http 只有请求响应的模式,不支持物联网场景中非常重要的订阅模式,不能支持下行命令的下发。
注:AWS IoT 只支持 Https 加密传输。
- MQTT 协议
MQTT 协议是物联网场景中使用最为广泛的协议,具有协议开销小,支持发布订阅等所有模式的优点。
- MQTT OVER WEBSOCKET
MQTT over Websocket 是基于 Websocket 上的 MQTT 协议,也具备 MQTT 协议的优点,另外它使用了 443 的端口,在网络环境可达性上比MQTT 更有优势,但是也相对更为复杂一些。
AWS IoT 支持的认证和授权方式
设备接入 AWS IoT 的时候,必须要进行认证,确认设备的合法身份。通过认证后,还需要对设备的请求进行鉴权,只有经过授权的请求才会被 AWS IoT 接受。不同的设备认证方式,其授权方式也可能会有所不同。
AWS IoT 支持的认证方式有四种,分别是 IAM 身份,Amazon Cognito 身份,X.509 证书,和自定义身份验证。
AWS IoT 支持的授权策略有两种,分别是 IAM Policy 和 IoT Policy。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/a30ef3b87e5344949604b948c8b45626.png)
准备工作
- 创建操作环境
登陆 AWS China 管理控制台,然后在 AWS 服务框输入和选择 EC2 服务。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/4aff060c884a4fd0947d60327deeabed.png)
启动一个 EC2 虚机,选择 Amazon Linux 2 AMI(HVM), SSD Volume Type。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/40e4805163924b5fa885b145c0189cc0.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/ffd9f93a61504ee6b31960233f157a26.png)
在实例类型步骤,直接选择下一步。
在配置实例详细信息步骤,确保自动分配共有 IP 选择了启用,然后点击创建新的 IAM 角色。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/829f0addb5f64ec99affd187c38c5525.jpeg)
在弹出的窗口中选择创建角色,然后依次选择 AWS 服务,EC2,点击下一步。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/d168a15e988146818b08c08eecb672a2.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/d1ba1cd62359464bada0bd137d0f4f99.png)
在 Attach 权限策略步骤,勾选 AdministratorAccess 策略,点击点一步。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/d587960a99db45ada837aedc62f39a53.png)
添加标签步骤直接选择下一步。
角色名称处输入
AWSIoTDeviceAccessWorkshop,点击创建角色。
返回启动虚机的窗口,确保 IAM 角色选择刚才创建的
AWSIoTDeviceAccessWorkshop。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/b7f07c59b0b843cb81186b6a7d2d043e.png)
依次点击下一步:添加存储,下一步:添加标签,下一步:配置安全组。
在配置安全组步骤,确保打开了 22 端口。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/97d39bc35dde4db7ae1ddef76784d592.png)
依次点击审核和启动,启动。
依次选择创建新密钥对,输入新密钥对的名称
AWSIoTDeviceAccessWorkshop,点击下载密钥对并保存密钥文件。最后点击启动实例。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/9a73550760984daaa2064681ba79fd83.jpeg)
在启动状态窗口点击实例 ID。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/120892f7044e4149bff923fd838aeeb0.png)
选中实例,并点击连接。根据弹出的窗口的指导,SSH连接到操作环境中。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/68de885769eb4086b618c9af588d5512.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/b3167f630cdb4453acccf3cee8f7c85a.png)
- 配置操作环境
配置 AWS CLI 权限。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/e7935fb5cc5f43d39bd8b7eac8e135a3.png)
AWS Access Key ID 和 AWS Secret Access Key 留空,Default region name 配置为 cn-north-1,Default output format 设置为 json。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/1e6608718c7244568da34c1a408d2d03.png)
准备操作目录。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/e8e9d05512e34a179d784ff1e4b84dc7.png)
下载 AWS IoT 的 Root CA 文件。
设备连接应该优先选择 ATS 端点,使用 ATS 的 CA 文件。但是由于自定义身份验证暂时不支持 ATS 端点,所以也需要下载 VeriSign 端点的 CA 证书。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/04a370f6ec8645f2b764e56be2a81796.png)
安装倚赖的软件。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/af73d32e92e843598dec6eecbb5a7b73.png)
获取 Account Id。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/36b4a3c8b55b492e9ace9b0c6e254ac7.png)
获取 Account 的 IoT Endpoint 前缀。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/14c6d155be13423f8488cad16da4e9c1.png)
把 Account Id 和 IoT 的 Endpoint 前缀配置到环境变量中。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/2aa861bfe789490f9056b11ad11dadf4.png)
- 配置 IoT消息接收监控页面
进入 AWS IoT 服务的控制台。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/fe341ab3c7504df0b422a752d787140d.png)
在 AWS IoT 控制台中,依次点击测试,订阅主题,在订阅主题框里输入 “IoTDemo/#”,然后点击订阅主题。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/cc9e139e525e46f2948b02f39d2980b5.png)
后续所有的 AWS IoT Core 收到的消息都会在下方的空白处显示出来。这可以作为设备发送消息成功的验证。
设备使用IAM 身份认证接入
您可以使用 IAM 提供的身份来认证设备。设备需要预置或者通过其他方式获取 Security Credential,再使用 SigV4 的签名算法对请求进行签名。AWS IoT 服务则通过签名来认证设备的身份。通过身份认证后,AWS IoT 再根据身份拥有的 IAM Policy来对请求进行鉴权。IAM 身份认证方式简单易用,但是安全性较差,适用于测试等非正式场景。
IAM 身份认证方式示意图如下图:
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/637c0203955647a09037b4cfdd0d58e1.png)
- 创建 IAM身份和权限
首先,创建一个 IAM 用户,IoTDeviceUser
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/1c2a3b2c141c4f99a22d12fe8c9ef5fa.png)
为 IoTDeviceUser 用户创建 Access Key。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/6543ec18ccd24592988b36b83f276373.png)
记录下 AccessKeyId 和 SecretAccessKey。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/86d3380481be4bbf8477f21cb5f94652.png)
- 设备使用 HTTP 协议接入
为设备创建 IAM Policy。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/248752cdda1946c184da3b2b6e8a7d57.png)
把 IAM Policy 绑定 IAM 用户。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/613a18046fcd4cb3adfa819dcac1e1cd.png)
生成设备模拟程序。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/10bb932b2e3c4308bd7d0ba2a28d4217.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/f7de9062d3dd47b4aa51f0eb2e635823.png)
运行设备模拟程序。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/6cd87902b7fd454ab2633c7b8feb2f24.png)
然后在第 4.3 章节打开的控制台中可以看到 AWS IoT 收到的消息。后面的场景类似,不再赘述。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/183f09dcb8154728a9a0a4a6757f9bee.png)
- 设备使用MQTT OVER WEBSOCKET 接入
为设备创建 IAM Policy。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/c62a39fd6b1d4eb18c325b06e0911339.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/ce0218956eeb4243aac67959b91b331c.png)
把 IAM Policy 绑定 IAM 用户。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/8f7c9b3b3af64fb788ec3742174f6796.png)
生成设备模拟程序。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/975a19d3f617400e95e8b6dbeae7eee7.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/64005a858b6442148667488f88285757.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/d00486222cdc4b6fa67095fe31ba5592.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/ca6b48f3aacf422881bd6423277e4db9.png)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/ef2fba3c755b413f8c6b64a4cee72420.png)
运行设备模拟程序。
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/975a19d3f617400e95e8b6dbeae7eee7.png)
此设备模拟程序会一直运行,接受输入的数据,发送到 AWS IoT Core,同时也订阅自己发送消息的 topic。
输入要发送到 AWS IoT 的消息,如 “data from device IAM websocket.”,设备会接收到自己发送的这个消息。同时,在4.3章节中打开的控制台中也可以看到此消息。
执行 Ctrl+C 停止程序。
资源清理(可选)
![手把手玩转物联网丨第一集:如何把设备安全的接入AWS IoT](http://a.jx263.net/images/96c79c5a3f6a4af88bca59d3c960f974.png)
- 北京怎么查询物联网卡IMSI号(物联网卡和普通手机卡有什么区别) 2025-01-27 12:00:15
- 北京怎么申请物联网卡(物联网卡怎么开通) 2025-01-27 20:00:21
- 北京怎么给物联网卡充话费(中国移动物联网卡怎么充值) 2025-01-28 04:00:09
- 北京怎么辨别物联网卡(怎么区分物联网卡) 2025-01-28 08:00:11
- 北京成都物联网卡购买(成都无限流量卡多少钱一张) 2025-01-30 08:00:06
- 北京手机使用物联网卡危害(物联卡实名制有风险吗) 2025-01-31 00:00:07
- 北京手机可以装物联网卡吗(物联网卡可以装在手机上吗) 2025-01-31 08:00:11
- 北京拼多多上卖的物联网卡(拼多多上的流量卡可靠吗) 2025-02-03 08:00:17
- 北京摩拜单车的物联网卡(物联卡怎么用) 2025-02-04 20:00:07
- 北京新技术物联网卡(物联网卡到底是什么卡) 2025-02-05 12:00:36
- 北京广西有没有物联网卡套餐(物联网卡那种套餐比较合适,物联网卡怎么办理) 2025-01-25 08:00:16
- 北京怎样使用联通物联网卡(联通物联网卡怎么设置APN) 2025-01-28 12:00:07
- 北京怎样办理物联网卡手续(物联网卡怎么开通) 2025-01-28 16:00:07
- 北京手机物联网卡推广代理商(什么是物联网卡,有什么用) 2025-02-01 08:00:20
- 北京指纹锁物联网卡怎么激活(智能锁怎么改密码和指纹) 2025-02-03 12:00:19
- 北京支持物联网卡的平板(物联网卡与流量卡有什么区别) 2025-02-05 00:00:06
- 北京断卡为啥断物联网卡(为什么要“断卡”) 2025-02-05 12:00:16
- 北京新疆有物联网卡套餐吗(物联网卡那种套餐比较合适,物联网卡怎么办理) 2025-02-05 16:00:06
- 北京新车物联网卡(车联网卡是什么) 2025-02-05 20:00:21
- 北京无故收到物联网卡的短信(身份证被莫名绑定了很多物联网卡怎么办) 2025-02-06 00:00:08