设置 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

设置

首次使用 Device Advisor 之前,请完成以下任务:

创建 IoT 事物

首先,创建一个 IoT 事物并为该事物附加证书。有关如何创建事物的教程,请参阅创建事物对象

创建要用作设备角色的 IAM 角色

注意

您可以使用 Device Advisor 控制台快速创建设备角色。要了解如何使用 Device Advisor 控制台设置设备角色,请参阅控制台中的 Device Advisor 入门

  1. 转到Amazon Identity and Access Management 控制台并登录 Amazon Web Services 账户 您用于设备顾问测试的。

  2. 在左侧导航窗格中,选择 Policies(策略)。

  3. 选择 创建策略

  4. Create Policy(创建策略)下,执行以下操作。

    1. 对于 Service (服务),请选择 IoT

    2. 操作下,执行以下操作之一:

      • (建议)根据您在上一节中创建的 IoT 事物或证书所附的策略选择操作。

      • 筛选操作框中搜索以下操作并选择它们:

        • Connect

        • Publish

        • Subscribe

        • Receive

        • RetainPublish

    3. 资源下,限制客户端、主题和主题资源。限制这些资源是一种最佳安全实践。要限制资源,请执行以下操作:

      1. 选择 Specify client resource ARN for the Connect action(为 Connect 操作指定客户端资源 ARN)。

      2. 选择添加 ARN,然后执行以下任一操作:

        注意

        clientId 是设备用于与 Device Advisor 交互的 MQTT 客户端 ID。

        • 在可视化 ARN 编辑器中指定区域账户 ID客户端 ID

        • 手动输入要用于运行测试用例的 IoT 主题的 Amazon 资源名称(ARN)。

      3. 选择 添加

      4. 选择为接收及另一个操作指定主题资源 ARN

      5. 选择添加 ARN,然后执行以下任一操作:

        注意

        主题名称是设备向其发布消息的 MQTT 主题。

        • 在可视化 ARN 编辑器中指定区域账户 ID主题名称

        • 手动输入要用于运行测试用例的 IoT 主题的 ARN。

      6. 选择 添加

      7. 选择为订阅操作指定主题筛选条件资源 ARN

      8. 选择添加 ARN,然后执行以下任一操作:

        注意

        主题名称是您的设备订阅的 MQTT 主题。

        • 在可视化 ARN 编辑器中指定区域账户 ID主题名称

        • 手动输入要用于运行测试用例的 IoT 主题的 ARN。

      9. 选择 添加

  5. 选择下一步:标签

  6. 选择下一步:审核

  7. 查看策略下,输入策略的名称

  8. 选择 创建策略

  9. 在左侧导航窗格中,选择 Roles(角色)。

  10. 请选择 创建角色

  11. 选择可信实体下,选择自定义信任策略

  12. 自定义信任策略框中输入以下信任策略。为防止出现混淆代理人问题,请在策略中添加全局条件键 aws:SourceArnaws:SourceAccount

    重要

    您的 aws:SourceArn 必须与 format: arn:aws:iotdeviceadvisor:region:account-id:*. 相符。确保 region 与您的 Amazon IoT 区域匹配,account-id 与您的客户账户 ID 匹配。有关更多信息,请参阅防止跨服务混淆代理

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAwsIoTCoreDeviceAdvisor", "Effect": "Allow", "Principal": { "Service": "iotdeviceadvisor.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:iotdeviceadvisor:*:111122223333:suitedefinition/*" } } } ] }
  13. 选择下一步

  14. 选择您在步骤 4 中创建的策略。

  15. (可选)在设置权限边界下,选择使用权限边界控制最大角色权限,然后选择您创建的策略。

  16. 选择下一步

  17. 输入 Role name(角色名称)和 Role description(角色描述)。

  18. 选择 创建角色

为 IAM 用户创建自定义托管策略来使用设备顾问

  1. 通过以下网址导航到 IAM 控制台:https://console.aws.amazon.com/iam/。如果提示,请输入您的 Amazon 凭证。

  2. 在左侧导航窗格中,选择 Policies(策略)

  3. 选择 Create policy(创建策略),然后选择 JSON 选项卡。

  4. 添加必要的权限以使用 Device Advisor。可在安全最佳实践主题中找到策略文档。

  5. 选择 Review Policy(查看策略)

  6. 输入名称描述

  7. 选择创建策略

创建 IAM 用户来使用 Device Advisor。

注意

我们建议您创建一个要在运行 Device Advisor 测试时使用的 IAM 用户。由管理员用户运行 Device Advisor 测试可能会带来安全风险,因此建议不要这样做。

  1. 导航到 IAM 控制台:https://console.aws.amazon.com/iam/如果出现提示,请输入要登录的 Amazon 凭证。

  2. 在左侧导航窗格中,选择 Users(用户)。

  3. 选择添加用户

  4. 输入用户名称

  5. 如果用户想在 Amazon 外部进行交互,则需要编程访问权限 Amazon Web Services Management Console。 Amazon API 和 Amazon Command Line Interface 所需的访问密钥。可能的话,创建临时凭证,该凭证由一个访问密钥 ID、一个秘密访问密钥和一个指示凭证何时到期的安全令牌组成。

    要向用户授予编程式访问权限,请选择以下选项之一。

    哪个用户需要编程式访问权限? 目的 方式
    IAM 使用短期凭证签署对 Amazon CLI 或 Amazon API 的编程请求(直接或使用 Amazon 软件开发工具包)。 按照 IAM 用户指南中的将临时证书与 Amazon 资源配合使用中的说明进行操作。
    IAM

    (不推荐使用)

    使用长期凭证签署对 Amazon CLI 或 Amazon API 的编程请求(直接或使用 Amazon 软件开发工具包)。
    按照《IAM 用户指南》管理 IAM 用户的访问密钥中的说明进行操作。
  6. 选择下一步:权限

  7. 要提供访问权限,请为您的用户、组或角色添加权限:

  8. 在搜索框中输入您创建的客户管理型策略的名称。然后,选中与策略名称对应的复选框。

  9. 选择下一步:标签

  10. 选择 Next: Review (下一步: 审核)

  11. 选择 Create user

  12. 选择关闭

Device Advisor 需要代表您访问您的 Amazon 资源(内容、证书和终端节点)。您的 IAM 用户必须具有必要的权限。 CloudWatch 如果您向 IAM 用户附加必要的权限策略,设备顾问还将向 Amazon 发布日志。

配置您的设备

Device Advisor 使用服务器名称指示 (SNI) TLS 扩展来应用 TLS 配置。设备在连接时必须使用此扩展,并传递与 Device Advisor 测试端点相同的服务器名称。

当测试处于 Running 状态时,Device Advisor 允许 TLS 连接。它在每次测试运行之前和之后都会拒绝 TLS 连接。因此,我们建议使用设备连接重试机制,以便在使用 Device Advisor 时获得完全自动的测试体验。您可以运行包含多个测试用例的测试套件,例如 TLS 连接、MQTT 连接和 MQTT 发布。如果您运行多个测试用例,我们建议您的设备尝试每五秒钟连接到我们的测试端点。这样,您就可以自动按顺序运行多个测试用例。

注意

为了让您的设备软件做好测试准备,我们建议您使用可以连接到 Amazon IoT Core的 SDK。然后,您应该使用为您的 Amazon Web Services 账户提供的 Device Advisor 测试端点更新 SDK 。

Device Advisor 支持两种类型的端点:账户级端点和设备级端点。请选择最符合您使用案例的终端节点。要针对不同的设备同时运行多个测试套件,请使用设备级端点。

运行以下命令以获取设备级别终端节点:

对于使用 X.509 客户端证书的 MQTT 客户:

aws iotdeviceadvisor get-endpoint --thing-arn your-thing-arn

或者

aws iotdeviceadvisor get-endpoint --certificate-arn your-certificate-arn

对于使用签名版本 4 的 MQTT 以上的 WebSocket 客户:

aws iotdeviceadvisor get-endpoint --device-role-arn your-device-role-arn --authentication-method SignatureVersion4

要一次运行一个测试套件,请选择账户级终端节点。运行以下命令获取账户级别终端节点:

aws iotdeviceadvisor get-endpoint