本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置
在首次使用设备顾问之前,请完成以下任务:
创建 IoT 事物
首先,创建一个 IoT 事物并将证书附加到该事物。有关如何创建事物的教程,请参阅创建事物对象。
创建 IAM 角色以用作您的设备角色
注意
您可以使用设备顾问控制台快速创建设备角色。要了解如何使用 Device Advisor 控制台设置您的设备角色,请参阅在控制台中开始使用设备顾问。
-
转到Amazon Identity and Access Management控制台
然后登录Amazon Web Services 账户你用于设备顾问测试。 -
在左侧导航窗格中,选择 Policies(策略)。
-
选择 Create policy(创建策略)。
-
在 Create Policy(创建策略)下,执行以下操作。
-
对于 Service (服务),请选择 IoT。
-
下行动,请执行以下操作之一:
-
(推荐)根据附加到您在上一节中创建的 IoT 事物或证书的策略选择操作。
-
在中搜索以下操作筛选动作框中并选择它们:
-
Connect
-
Publish
-
Subscribe
-
Receive
-
RetainPublish
-
-
-
下资源,限制客户端、主题和主题资源。限制这些资源是一种安全最佳实践。要限制资源,请执行以下操作:
-
选择 Specify client resource ARN for the Connect action(为 Connect 操作指定客户端资源 ARN)。
-
选择添加 ARN,然后执行以下任一操作:
注意
这个客户端 ID是您的设备用于与设备顾问交互的 MQTT 客户端 ID。
-
指定区域,账户 ID,以及客户端 ID在可视 ARN 编辑器中。
-
手动输入您想要运行测试用例的 IoT 主题的 Amazon 资源名称 (ARN)。
-
-
选择 Add(添加)。
-
选择为接收和另外一个操作指定主题资源 ARN。
-
选择添加 ARN,然后执行以下任一操作:
注意
这个主题名称是您的设备向其发布消息的 MQTT 主题。
-
指定区域,账户 ID,以及主题名称在可视 ARN 编辑器中。
-
手动输入要用于运行测试用例的 IoT 主题的 ARN。
-
-
选择 Add(添加)。
-
选择为订阅操作指定 TopicFilter 资源 ARN。
-
选择添加 ARN,然后执行以下任一操作:
注意
这个主题名称是您的设备订阅的 MQTT 主题。
-
指定区域,账户 ID,以及主题名称在可视 ARN 编辑器中。
-
手动输入要用于运行测试用例的 IoT 主题的 ARN。
-
-
选择 Add(添加)。
-
-
-
请选择下一步:标签。
-
请选择下一步:审核。
-
下查看政策,输入 a姓名为了你的政策。
-
选择 Create policy(创建策略)。
-
在左侧导航窗格中,选择 Roles(角色)。
-
请选择 Create Role(创建角色)。
-
下选择可信实体,选择自定义信任策略。
-
将以下信任策略输入到自定义信任策略盒子。为防止出现混淆代理人问题,请在策略中添加全局条件键
aws:SourceArn
和aws:SourceAccount
。重要
你的
aws:SourceArn
必须遵守format: arn:aws:iotdeviceadvisor:
确保region:account-id
:*.
匹配你的Amazon IoT地区和region
与您的客户账户 ID 相匹配。有关更多信息,请参阅防止跨服务混淆代理。account-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/*" } } } ] }
-
选择下一步。
-
选择您在步骤 4 中创建的策略。
-
(可选)在设置权限边界,选择使用权限边界控制最大角色权限,然后选择您创建的策略。
-
选择下一步。
-
输入 Role name(角色名称)和 Role description(角色描述)。
-
选择 Create role(创建角色)。
为 IAM 用户创建自定义托管策略来使用设备顾问
-
通过以下网址导航到 IAM 控制台:https://console.aws.amazon.com/iam/
。如果提示,请输入您的 Amazon 凭证。 -
在左侧导航窗格中,选择 Policies (策略)。
-
选择 Create policy(创建策略),然后选择 JSON 选项卡。
-
添加必要的权限以使用 Device Advisor。可在安全最佳实践主题中找到策略文档。
-
请选择查看策略。
-
输入名称和描述。
-
请选择Create Policy(创建策略)。
创建 IAM 用户来使用 Device Advisor。
注意
我们建议您创建一个要在运行 Device Advisor 测试时使用的 IAM 用户。由管理员用户运行 Device Advisor 测试可能会带来安全风险,因此不建议这样做。
-
导航到 IAM 控制台:https://console.aws.amazon.com/iam/
如果出现提示,请输入要登录的 Amazon 凭证。 -
在左侧导航窗格中,选择 Users(用户)。
-
选择添加用户。
-
输入 User name(用户名称)。
-
如果用户需要在 Amazon Web Services Management Console 之外与 Amazon 交互,则需要编程式访问权限。Amazon API 和 Amazon Command Line Interface 需要访问密钥。可能的话,创建临时凭证,该凭证由一个访问密钥 ID、一个秘密访问密钥和一个指示凭证何时到期的安全令牌组成。
要向用户授予编程式访问权限,请选择以下选项之一。
哪个用户需要编程式访问权限? 目的 方式 IAM 使用短期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。 按照《IAM 用户指南》中将临时凭证用于 Amazon 资源中的说明进行操作。 IAM (不推荐使用)
使用长期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。按照《IAM 用户指南》中管理 IAM 用户的访问密钥中的说明进行操作。 -
选择Next: Permissions(下一步: 权限)。
-
要提供访问权限,请为您的用户、组或角色添加权限:
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中为第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
-
-
在搜索框中输入您创建的自定义管理策略的名称。然后,选中策略名称。
-
请选择下一步:标签。
-
选择 Next: Review (下一步: 审核)。
-
选择 Create user。
-
选择 Close(关闭)。
Device Advisor 需要代表您访问 Amazon 资源(事物、证书和终端节点)的权限。您的 IAM 用户必须具有必要的权限。Device Advisor 还将向亚马逊发布日志CloudWatch如果您向您的 IAM 用户附加了必要的权限策略。
配置您的设备
Device Advisor 使用服务器名称指示 (SNI) TLS 扩展来应用 TLS 配置。设备在连接时必须使用此扩展名并传递与 Device Advisor 测试端点相同的服务器名称。
当测试正在进行时,设备顾问允许 TLS 连接Running
州。它在每次测试运行之前和之后拒绝TLS连接。因此,我们建议您使用设备连接重试机制,通过 Device Advisor 获得全自动测试体验。您可以运行包含多个测试用例的测试套件,例如 TLS 连接、MQTT 连接和 MQTT 发布。如果您运行多个测试用例,我们建议您的设备尝试每五秒连接到我们的测试端点。然后,您可以自动按顺序运行多个测试用例。
注意
要为您的设备软件做好测试准备,我们建议您使用可以连接到 SDKAmazon IoT Core。然后,您应该使用为您提供的设备顾问测试端点更新 SDKAmazon Web Services 账户。
Device Advisor 支持两种类型的终端节点:账户级终端节点和设备级终端节点。请选择最符合您使用案例的终端节点。要同时为不同的设备运行多个测试套件,请使用设备级端点。
运行以下命令以获取设备级别终端节点:
对于使用 X.509 客户端证书的 MQTT 客户:
aws iotdeviceadvisor get-endpoint --thing-arn
your-thing-arn
or
aws iotdeviceadvisor get-endpoint --certificate-arn
your-certificate-arn
对于 MQTT 结束了WebSocket使用签名版本 4 的客户:
aws iotdeviceadvisor get-endpoint --device-role-arn
your-device-role-arn
--authentication-method SignatureVersion4
要一次运行一个测试套件,请选择账户级终端节点。运行以下命令获取账户级别终端节点:
aws iotdeviceadvisor get-endpoint