本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:在 AWS IoT中预置设备
本节将创建教程将使用的 AWS IoT Core资源。
在 AWS IoT中配置设备的步骤
步骤 1:创建 Device Shadow 的 AWS IoT策略
X.509 证书使用 AWS IoT Core对您的设备进行身份验证。AWS IoT 策略附加到允许设备执行 AWS IoT操作(如订阅或发布 Device Shadow 服务使用的 MQTT 预留主题)的证书。您的设备在与 AWS IoT Core连接并向其发送消息时会提供其证书。
在此流程中,您将创建一个策略以允许您的设备执行运行示例程序所必要的 AWS IoT操作。建议您创建一个策略以仅授予执行任务所需的许可。您可以先创建 AWS IoT策略,然后将其附加到稍后将创建的设备证书。
创建 AWS IoT策略
-
在左侧菜单中,选择 Secure(安全),然后选 Policies(策略)。如果您的账户已有策略,请选择 Create(创建),否则,在 You don’t have a policy yet(您还没有策略)页面上,选择 Create a policy(创建策略)。
-
在 Create a policy(创建策略)页面上:
-
在 Name(名称)字段,输入策略的名称(例如
My_Device_Shadow_policy
)。请勿在策略名称中使用个人身份信息。 -
在策略文档中,您描述了授予设备发布和订阅 MQTT 保留主题权限的连接、订阅、接收和发布操作。
复制以下策略并将其粘贴到策略文档中。将
thingname
替换为您要创建的事物名称(例如My_light_bulb
),将region
替换为您正在使用这些服务的 AWS IoT区域,将account
替换为您的 AWS 账户数量。有关 AWS IoT策略的更多信息,请参阅 AWS IoT Core 政策。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account:topic/$aws/things/thingname/shadow/get", "arn:aws:iot:region:account:topic/$aws/things/thingname/shadow/update" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account:topic/$aws/things/thingname/shadow/get/accepted", "arn:aws:iot:region:account:topic/$aws/things/thingname/shadow/get/rejected", "arn:aws:iot:region:account:topic/$aws/things/thingname/shadow/update/accepted", "arn:aws:iot:region:account:topic/$aws/things/thingname/shadow/update/rejected", "arn:aws:iot:region:account:topic/$aws/things/thingname/shadow/update/delta" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account:topicfilter/$aws/things/thingname/shadow/get/accepted", "arn:aws:iot:region:account:topicfilter/$aws/things/thingname/shadow/get/rejected", "arn:aws:iot:region:account:topicfilter/$aws/things/thingname/shadow/update/accepted", "arn:aws:iot:region:account:topicfilter/$aws/things/thingname/shadow/update/rejected", "arn:aws:iot:region:account:topicfilter/$aws/things/thingname/shadow/update/delta" ] }, { "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:aws:iot:region:account:client/test-*" } ] }
-
步骤 2:创建事物资源并将策略附加到事物
连接到 AWS IoT的设备在 AWS IoT注册表中由事物资源表示。事物资源表示特定设备或逻辑实体,如本教程中的灯泡。
要了解如何在 AWS IoT创建事物,请执行 创建一个事物对象中所述的步骤。以下是您在遵循该教程中的步骤时需要注意的几个关键事项:
-
选择 Create a single thing(创建单个事物),并在 Name(名称)字段中,输入 与您在之前创建策略时指定的
thingname
相同的事物名称(例如,My_light_bulb
)。事物名称一旦创建,便不可更改。如果您给它一个不同于
thingname
的名字,请以thingname
为名称创建新的事物,并删除旧的事物。注意
请勿在事物名称中使用个人身份信息。事物名称可以出现在未加密的通信和报告中。
-
我们建议您将 Certificate created!(已创建证书!)页面的每个证书文件下载到您可以轻松找到的位置。您需要安装这些文件才能运行示例应用程序。
建议您将文件下载到 Raspberry Pi 中您的
home
目录下的certs
子目录中,并使用一个更简单的名称命名各个文件,如下表所示。证书文件名 文件
文件路径
根 CA 证书
~/certs/Amazon-root-CA-1.pem
设备证书
~/certs/device.pem.crt
私有密钥
~/certs/private.pem.key
-
激活证书以启用与 AWS IoT的连接后,请选择 Attach a policy(附加策略)并确保将您之前创建的策略(例如,
My_Device_Shadow_policy
)附加到事物。创建事物后,您可以看到您的事物资源在 AWS IoT控制台中的事物列表里显示。
步骤 3:查看结果和后续步骤
在本教程中,您学习了如何:
-
设置和配置 Raspberry Pi 设备。
-
创建 AWS IoT策略文档,以授权您的设备与 AWS IoT服务交互。
-
创建事物资源和关联的 X.509 设备证书,并将策略文档附加到其中。
后续步骤
您现在可以安装 AWS IoTDevice SDK for Python,运行 shadow.py
示例应用程序,然后使用 Device Shadow 控制状态。有关如何使用该教程的更多信息,请参阅 教程:安装设备软件开发包并运行 Device Shadow 示例应用程序。