教程:在 AWS IoT中预置设备 - AWS IoT Core

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:在 AWS IoT中预置设备

本节将创建教程将使用的 AWS IoT Core资源。

步骤 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策略
  1. 在左侧菜单中,选择 Secure(安全),然后选 Policies(策略)。如果您的账户已有策略,请选择 Create(创建),否则,在 You don’t have a policy yet(您还没有策略)页面上,选择 Create a policy(创建策略)。

  2. Create a policy(创建策略)页面上:

    1. Name(名称)字段,输入策略的名称(例如 My_Device_Shadow_policy)。请勿在策略名称中使用个人身份信息。

    2. 在策略文档中,您描述了授予设备发布和订阅 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创建事物,请执行 创建一个事物对象中所述的步骤。以下是您在遵循该教程中的步骤时需要注意的几个关键事项:

  1. 选择 Create a single thing(创建单个事物),并在 Name(名称)字段中,输入 与您在之前创建策略时指定的 thingname相同的事物名称(例如,My_light_bulb)。

    事物名称一旦创建,便不可更改。如果您给它一个不同于 thingname的名字,请以 thingname为名称创建新的事物,并删除旧的事物。

    注意

    请勿在事物名称中使用个人身份信息。事物名称可以出现在未加密的通信和报告中。

  2. 我们建议您将 Certificate created!(已创建证书!)页面的每个证书文件下载到您可以轻松找到的位置。您需要安装这些文件才能运行示例应用程序。

    建议您将文件下载到 Raspberry Pi 中您的 home目录下的 certs子目录中,并使用一个更简单的名称命名各个文件,如下表所示。

    证书文件名

    文件

    文件路径

    根 CA 证书

    ~/certs/Amazon-root-CA-1.pem

    设备证书

    ~/certs/device.pem.crt

    私有密钥

    ~/certs/private.pem.key

  3. 激活证书以启用与 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 示例应用程序