配置 IDT 设置以运行Amazon IoT Greengrass资格套件 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

配置 IDT 设置以运行Amazon IoT Greengrass资格套件

在运行测试之前,您必须在主机计算机上配置Amazon证书和设备的设置。

在 config.json 中配置Amazon证书

您必须在<device_tester_extract_location>/configs/config.json文件中配置您的 IAM 用户证书。使用在中创建的 IDT forAmazon IoT Greengrass V2 用户的证书创建和配置Amazon Web Services 账户。您可以采用以下两种方法之一来指定凭证:

  • 在证书文件中

  • ,。

IDT 使用与 Amazon CLI 相同的凭证文件。有关更多信息,请参阅配置和凭证文件

凭证文件的位置因您使用的操作系统而异:

  • macOS、Linux:~/.aws/credentials

  • Windows: C:\Users\UserName\.aws\credentials

将您的Amazon证书按以下格式添加到credentials文件中:

[default] aws_access_key_id = <your_access_key_id> aws_secret_access_key = <your_secret_access_key>

要将 IDT forAmazon IoT Greengrass V2 配置为使用credentials文件中的Amazon证书,请按如下方式编辑config.json文件:

{ "awsRegion": "region", "auth": { "method": "file", "credentials": { "profile": "default" } } }
注意

如果您不使用defaultAmazon配置文件,请务必更改文件中的配置config.json文件名称。有关更多信息,请参阅命名配置文件

环境变量是由操作系统维护且由系统命令使用的变量。如果您关闭 SSH 会话,则不会保存它们。IDT forAmazon IoT Greengrass V2 可以使用AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY环境变量来存储您的Amazon证书。

要在 Linux、macOS 或 Unix 上设置这些变量,请使用 export

export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

要在 Windows 上设置这些变量,请使用 set

set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

要配置 IDT 以使用环境变量,请编辑 config.json 文件中的 auth 部分。示例如下:

{ "awsRegion": "region", "auth": { "method": "environment" } }

配置 device.json

除Amazon凭证外,IDT forAmazon IoT Greengrass V2 还需要有关运行测试的设备的信息。示例信息包括 IP 地址、登录信息、操作系统和 CPU 架构。

您必须使用位于 <device_tester_extract_location>/configs/device.json 中的 device.json 模板提供此信息:

[ { "id": "<pool-id>", "sku": "<sku>", "features": [ { "name": "arch", "value": "x86_64 | armv6l | armv7l | aarch64" }, { "name": "ml", "value": "dlr | tensorflowlite | dlr,tensorflowlite | no" }, { "name": "docker", "value": "yes | no" }, { "name": "streamManagement", "value": "yes | no" }, { "name": "hsi", "value": "hsm | no" } ], "devices": [ { "id": "<device-id>", "operatingSystem": "Linux | Windows", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "port": 22, "publicKeyPath": "<public-key-path>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", "privKeyPath": "/path/to/private/key", "password": "<password>" } } } } ] } ]
注意

只有当 method 设置为 pki 时才指定 privKeyPath

只有当 method 设置为 password 时才指定 password

所有包含值的属性都是必需的,如下所述:

id

一个用户定义的字母数字 ID,用于唯一地标识称作设备池的设备集合。属于池的设备必须具有相同的硬件。运行一组测试时,池中的设备将用于对工作负载进行并行化处理。多个设备用于运行不同测试。

sku

唯一标识所测试设备的字母数字值。该 SKU 用于跟踪符合条件的主板。

注意

如果您想在设备目录中列出您的Amazon Partner设备,则在此处指定的 SKU 必须与您在上架过程中使用的 SKU 相匹配。

features

包含设备支持的功能的数组。所有功能都是必需的。

arch

测试运行所验证的支持的操作系统架构。有效值为:

  • x86_64

  • armv6l

  • armv7l

  • aarch64

ml

验证设备是否满足使用Amazon提供的机器学习 (ML) 组件所需的所有技术依赖关系。

启用此功能还可验证设备是否可以使用深度学习运行时TensorFlow 精简版 ML 框架执行 ML 推断

有效值是dlrtensorflowlite或的任意组合no

docker

验证设备是否满足使用Amazon提供的 Docker 应用程序管理器 (aws.greengrass.DockerApplicationManager) 组件所需的所有技术依赖关系。

启用此功能还会验证设备是否可以从 Amazon ECR 下载 Docker 容器镜像

有效值是yes或的任意组合no

streamManagement

验证设备是否可以下载、安装和运行Amazon IoT Greengrass流管理器

有效值是yes或的任意组合no

hsi

验证设备是否可以使用存储在硬件安全模块 (HSM) 中的私钥和证书对与和Amazon IoT Greengrass服务的连接进行身份验证。Amazon IoT此测试还验证了Amazon提供的 PKCS #11 提供商组件是否可以使用供应商提供的 PKCS #11 库与 HSM 接口。有关更多信息,请参阅 硬件安全性集成

有效值为 hsmno

注意

IDT v4.2.0 及更高版本支持测试mldocker、和streamManagement功能。,no

注意

测试仅适用hsi于 IDT v4.5.1 及更高版本。

devices.id

用户定义的测试的设备的唯一标识符。

devices.operatingSystem

设备操作系统。支持的值为 LinuxWindows

connectivity.protocol

用于与此设备通信的通信协议。ssh,。

connectivity.ip

测试的设备 IP 地址。

此属性仅在 connectivity.protocol 设置为 ssh 时适用。

connectivity.port

可选。用于 SSH 连接的端口号。

22。

此属性仅在 connectivity.protocol 设置为 ssh 时适用。

connectivity.publicKeyPath

可选。用于验证与被测设备的连接的公钥的完整路径。

当您指定时publicKeyPath,IDT 会在与被测设备建立 SSH 连接时验证设备的公钥。如果未指定此值,IDT 将创建 SSH 连接,但不验证设备的公钥。

我们强烈建议您指定公钥的路径,并使用安全的方法来获取此公钥。对于基于标准命令行的 SSH 客户端,known_hosts文件中提供了公钥。如果您指定单独的公钥文件,则此文件必须使用与该known_hosts文件相同的格式,即 ip-address key-type public-key

connectivity.auth

连接的身份验证信息。

此属性仅在 connectivity.protocol 设置为 ssh 时适用。

connectivity.auth.method

用于通过给定的连接协议访问设备的身份验证方法。

支持的值为:

  • pki

  • password

connectivity.auth.credentials

用于身份验证的凭证。

connectivity.auth.credentials.password

该密码用于登录到正在测试的设备。

此值仅在 connectivity.auth.method 设置为 password 时适用。

connectivity.auth.credentials.privKeyPath

用于登录所测试设备的私有密钥的完整路径。

此值仅在 connectivity.auth.method 设置为 pki 时适用。

connectivity.auth.credentials.user

用于登录所测试设备的用户名。

userdata.json

IDT forAmazon IoT Greengrass V2 还需要有关测试工件和Amazon IoT Greengrass软件位置的更多信息。

您必须使用位于 <device_tester_extract_location>/configs/userdata.json 中的 userdata.json 模板提供此信息:

{ "TempResourcesDirOnDevice": "/path/to/temp/folder", "InstallationDirRootOnDevice": "/path/to/installation/folder", "GreengrassNucleusZip": "/path/to/aws.greengrass.nucleus.zip", "PreInstalled": "yes/no", "GreengrassV2TokenExchangeRole": "custom-iam-role-name", "hsm": { "greengrassPkcsPluginJar": "/path/to/aws.greengrass.crypto.Pkcs11Provider-latest.jar", "pkcs11ProviderLibrary": "/path/to/pkcs11-vendor-library", "slotId": "slot-id", "slotLabel": "slot-label", "slotUserPin": "slot-pin", "keyLabel": "key-label", "preloadedCertificateArn": "certificate-arn" "rootCA": "path/to/root-ca" } }

所有包含值的属性都是必需的,如下所述:

TempResourcesDirOnDevice

被测设备上用于存储测试构件的临时文件夹的完整路径。确保写入此目录不需要 sudo 权限。

注意

IDT 运行完测试后会删除此文件夹的内容。

InstallationDirRootOnDevice

设备上要安装的文件夹的完整路径Amazon IoT Greengrass。对于PreInstalled Greengrass 来说,这是指向 Greengrass 安装目录的路径。

必须为此文件夹设置所需的文件权限。为安装路径中的每个文件夹运行以下命令。

sudo chmod 755 folder-name
GreengrassNucleusZip

主机上 Greengrass nucleus ZIP (greengrass-nucleus-latest.zip) 文件的完整路径。使用 PreInstalled Greengrass 进行测试时不需要此字段。

注意

有关 IDT 的 Greengrass 核心支持版本的信息Amazon IoT Greengrass,请参阅适用于Amazon IoT Greengrass V2 的最新 IDT 版本

PreInstalled

此功能仅适用于 Linux 设备上的 IDT v4.5.8 及更高版本。

(可选)当值为 yes 时,IDT 将假定中InstallationDirRootOnDevice提到的路径是安装 Greengrass 的目录。

Greengrass安装Amazon IoT Greengrass具有自动资源配置功能的核心软件。IDT 假设事物和事物组是在安装设置期间创建的。确保这些值反映在effectiveConfig.yaml文件中。IDT 正在检查effectiveConfig.yaml下面的文件<InstallationDirRootOnDevice>/config/effectiveConfig.yaml

要使用 HSM 运行测试,请确保在中更新了该aws.greengrass.crypto.Pkcs11Provider字段effectiveConfig.yaml

GreengrassV2TokenExchangeRole

(可选)您要用作代币交换角色的自定义 IAM 角色,被测设备假定该角色与Amazon资源交互。

注意

IDT 在测试运行期间使用此自定义 IAM 角色,而不是创建默认的代币交换角色。如果您使用自定义角色,则可以更新测试用户的 IAM 权限,以排除允许用户创建和删除 IAM 角色和策略的iamResourcesUpdate语句。

IAM,配置自定义令牌交换角色

hsm

此功能适用于 IDT v4.5.1 及更高版本。

(可选)使用Amazon IoT Greengrass硬件安全模块 (HSM) 进行测试的配置信息。否则,应忽略 hsm 属性。有关更多信息,请参阅 硬件安全性集成

此属性仅在 connectivity.protocol 设置为 ssh 时适用。

hsm.greengrassPkcsPluginJar

您下载到 IDT 主机的 PKCS #11 提供商组件的完整路径。 Amazon IoT Greengrass以 JAR 文件形式提供此组件,您可以下载该文件在安装期间将其指定为配置插件。你可以通过以下 URL 下载该组件的 JAR 文件的最新版本:https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar

hsm.pkcs11ProviderLibrary

硬件安全模块 (HSM) 供应商提供的用于与 HSM 交互的 PKCS #11 库的完整路径。

hsm.slotId

用于标识加载密钥和证书的 HSM 插槽的插槽 ID。

hsm.slotLabel

用于标识加载密钥和证书的 HSM 插槽的插槽标签。

hsm.slotUserPin

IDT 用来向 HSM 验证Amazon IoT Greengrass核心软件的用户 PIN。

注意

,PIN。

hsm.keyLabel

用于标识硬件模块中的键的标签。密钥和证书必须使用相同的密钥标签。

hsm.preloadedCertificateArn

Amazon (ARNAmazon IoT)。

您必须事先使用 HSM 中的密钥生成了此证书,将其导入到您的 HSM 中,然后上传到Amazon IoT云端。有关生成和导入证书的信息,请参阅 HSM 文档。

config.json。 。有关将证书上传到的更多信息Amazon IoT,请参阅《Amazon IoT开发者指南》中的手动注册客户端证书

hsm.rootCAPath

(可选)IDT 主机上到签署证书的根证书颁发机构 (CA) 的完整路径。如果您在 HSM 中创建的证书不是由 Amazon 根 CA 签名的,则此为必填项。