设置 - AWS IoT Core

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

设置

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

创建 IoT 事物

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

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

注意

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

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

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

  3. 选择创建策略

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

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

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

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

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

        • Connect

        • Publish

        • Subscribe

        • Receive

        • RetainPublish

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

      1. 为 C onnect 操作选择 “指定客户机资源ARN”

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

        注意

        clientId是您的设备用于与设备顾问交互的MQTT客户端 ID。

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

        • 手动输入要用来运行测试用例的物联网主题的 Amazon 资源名称 (ARNs)。

      3. 选择添加

      4. 选择 “ARN为接收和另外一个操作指定主题资源”

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

        注意

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

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

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

      6. 选择添加

      7. 为 “订阅” 操作选择 “指定 topicFilter 资源ARN”

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

        注意

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

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

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

      9. 选择添加

  5. 选择下一步:标签

  6. 选择下一步:审核

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

  8. 选择创建策略

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

  10. 请选择 Create Role(创建角色)。

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

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

    重要

    您的 aws:SourceArn 必须与 format: arn:aws:iotdeviceadvisor:region:account-id:*. 相符。确保 region 与您的 AWS 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. 选择 Create role(创建角色)。

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

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

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

  3. 选择创建策略,然后选择JSON选项卡。

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

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

  6. 输入名称描述

  7. 请选择创建策略

创建IAM用户以使用 “设备顾问”

注意

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

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

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

  3. 选择添加用户

  4. 输入用户名称

  5. 如果用户想在 AWS 外部进行交互,则需要编程访问权限 AWS Management Console。授予编程访问权限的方式取决于正在访问的用户类型 AWS。

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

    哪个用户需要编程式访问权限? 目的 方式

    人力身份

    (在IAM身份中心管理的用户)

    使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。

    按照您希望使用的界面的说明进行操作。

    IAM 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 按照IAM用户指南中的将临时证书与 AWS 资源配合使用中的说明进行操作。
    IAM

    (不推荐使用)

    使用长期凭证签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。

    按照您希望使用的界面的说明进行操作。

  6. 选择下一步: 权限

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

    • 中的用户和群组 AWS IAM Identity Center:

      创建权限集合。按照《AWS IAM Identity Center 用户指南》创建权限集的说明进行操作。

    • IAM通过身份提供商管理的用户:

      创建适用于身份联合验证的角色。按照《IAM用户指南》中为第三方身份提供商创建角色(联合)中的说明进行操作。

    • IAM用户:

      • 创建您的用户可以担任的角色。按照《用户指南》为IAM用户创建角色中的IAM说明进行操作。

      • (不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《用户指南》中向用户(控制台)添加权限中的IAM说明进行操作。

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

  9. 选择下一步:标签

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

  11. 选择 Create user

  12. 选择关闭

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

配置您的设备

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

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

注意

为了让您的设备软件做好测试准备,我们建议您使用可以连接的 AWS IoT Core。SDK然后,您应该SDK使用为您提供的设备顾问测试端点进行更新 AWS 账户。

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

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

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

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

或者

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

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

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

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

aws iotdeviceadvisor get-endpoint