本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置
首次使用 Device Advisor 之前,请完成以下任务:
创建 IoT 事物
首先,创建一个 IoT 事物并为该事物附加证书。有关如何创建事物的教程,请参阅创建事物对象。
创建用作设备IAM角色的角色
注意
您可以使用 Device Advisor 控制台快速创建设备角色。要了解如何使用 Device Advisor 控制台设置设备角色,请参阅控制台中的 Device Advisor 入门。
-
转到AWS Identity and Access Management 控制台
并登录 AWS 账户 您用于设备顾问测试的。 -
在左侧导航窗格中,选择 Policies(策略)。
-
选择创建策略。
-
在 Create Policy(创建策略)下,执行以下操作。
-
对于 Service (服务),请选择 IoT。
-
在操作下,执行以下操作之一:
-
(建议)根据您在上一节中创建的 IoT 事物或证书所附的策略选择操作。
-
在筛选操作框中搜索以下操作并选择它们:
-
Connect
-
Publish
-
Subscribe
-
Receive
-
RetainPublish
-
-
-
在资源下,限制客户端、主题和主题资源。限制这些资源是一种最佳安全实践。要限制资源,请执行以下操作:
-
为 C onnect 操作选择 “指定客户机资源ARN”。
-
选择 “添加”ARN,然后执行以下任一操作:
注意
clientId是您的设备用于与设备顾问交互的MQTT客户端 ID。
-
在可视化编辑器中指定区域、账户 ID 和客户端 ID。ARN
-
手动输入要用来运行测试用例的物联网主题的 Amazon 资源名称 (ARNs)。
-
-
选择添加。
-
选择 “ARN为接收和另外一个操作指定主题资源”。
-
选择 “添加”ARN,然后执行以下任一操作:
注意
主题名称是您的设备向其发布消息MQTT的主题。
-
在可视化编辑器中指定区域、帐户 ID 和主题名称。ARN
-
手动输入要用来运行测试用例的 IoT 主题。ARNs
-
-
选择添加。
-
为 “订阅” 操作选择 “指定 topicFilter 资源ARN”。
-
选择 “添加”ARN,然后执行以下任一操作:
注意
主题名称是您的设备订阅MQTT的主题。
-
在可视化编辑器中指定区域、帐户 ID 和主题名称。ARN
-
手动输入要用来运行测试用例的 IoT 主题。ARNs
-
-
选择添加。
-
-
-
选择下一步:标签。
-
选择下一步:审核。
-
在查看策略下,输入策略的名称。
-
选择创建策略。
-
在左侧导航窗格中,选择 Roles(角色)。
-
请选择 Create Role(创建角色)。
-
在选择可信实体下,选择自定义信任策略。
-
在自定义信任策略框中输入以下信任策略。为防止出现混淆代理人问题,请在策略中添加全局条件键
aws:SourceArn
和aws:SourceAccount
。重要
您的
aws:SourceArn
必须与format: arn:aws:iotdeviceadvisor:
相符。确保region:account-id
:*.
与您的 AWS 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/
。如果提示,请输入您的 AWS 凭证。 -
在左侧导航窗格中,选择 Policies(策略)。
-
选择创建策略,然后选择JSON选项卡。
-
添加必要的权限以使用 Device Advisor。可在安全最佳实践主题中找到策略文档。
-
选择 Review Policy(查看策略)。
-
输入名称和描述。
-
请选择创建策略。
创建IAM用户以使用 “设备顾问”
注意
我们建议您创建一个IAM用户,以便在运行 “设备顾问” 测试时使用。由管理员用户运行 Device Advisor 测试可能会带来安全风险,因此建议不要这样做。
-
导航到IAM控制台,https://console.aws.amazon.com/iam/
如果出现提示,请输入您的 AWS 凭据进行登录。 -
在左侧导航窗格中,选择 Users(用户)。
-
选择添加用户。
-
输入用户名称。
-
如果用户想在 AWS 外部进行交互,则需要编程访问权限 AWS Management Console。授予编程访问权限的方式取决于正在访问的用户类型 AWS。
要向用户授予编程式访问权限,请选择以下选项之一。
哪个用户需要编程式访问权限? 目的 方式 人力身份
(在IAM身份中心管理的用户)
使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 按照您希望使用的界面的说明进行操作。
-
有关的 AWS CLI,请参阅《AWS Command Line Interface 用户指南》 AWS IAM Identity Center中的 “配置 AWS CLI 要使用”。
-
有关工具和的信息 AWS SDKs AWS APIs,请参阅《工具参考指南》中的 “IAM AWS SDKs身份中心身份验证”。
IAM 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 按照IAM用户指南中的将临时证书与 AWS 资源配合使用中的说明进行操作。 IAM (不推荐使用)
使用长期凭证签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。按照您希望使用的界面的说明进行操作。
-
有关信息 AWS CLI,请参阅《用户指南》中的使用IAM用户凭据进行身份验证。AWS Command Line Interface
-
有关 AWS SDKs和工具,请参阅《工具参考指南》AWS SDKs和《工具参考指南》中的使用长期凭证进行身份验证。
-
有关信息 AWS APIs,请参阅《IAM用户指南》中的管理IAM用户访问密钥。
-
-
选择下一步: 权限。
-
要提供访问权限,请为您的用户、组或角色添加权限:
-
中的用户和群组 AWS IAM Identity Center:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
IAM通过身份提供商管理的用户:
创建适用于身份联合验证的角色。按照《IAM用户指南》中为第三方身份提供商创建角色(联合)中的说明进行操作。
-
IAM用户:
-
创建您的用户可以担任的角色。按照《用户指南》中为IAM用户创建角色中的IAM说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《用户指南》中向用户(控制台)添加权限中的IAM说明进行操作。
-
-
-
在搜索框中输入您创建的客户管理型策略的名称。然后,选中与策略名称对应的复选框。
-
选择下一步:标签。
-
选择 Next: Review (下一步: 审核)。
-
选择 Create user。
-
选择关闭。
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