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

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

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

在运行测试之前,必须对设置进行配置Amazon主机上的凭证和设备。

配置Amazonconfig.json 中的凭证

您必须在中配置 IAM 用户凭证。<device_tester_extract_location>/configs/config.json文件。将 IDT 凭证用于Amazon 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 配置为Amazon IoT Greengrass要使用的 V2Amazon从您的凭证credentials文件,编辑config.json按如下所示文件:

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

如果您不使用default Amazon请确保在您的配置文件名config.json文件。有关更多信息,请参阅命名配置文件

环境变量是由操作系统维护且由系统命令使用的变量。如果您关闭 SSH 会话,则不会保存它们。适用于的 IDTAmazon IoT GreengrassV2 可以使用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凭证,适用于的 IDTAmazon IoT GreengrassV2 需要有关运行测试的设备的信息。示例信息是 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 框架.

有效值是以下任意组合dlrtensorflowlite,或者no.

docker

验证设备是否满足使用Amazon-提供 Docker 应用程序管理器 (aws.greengrass.DockerApplicationManager) 组件。

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

有效值为以下任意组合:yes要么no.

streamManagement

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

有效值为以下任意组合:yes要么no.

hsi

验证设备是否可以验证与Amazon IoT和Amazon IoT Greengrass使用存储在硬件安全模块 (HSM) 中的私有密钥和证书的服务。此测试还验证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

适用于的 IDTAmazon IoT GreengrassV2 还需要有关测试工件位置的其他信息,以及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", "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.

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

sudo chmod 755 folder-name
GreengrassNucleusZip

通往 Greengrass 核 ZIP 的完整路径 (greengrass-nucleus-latest.zip) 主机上的文件。

注意

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

GreengrassV2TokenExchangeRole

可选。要用作被测设备承担与之交互的令牌交换角色的自定义 IAM 角色Amazon资源的费用。

注意

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

有关创建自定义 IAM 角色作为令牌交换角色的更多信息,请参阅配置自定义令牌交换角色.

hsm

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

可选。用于通过Amazon IoT Greengrass硬件安全模块 (HSM)。否则,应忽略 hsm 属性。有关更多信息,请参阅 硬件安全性集成

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

hsm.greengrassPkcsPluginJar

通往的完整路径PKCS #11 提供方组件你下载到 IDT 主机上。Amazon IoT Greengrass将此组件作为 JAR 文件提供,您可以下载该文件以在安装过程中指定为置备插件。您可以将最新版本的组件 JAR 文件下载为以下 URL: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 用于进行身份验证的用户 PINAmazon IoT GreengrassHSM 的核心软件。

注意

作为安全最佳实践,请勿在生产设备上使用相同的用户 PIN。

hsm.keyLabel

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

hsm.preloadedCertificateArn

中已上传设备证书的 Amazon 资源名称 (ARN)Amazon IoT云。

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

您必须将证书上传到您在中提供的同一账户和地区config.json。. 有关将证书上传到的更多信息Amazon IoT请参阅手动注册客户端证书中的Amazon IoT开发人员指南.

hsm.rootCAPath

可选。在 IDT 主机上指向签署证书的根证书颁发机构 (CA) 的完整路径。如果您在 HSM 中创建的证书未由亚马逊根 CA 签名,则必须执行此操作。