本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置
首次使用 Device Advisor 之前,请完成以下任务。
创建 IoT 事物
首先,您需要创建事物并将证书附加到事物。使用下列教程创建事物:创建事物对象。
创建要用作设备角色的 IAM 角色
注意
您可以使用 Device Advisor 控制台快速创建设备角色。请参阅控制台中的 Device Advisor 入门了解使用 Device Advisor 控制台设置设备角色的步骤。
-
前往 Amazon I IAM 控制台
,然后登录您用于 Device Advisor 测试的账户。 -
在左侧导航窗格中,选择 Policies(策略)。
-
选择 Create policy(创建策略)。
-
在 Create Policy(创建策略)下,执行以下操作。
-
对于 Service (服务),请选择 IoT。
在 Actions(操作)下,或者根据附加到 IoT 事物或上一节中创建的证书(推荐)的策略选择操作,或者在筛选条件操作框中搜索然后选择下列操作。
连接
发布
Subscribe
接收
RetainPublish
-
在 Resources(资源)下,要使用最佳安全实践,我们建议您使用以下步骤限制 client(客户端)、topic(主题)和 topicfilter(主题筛选条件)资源:
-
选择 Specify client resource ARN for the Connect action(为 Connect 操作指定客户端资源 ARN)。
-
选择 Add ARN (添加 ARN)。
-
在可视化 ARN 编辑器中指定 region、accountId 和 clientId 或手动指定要用于运行测试用例的 IoT 主题的 Amazon Resource Names (ARN)。clientId 是您的设备用于与 Device Advisor 交互的 MQTT clientId。
-
选择 Add(添加)。
-
-
选择 Specify topic resource ARN for the Receive and 1 more action(为 Receive 及另 1 个操作指定主题资源 ARN)。
-
选择 Add ARN (添加 ARN)。
-
在可视化 ARN 编辑器中指定 region(区域)、accountId 和 topic name(主题名称)或手动指定要用于运行测试用例的 IoT 主题的 ARN。topic name(主题名称)是您的设备要用于发布消息的 MQTT topic(主题)。
-
选择 Add(添加)。
-
-
选择 Specify topicfilter resource ARN for the Subscribe action(为 Subscribe 操作指定主题筛选条件资源 ARN)。
-
选择 Add ARN (添加 ARN)。
-
在可视化 ARN 编辑器中指定 region(区域)、accountId 和 topic name(主题名称)或手动指定要用于运行测试用例的 IoT 主题的 ARN。topic name(主题名称)是您的设备用于订阅的 MQTT topic(主题)。
-
选择 Add (添加)。
-
-
-
-
选择Review policy(查看策略)。
-
在 Review policy(查看策略)项下,输入一个 Name(名称)。
-
选择 Create policy(创建策略)。
-
在左侧导航窗格中,选择 Roles(角色)。
-
请选择 Create Role(创建角色)。
-
在Or select a service to view its use cases(或选择一个服务以查看其用例)中,选择 IoT。
-
在选择您的使用案例下面,选择 IoT。
-
选择Next: Permissions(下一步: 权限)。
-
(可选)在 Set permissions boundary(设置权限边界)项下,选择 Use a permissions boundary to control the maximum role permissions(使用权限边界控制最大角色权限),然后选择您刚刚创建的策略。
-
请选择下一步:标签。
-
请选择下一步:审核。
-
输入 Role name(角色名称)和 Role description(角色描述)。
-
选择 Create role(创建角色)。
-
去到您创建的角色。
-
在 Permissions(权限)选项卡中,选择 Attach policies(附加策略),然后选择您在步骤 4 中创建的策略。
-
选择 Attach policy(附上策略)。
-
选择 Trust relationships(信任关系)选项卡,然后选择 Edit trust relationship(编辑信任关系)。
-
输入此策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAwsIoTCoreDeviceAdvisor", "Effect": "Allow", "Principal": { "Service": "iotdeviceadvisor.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
选择 Update Trust Policy(更新信任策略)。
为 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 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
-
-
在搜索框中输入您创建的自定义管理策略名称,然后选中左侧的 Policy name(策略名称)复选框。
-
请选择下一步:标签。
-
选择 Next: Review (下一步: 审核)。
-
选择 Create user。
-
选择 Close(关闭)。
Device Advisor 需要代表您访问 Amazon 资源(事物、证书和终端节点)的权限。您的 IAM 用户必须具有必要的权限。 CloudWatch 如果您将必要的权限策略附加到您的 IAM 用户,Device Advisor 也会将日志发布到 Amazon。
配置您的设备
Device Advisor 使用服务器名称指示 (SNI) TLS 扩展来应用 TLS 配置。设备在连接时必须使用此扩展,并传递与 Device Advisor 测试终端节点相同的服务器名称。
当测试处于 Running 状态时,Device Advisor 允许 TLS 连接,并会在每次测试运行之前和之后拒绝 TLS 连接。因此,我们还建议使用设备连接重试机制,以便在使用 Device Advisor 期间获得完全自动的测试体验。如果您运行具有多个测试用例的测试套件(例如 TLS 连接、MQTT 连接和 MQTT 发布),我们建议您为您的设备构建一个机制,每五秒便尝试连接到测试终端节点。然后,您能够以自动的方式按顺序运行多个测试用例。
注意
为了使您的设备软件准备好进行测试,我们建议您获取一个 SDK,该 SDK 可以连接 Amazon IoT Core 并使用为您的账户提供的 Device Advisor 测试终端节点更新 SDK。
Device Advisor 支持两种类型的终端节点:账户级终端节点和设备级终端节点。请选择最符合您使用案例的终端节点。要使用不同的设备同时运行多个测试套件,请使用设备级终端节点。运行以下命令以获取设备级别终端节点:
aws iotdeviceadvisor get-endpoint --thing-arnyour-thing-arn
or
aws iotdeviceadvisor get-endpoint --certificate-arnyour-certificate-arn
要一次运行一个测试套件,请选择账户级终端节点。运行以下命令获取账户级别终端节点:
aws iotdeviceadvisor get-endpoint