

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

# 教程：在中配置您的设备 AWS IoT
<a name="shadow-provision-cloud"></a>

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

**Topics**
+ [步骤 1：为 Device Shadow 创建 AWS IoT 策略](#create-policy-shadow)
+ [步骤 2：创建事物资源并将策略附加到事物](#create-thing-shadow)
+ [步骤 3：查看结果和后续步骤](#resources-shadow-review)

## 步骤 1：为 Device Shadow 创建 AWS IoT 策略
<a name="create-policy-shadow"></a>

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**（创建策略）。

1. 在 **Create a policy**（创建策略）页面上：

   1. 在 **Name**（名称）字段，输入策略的名称（例如 **My\$1Device\$1Shadow\$1policy**）。请勿在策略名称中使用个人身份信息。

   1. 在策略文档中，您描述了授予设备发布和订阅 MQTT 保留主题权限的连接、订阅、接收和发布操作。

      复制以下策略并将其粘贴到策略文档中。`thingname`替换为您要创建的事物的名称（例如`My_light_bulb`）、`region`您正在使用服务的 AWS IoT 地区以及`account`您的 AWS 账户 电话号码。有关 AWS IoT 策略的更多信息，请参阅[AWS IoT Core 政策](iot-policies.md)。  
****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "iot:Publish"
                  ],
                  "Resource": [
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/get",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/update"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "iot:Receive"
                  ],
                  "Resource": [
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/get/accepted",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/get/rejected",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/update/accepted",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/update/rejected",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/update/delta"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "iot:Subscribe"
                  ],
                  "Resource": [
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/get/accepted",
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/get/rejected",
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/update/accepted",
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/update/rejected",
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/update/delta"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": "iot:Connect",
                  "Resource": "arn:aws:iot:us-east-1:123456789012:client/test-*"
              }
          ]
      }
      ```

## 步骤 2：创建事物资源并将策略附加到事物
<a name="create-thing-shadow"></a>

连接的设备 AWS IoT 可以用 AWS IoT 注册表中的*事物资源*表示。*事物资源*表示特定设备或逻辑实体，如本教程中的灯泡。

要学习如何在中创建事物 AWS IoT，请按照中所述的步骤进行操作[创建一个事物对象](create-iot-resources.md#create-aws-thing)。以下是您在遵循该教程中的步骤时需要注意的几个关键事项：

1. 选择**创建单个事物**，并在**名称**字段中，输入与您在之前创建策略时指定的 `thingname` 相同的事物名称（例如，`My_light_bulb`)。

   事物名称一旦创建，便不可更改。如果您给它一个不同于 `thingname` 的名字，请以 `thingname` 为名称创建新的事物，并删除旧的事物。
**注意**  
请勿在事物名称中使用个人身份信息。事物名称可以出现在未加密的通信和报告中。

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

   建议您将文件下载到 Raspberry Pi 中您的 `home` 目录下的 `certs` 子目录中，并使用一个更简单的名称命名各个文件，如下表所示。  
**证书文件名**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/shadow-provision-cloud.html)

1. 激活证书以启用与之连接后 AWS IoT，选择**附加策略**，并确保将之前创建的策略（例如**My\$1Device\$1Shadow\$1policy**）附加到该事物。

   创建事物后，您可以看到您的事物资源显示在 AWS IoT 控制台的事物列表中。

## 步骤 3：查看结果和后续步骤
<a name="resources-shadow-review"></a>

**在本教程中，您学习了如何：**
+ 设置和配置 Raspberry Pi 设备。
+ 创建授权您的设备与 AWS IoT 服务交互的 AWS IoT 策略文档。
+ 创建事物资源和关联的 X.509 设备证书，并将策略文档附加到其中。

**后续步骤**  
现在，你可以安装适用于 Python 的 AWS IoT 设备 SDK，运行`shadow.py`示例应用程序，并使用设备影子来控制状态。有关如何使用该教程的更多信息，请参阅 [教程：安装设备软件开发包并运行 Device Shadow 示例应用程序](lightbulb-shadow-application.md)。