亚马逊物联网操作可以分为控制面板和数据面板两种,具体使用哪种方式将影响着身份验证和授权的方式。
控制面板
控制面板可以根据路由设置任何目标,实际上就是IoT Core的web管理页面,控制面板可以执行一些管理任务,比如创建证书,创建物品,创建规则等等。具体包括如下:
- 安全:证书、策略、审计、授权
- 账单
- 规则引擎
- 日志
- OTA升级
- IoT任务
数据面板
数据面板基于控制面板设定的逻辑来路由数据的,通过数据面板,允许设备从AWS IoT收发数据,常见的操作包括:
- 设备影子:获取影子信息、更新、删除
- MQTT:连接、发布主题、订阅主题、接收消息
- 任务:任务描述、获取任务信息、开启任务、更新任务状态
控制面板通常是AWS用户或者角色在使用AWS控制台管理程序或者AWS命令行工具执行控制操作,而数据面板是给设备或者手机app连接IoT Core时执行数据操作的。
身份认证的区别
使用AWS IoT控制面板,认证和授权功能和其他的AWS服务一样,都是基于IAM来管理的。
数据面板的身份验证有5中方式:X.509证书认证、自定义身份认证、IAM用户和角色认证、IAM联合身份认证、亚马逊Cognito联合身份认证。
使用场景 | 推荐认证方式 |
设备 | X.509证书认证 |
自定义身份认证 | |
Web和手机app | Amazon Cognito identity |
CLI命令行工具 | IAM或者联合身份认证 |
桌面程序 | IAM或者联合身份认证 |
授权的区别
控制面板:AWS使用IAM策略授权控制面板权限,IoT的策略不会出现在控制面板的操作中。
数据面板:IoT策略和IAM策略共同决定了身份可以执行的数据操作权限。
IoT策略和IAM策略的选择?
协议和认证机制 | SDK | 认证方式 | 策略类型 |
MQTT over TLS/TCP, TLS mutual authentication (port 8883 or 443) | AWS IoT Device SDK | X.509设备证书 | IoT策略 |
MQTT over HTTPS/WebSocket, AWS SigV4 authentication (port 443) | AWS Mobile SDK | IAM、联合身份认证 | IAM策略 |
HTTPS, AWS SigV4 authentication (port 443) | AWS命令行工具 | IAM。联合身份认证 | IAM策略 |
HTTPS, TLS mutual authentication (port 8443) | 无SDK | X.509设备证书 | IoT策略 |
HTTPS over custom authentication (Port 443) | AWS IoT Device SDK | 自定义身份验证 | 自定义认证策略 |
共享责任模型
在亚马逊,安全和责任属于AWS和客户之间的共同责任,对于用户有责任确保云上的安全,对于AWS负责云的安全,具体:
用户责任:管理设备证书并确保它们的安全、管理策略和权限、确保每个设备拥有唯一的证书、创建和管理自定义的身份认证
AWS的责任:授权和认证你的用户的所有操作、保证设备安全的接收数据并附加权限给设备,
保护IoT和其他云服务的数据安全传输。
最佳实践
- 管理设备证书并确保它们安全
- 管理你的策略和权限
- 给每个设备派发唯一的证书
- 设备使用X.509证书进行身份认证
- 设备应该验证自身是在和AWS IoT建立连接的