

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren Sie die IDT-Einstellungen, um die AWS IoT Greengrass Qualification Suite auszuführen
<a name="set-config"></a>

Bevor Sie Tests ausführen, müssen Sie Einstellungen für AWS Anmeldeinformationen und Geräte auf Ihrem Hostcomputer konfigurieren.

## Konfigurieren Sie die AWS Anmeldeinformationen in config.json
<a name="cfg-aws-gg"></a>

Sie müssen Ihre IAM-Benutzeranmeldedaten in der `<device_tester_extract_location>/configs/config.json` Datei konfigurieren. Verwenden Sie die Anmeldeinformationen für den IDT for AWS IoT Greengrass V2-Benutzer, der in erstellt wurde. [Erstellen und konfigurieren Sie ein AWS-Konto](dev-tst-prereqs.md#config-aws-account-for-idt) Sie können Ihre Anmeldeinformationen auf zwei Arten angeben:
+ In einer Anmeldeinformationsdatei
+ Als Umgebungsvariablen

### Konfigurieren Sie AWS Anmeldeinformationen mit einer Anmeldeinformationsdatei
<a name="config-cred-file"></a>

IDT verwendet die gleiche Anmeldeinformationsdatei wie das AWS CLI. Weitere Informationen finden Sie unter [Konfigurations- und Anmeldeinformationsdateien](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

Der Speicherort der Datei mit den Anmeldeinformationen variiert je nach verwendetem Betriebssystem:
+ macOS Linux: `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Fügen Sie der `credentials` Datei Ihre AWS Anmeldeinformationen im folgenden Format hinzu:

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

Um IDT für AWS IoT Greengrass V2 so zu konfigurieren, dass AWS Anmeldeinformationen aus Ihrer `credentials` Datei verwendet werden, bearbeiten Sie Ihre `config.json` Datei wie folgt:

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

**Anmerkung**  
Wenn Sie das `default` AWS Profil nicht verwenden, ändern Sie unbedingt den Profilnamen in Ihrer `config.json` Datei. Weitere Informationen hierzu finden Sie unter [Benannte Profile](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Konfigurieren Sie AWS Anmeldeinformationen mit Umgebungsvariablen
<a name="config-env-vars"></a>

Umgebungsvariablen sind Variablen, die vom Betriebssystem gepflegt und von Systembefehlen verwendet werden. Sie werden nicht gespeichert, wenn Sie die SSH-Sitzung schließen. IDT für AWS IoT Greengrass V2 kann die `AWS_SECRET_ACCESS_KEY` Umgebungsvariablen `AWS_ACCESS_KEY_ID` und zum Speichern Ihrer AWS Anmeldeinformationen verwenden.

Um diese Variablen auf Linux, macOS oder Unix festzulegen, verwenden Sie **export**:

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

In Windows können Sie die Variablen mit **set** festlegen:

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

Um den IDT so zu konfigurieren, dass er die Umgebungsvariablen verwendet, bearbeiten Sie den Abschnitt `auth` in Ihrer Datei `config.json`. Ein Beispiel:

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

## Konfigurieren von device.json
<a name="device-config"></a>

**Anmerkung**  
IDT v4.9.3 unterstützt das Testen der Funktionen`ml`, und`docker`. `streamManagement` IDT v4.9.4 und spätere Versionen unterstützen Tests. `docker` Wenn Sie diese Funktionen nicht testen möchten, setzen Sie den entsprechenden Wert auf. `no`

Zusätzlich zu den AWS Anmeldeinformationen benötigt IDT für AWS IoT Greengrass V2 Informationen über die Geräte, auf denen die Tests ausgeführt werden. Beispielinformationen wären IP-Adresse, Anmeldeinformationen, Betriebssystem und CPU-Architektur.

Sie müssen diese Informationen mittels der Vorlage `device.json` in ` <device_tester_extract_location>/configs/device.json` angeben:

------
#### [ IDT v4.9.3 ]

```
[
  {
    "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>"
            }
          }
        }
      }
    ]
  }
]
```

**Anmerkung**  
Geben Sie `privKeyPath` nur an, wenn `method` auf `pki` gesetzt ist.  
Geben Sie `password` nur an, wenn `method` auf `password` gesetzt ist.

Alle Eigenschaften, die Werte enthalten, sind erforderlich, wie hier beschrieben:

`id`  
Eine benutzerdefinierte alphanumerische ID, die eine Sammlung von Geräten, den sogenannten *Gerätepool*, eindeutig identifiziert. Geräte, die zu einem Pool gehören, müssen über identische Hardware verfügen. Bei der Ausführung einer Reihe von Tests werden Geräte im Pool verwendet, um die Workload zu parallelisieren. Mehrere Geräte werden verwendet, um verschiedene Tests auszuführen.

`sku`  
Ein alphanumerischer Wert, durch den das zu testende Gerät eindeutig identifiziert wird. Die SKU wird verwendet, um qualifizierte Boards nachzuverfolgen.  
Wenn Sie Ihr Gerät im AWS Partner Gerätekatalog anbieten möchten, muss die hier angegebene SKU mit der SKU übereinstimmen, die Sie bei der Angebotserstellung verwenden.

`features`  
Ein Array, das die Funktionen enthält, die das Gerät unterstützt. Alle Funktionen sind erforderlich.    
`arch`  
Die unterstützten Betriebssystemarchitekturen, die durch den Testlauf validiert werden. Folgende sind gültige Werte:  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`ml`  
<a name="description-ml"></a>Überprüft, ob das Gerät alle erforderlichen technischen Abhängigkeiten erfüllt, um die AWS bereitgestellten Komponenten für maschinelles Lernen (ML) verwenden zu können.  
Durch die Aktivierung dieser Funktion wird auch überprüft<a name="description-ml-inference-phrase"></a>, ob das Gerät ML-Inferenz mithilfe der Frameworks [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) und [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) ML durchführen kann.  
Gültige Werte sind eine beliebige Kombination aus `dlr` und `tensorflowlite` oder. `no`  
`docker`  
<a name="description-docker"></a>Überprüft, ob das Gerät alle erforderlichen technischen Abhängigkeiten erfüllt, um die von AWS-bereitgestellte Docker-Anwendungsmanager () `aws.greengrass.DockerApplicationManager` -Komponente verwenden zu können.  
Durch die Aktivierung dieser Funktion wird auch bestätigt<a name="description-docker-app-manager-qual-phrase"></a>, dass das Gerät ein Docker-Container-Image von Amazon ECR herunterladen kann.  
Gültige Werte sind eine beliebige Kombination von oder. `yes` `no`  
`streamManagement`  
<a name="description-sm"></a>Überprüft, ob das Gerät den [AWS IoT Greengrass Stream-Manager](manage-data-streams.md) herunterladen, installieren und ausführen kann.  
Gültige Werte sind eine beliebige Kombination von `yes` oder`no`.  
`hsi`  
<a name="description-hsi"></a>Überprüft, ob das Gerät Verbindungen zu den AWS IoT und AWS IoT Greengrass Diensten mithilfe eines privaten Schlüssels und Zertifikats authentifizieren kann, die in einem Hardware-Sicherheitsmodul (HSM) gespeichert sind. Mit diesem Test wird auch überprüft, ob die vom Hersteller AWS bereitgestellte [PKCS \$111 -Anbieterkomponente](pkcs11-provider-component.md) über eine vom Hersteller bereitgestellte PKCS \$111 -Bibliothek eine Schnittstelle zum HSM herstellen kann. Weitere Informationen finden Sie unter [Integration von Hardware-Sicherheit](hardware-security.md).  
Gültige Werte sind `hsm` oder `no`.
Das Testen von `hsi` ist nur mit IDT v4.9.3 und späteren Versionen verfügbar.

`devices.id`  
Eine benutzerdefinierte eindeutige Kennung für das zu testende Gerät.

`devices.operatingSystem`  
Das Betriebssystem des Geräts. Unterstützte Werte sind `Linux` und `Windows`.

`connectivity.protocol`  
Das Kommunikationsprotokoll, das für die Kommunikation mit diesem Gerät verwendet wird. Derzeit gilt der einzige unterstützte Wert `ssh` für physische Geräte.

`connectivity.ip`  
Die IP-Adresse des zu testenden Geräts.  
<a name="connectivity-protocol-ssh-only"></a>Diese Eigenschaft gilt nur, wenn `connectivity.protocol` auf `ssh` festgelegt ist.

`connectivity.port`  
Optional. Die Portnummer, die für SSH-Verbindungen verwendet werden soll.  
Der Standardwert ist 22.  
Diese Eigenschaft gilt nur, wenn `connectivity.protocol` auf `ssh` festgelegt ist.

`connectivity.publicKeyPath`  
Optional. Der vollständige Pfad zum öffentlichen Schlüssel, der zur Authentifizierung von Verbindungen mit dem zu testenden Gerät verwendet wird.   
Wenn Sie das angeben`publicKeyPath`, validiert IDT den öffentlichen Schlüssel des Geräts, wenn es eine SSH-Verbindung zu dem zu testenden Gerät herstellt. Wenn dieser Wert nicht angegeben ist, stellt IDT eine SSH-Verbindung her, validiert aber nicht den öffentlichen Schlüssel des Geräts.   
Wir empfehlen dringend, dass Sie den Pfad zum öffentlichen Schlüssel angeben und eine sichere Methode verwenden, um diesen öffentlichen Schlüssel abzurufen. Für standardmäßige SSH-Clients, die auf der Befehlszeile basieren, wird der öffentliche Schlüssel in der Datei bereitgestellt. `known_hosts` Wenn Sie eine separate öffentliche Schlüsseldatei angeben, muss diese Datei dasselbe Format wie die `known_hosts` Datei verwenden, d. h.. ` ip-address key-type public-key` Wenn es mehrere Einträge mit derselben IP-Adresse gibt, muss der Eintrag für den von IDT verwendeten Schlüsseltyp vor den anderen Einträgen in der Datei stehen.

`connectivity.auth`  
Authentifizierungsinformationen für die Verbindung.  
<a name="connectivity-protocol-ssh-only"></a>Diese Eigenschaft gilt nur, wenn `connectivity.protocol` auf `ssh` festgelegt ist.    
`connectivity.auth.method`  
Die Authentifizierungsmethode, die für den Zugriff über ein bestimmtes Verbindungsprotokoll auf ein Gerät verwendet wird.  
Unterstützte Werte sind:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Die für die Authentifizierung verwendeten Anmeldeinformationen.    
`connectivity.auth.credentials.password`  
Das Passwort für die Anmeldung am Gerät wird überprüft.  
Dieser Wert gilt nur, wenn `connectivity.auth.method` auf `password` festgelegt ist.  
`connectivity.auth.credentials.privKeyPath`  
Der vollständige Pfad zum privaten Schlüssel, der für die Anmeldung bei dem zu testenden Gerät verwendet wird.  
Dieser Wert gilt nur, wenn `connectivity.auth.method` auf `pki` festgelegt ist.  
`connectivity.auth.credentials.user`  
Der Benutzername für die Anmeldung bei dem zu testenden Gerät.

------
#### [ IDT v4.9.4 ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "docker",
        "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>"
            }
          }
        }
      }
    ]
  }
]
```

**Anmerkung**  
Geben Sie `privKeyPath` nur an, wenn `method` auf `pki` gesetzt ist.  
Geben Sie `password` nur an, wenn `method` auf `password` gesetzt ist.

Alle Eigenschaften, die Werte enthalten, sind erforderlich, wie hier beschrieben:

`id`  
Eine benutzerdefinierte alphanumerische ID, die eine Sammlung von Geräten, den sogenannten *Gerätepool*, eindeutig identifiziert. Geräte, die zu einem Pool gehören, müssen über identische Hardware verfügen. Bei der Ausführung einer Reihe von Tests werden Geräte im Pool verwendet, um die Workload zu parallelisieren. Mehrere Geräte werden verwendet, um verschiedene Tests auszuführen.

`sku`  
Ein alphanumerischer Wert, durch den das zu testende Gerät eindeutig identifiziert wird. Die SKU wird verwendet, um qualifizierte Boards nachzuverfolgen.  
Wenn Sie Ihr Gerät im AWS Partner Gerätekatalog anbieten möchten, muss die hier angegebene SKU mit der SKU übereinstimmen, die Sie bei der Angebotserstellung verwenden.

`features`  
Ein Array, das die Funktionen enthält, die das Gerät unterstützt. Alle Funktionen sind erforderlich.    
`arch`  
Die unterstützten Betriebssystemarchitekturen, die durch den Testlauf validiert werden. Folgende sind gültige Werte:  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`docker`  
<a name="description-docker"></a>Überprüft, ob das Gerät alle erforderlichen technischen Abhängigkeiten erfüllt, um die von ihm AWS bereitgestellte Komponente Docker Application Manager () zu verwenden. `aws.greengrass.DockerApplicationManager`  
Durch die Aktivierung dieser Funktion wird auch bestätigt<a name="description-docker-app-manager-qual-phrase"></a>, dass das Gerät ein Docker-Container-Image von Amazon ECR herunterladen kann.  
Gültige Werte sind eine beliebige Kombination von oder. `yes` `no`  
`hsi`  
<a name="description-hsi"></a>Überprüft, ob das Gerät Verbindungen zu den AWS IoT und AWS IoT Greengrass Diensten mithilfe eines privaten Schlüssels und Zertifikats authentifizieren kann, die in einem Hardware-Sicherheitsmodul (HSM) gespeichert sind. Mit diesem Test wird auch überprüft, ob die vom Hersteller AWS bereitgestellte [PKCS \$111 -Anbieterkomponente](pkcs11-provider-component.md) über eine vom Hersteller bereitgestellte PKCS \$111 -Bibliothek eine Schnittstelle zum HSM herstellen kann. Weitere Informationen finden Sie unter [Integration von Hardware-Sicherheit](hardware-security.md).  
Gültige Werte sind `hsm` oder `no`.
Das Testen von `hsi` ist nur mit IDT v4.9.3 und späteren Versionen verfügbar.

`devices.id`  
Eine benutzerdefinierte eindeutige Kennung für das zu testende Gerät.

`devices.operatingSystem`  
Das Betriebssystem des Geräts. Unterstützte Werte sind `Linux` und `Windows`.

`connectivity.protocol`  
Das Kommunikationsprotokoll, das für die Kommunikation mit diesem Gerät verwendet wird. Derzeit gilt der einzige unterstützte Wert `ssh` für physische Geräte.

`connectivity.ip`  
Die IP-Adresse des zu testenden Geräts.  
<a name="connectivity-protocol-ssh-only"></a>Diese Eigenschaft gilt nur, wenn `connectivity.protocol` auf `ssh` festgelegt ist.

`connectivity.port`  
Optional. Die Portnummer, die für SSH-Verbindungen verwendet werden soll.  
Der Standardwert ist 22.  
Diese Eigenschaft gilt nur, wenn `connectivity.protocol` auf `ssh` festgelegt ist.

`connectivity.publicKeyPath`  
Optional. Der vollständige Pfad zum öffentlichen Schlüssel, der zur Authentifizierung von Verbindungen mit dem zu testenden Gerät verwendet wird.   
Wenn Sie das angeben`publicKeyPath`, validiert IDT den öffentlichen Schlüssel des Geräts, wenn es eine SSH-Verbindung zu dem zu testenden Gerät herstellt. Wenn dieser Wert nicht angegeben ist, stellt IDT eine SSH-Verbindung her, validiert aber nicht den öffentlichen Schlüssel des Geräts.   
Wir empfehlen dringend, dass Sie den Pfad zum öffentlichen Schlüssel angeben und eine sichere Methode verwenden, um diesen öffentlichen Schlüssel abzurufen. Für standardmäßige SSH-Clients, die auf der Befehlszeile basieren, wird der öffentliche Schlüssel in der Datei bereitgestellt. `known_hosts` Wenn Sie eine separate öffentliche Schlüsseldatei angeben, muss diese Datei dasselbe Format wie die `known_hosts` Datei verwenden, d. h.. ` ip-address key-type public-key` Wenn es mehrere Einträge mit derselben IP-Adresse gibt, muss der Eintrag für den von IDT verwendeten Schlüsseltyp vor den anderen Einträgen in der Datei stehen.

`connectivity.auth`  
Authentifizierungsinformationen für die Verbindung.  
<a name="connectivity-protocol-ssh-only"></a>Diese Eigenschaft gilt nur, wenn `connectivity.protocol` auf `ssh` festgelegt ist.    
`connectivity.auth.method`  
Die Authentifizierungsmethode, die für den Zugriff über ein bestimmtes Verbindungsprotokoll auf ein Gerät verwendet wird.  
Unterstützte Werte sind:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Die für die Authentifizierung verwendeten Anmeldeinformationen.    
`connectivity.auth.credentials.password`  
Das Passwort für die Anmeldung am Gerät wird überprüft.  
Dieser Wert gilt nur, wenn `connectivity.auth.method` auf `password` festgelegt ist.  
`connectivity.auth.credentials.privKeyPath`  
Der vollständige Pfad zum privaten Schlüssel, der für die Anmeldung bei dem zu testenden Gerät verwendet wird.  
Dieser Wert gilt nur, wenn `connectivity.auth.method` auf `pki` festgelegt ist.  
`connectivity.auth.credentials.user`  
Der Benutzername für die Anmeldung bei dem zu testenden Gerät.

------

## Konfigurieren Sie userdata.json
<a name="userdata-config"></a>

IDT für AWS IoT Greengrass V2 benötigt außerdem zusätzliche Informationen zum Speicherort von Testartefakten und Software. AWS IoT Greengrass 

Sie müssen diese Informationen mittels der Vorlage `userdata.json` in ` <device_tester_extract_location>/configs/userdata.json` angeben:

```
{
    "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"
    }
}
```

Alle Eigenschaften, die Werte enthalten, sind wie hier beschrieben erforderlich:

`TempResourcesDirOnDevice`  
Der vollständige Pfad zu einem temporären Ordner auf dem zu testenden Gerät, in dem Testartefakte gespeichert werden sollen. Stellen Sie sicher, dass keine Sudo-Berechtigungen erforderlich sind, um in dieses Verzeichnis zu schreiben.   
IDT löscht den Inhalt dieses Ordners, wenn die Ausführung eines Tests abgeschlossen ist.

`InstallationDirRootOnDevice`  
Der vollständige Pfad zu einem Ordner auf dem Gerät, in dem die Installation durchgeführt werden soll. AWS IoT Greengrass Für PreInstalled Greengrass ist dies der Pfad zum Greengrass-Installationsverzeichnis.  
Sie müssen die erforderlichen Dateiberechtigungen für diesen Ordner festlegen. Führen Sie den folgenden Befehl für jeden Ordner im Installationspfad aus.  

```
sudo chmod 755 folder-name
```

`GreengrassNucleusZip`  
Der vollständige Pfad zur Greengrass Nucleus-ZIP-Datei (`greengrass-nucleus-latest.zip`) auf Ihrem Host-Computer. Dieses Feld ist für Tests mit PreInstalled Greengrass nicht erforderlich.  
Informationen zu den unterstützten Versionen von Greengrass Nucleus for IDT für AWS IoT Greengrass finden Sie unter. [Aktuelle IDT-Version für V2 AWS IoT Greengrass](dev-test-versions.md#idt-latest-version) Informationen zum Herunterladen der neuesten Greengrass-Software finden [Sie unter AWS IoT Greengrass Software herunterladen](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html#config-gg).

`PreInstalled`  
Diese Funktion ist nur für IDT v4.5.8 und spätere Versionen auf Linux-Geräten verfügbar.  
(Optional) Wenn der Wert ist*yes*, geht IDT davon aus, dass der angegebene Pfad das Verzeichnis ist`InstallationDirRootOnDevice`, in dem Greengrass installiert ist.  
Weitere Informationen zur Installation von Greengrass auf Ihrem Gerät finden Sie unter[Installieren Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung](quick-installation.md). Wenn Sie die [Installation mit manueller Bereitstellung durchführen](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html), schließen Sie den Schritt „Das AWS IoT Ding zu einer neuen oder vorhandenen Dinggruppe hinzufügen“ ein, wenn Sie ein [AWS IoT Ding](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html#create-iot-thing) manuell erstellen. IDT geht davon aus, dass das Ding und die Dinggruppe während der Installation erstellt wurden. Stellen Sie sicher, dass diese Werte in der `effectiveConfig.yaml` Datei wiedergegeben werden. IDT sucht nach der Datei `effectiveConfig.yaml` unter`<InstallationDirRootOnDevice>/config/effectiveConfig.yaml`.  
Stellen Sie beim Ausführen von Tests mit HSM sicher, dass das `aws.greengrass.crypto.Pkcs11Provider` Feld in aktualisiert ist. `effectiveConfig.yaml`

  `GreengrassV2TokenExchangeRole`  
(Optional) Die benutzerdefinierte IAM-Rolle, die Sie als Token-Austauschrolle verwenden möchten, von der das zu testende Gerät annimmt, um mit AWS Ressourcen zu interagieren.   
IDT verwendet diese benutzerdefinierte IAM-Rolle, anstatt während des Testlaufs die standardmäßige Token-Austauschrolle zu erstellen. Wenn Sie eine benutzerdefinierte Rolle verwenden, können Sie die [IAM-Berechtigungen für den Testbenutzer aktualisieren, um die `iamResourcesUpdate` Anweisung auszuschließen, die es dem Benutzer](dev-tst-prereqs.md#configure-idt-permissions) ermöglicht, IAM-Rollen und -Richtlinien zu erstellen und zu löschen. 
Weitere Informationen zum Erstellen einer benutzerdefinierten IAM-Rolle als Token-Exchange-Rolle finden Sie unter. [Konfigurieren Sie eine benutzerdefinierte Token-Austauschrolle](device-config-setup.md#configure-custom-tes-role-for-idt)

`hsm`  
Diese Funktion ist für IDT v4.5.1 und höher verfügbar.  
(Optional) Die Konfigurationsinformationen für Tests mit einem AWS IoT Greengrass Hardware Security Module (HSM). Andernfalls sollte die `hsm`-Eigenschaft weggelassen werden. Weitere Informationen finden Sie unter [Integration von Hardware-Sicherheit](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Diese Eigenschaft gilt nur, wenn `connectivity.protocol` auf `ssh` festgelegt ist.  
Die HSM-Konfiguration kann als sensible Daten betrachtet werden, wenn das Hardware-Sicherheitsmodul von IDT und einem anderen System gemeinsam genutzt wird. In diesem Fall können Sie die Sicherung dieser Konfigurationswerte im Klartext vermeiden, indem Sie sie in einem AWS Parameter SecureString Store-Parameter speichern und IDT so konfigurieren, dass sie während der Testausführung abgerufen werden. Weitere Informationen finden Sie unter [Rufen Sie die Konfiguration aus dem Parameter Store ab AWS](#fetch-config).  
`hsm.greengrassPkcsPluginJar`  
Der vollständige Pfad zur [PKCS \$111 -Anbieterkomponente](pkcs11-provider-component.md), die Sie auf den IDT-Hostcomputer herunterladen. AWS IoT Greengrass stellt diese Komponente als JAR-Datei bereit, die Sie herunterladen können, um sie während der Installation als Provisioning-Plugin anzugeben. Sie können die neueste Version der JAR-Datei der Komponente unter der folgenden URL herunterladen: [https://d2s8p88vqu9w66.cloudfront. net/releases/Pkcs11Provider/aws.greengrass.crypto.pkcs11Provider-latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar).  
`hsm.pkcs11ProviderLibrary`  
Der vollständige Pfad zur PKCS \$111 -Bibliothek, die vom Hersteller des Hardware-Sicherheitsmoduls (HSM) für die Interaktion mit dem HSM bereitgestellt wird.  
`hsm.slotId`  
Die Steckplatz-ID, anhand derer der HSM-Steckplatz identifiziert wird, in den Sie den Schlüssel und das Zertifikat laden.  
`hsm.slotLabel`  
Die Steckplatzbezeichnung, anhand derer der HSM-Steckplatz identifiziert wird, in den Sie den Schlüssel und das Zertifikat laden.  
`hsm.slotUserPin`  
Die Benutzer-PIN, mit der IDT die AWS IoT Greengrass Core-Software beim HSM authentifiziert.  
Verwenden Sie aus Sicherheitsgründen nicht dieselbe Benutzer-PIN auf Produktionsgeräten.  
`hsm.keyLabel`  
Das Label zur Identifizierung des Schlüssels im Hardwaremodul. Sowohl der Schlüssel als auch das Zertifikat müssen dieselbe Schlüsselbezeichnung verwenden.  
`hsm.preloadedCertificateArn`  
Der Amazon-Ressourcenname (ARN) des hochgeladenen Gerätezertifikats in der AWS IoT Cloud.  
Sie müssen dieses Zertifikat zuvor mit dem Schlüssel im HSM generiert, in Ihr HSM importiert und in die AWS IoT Cloud hochgeladen haben. Informationen zum Generieren und Importieren des Zertifikats finden Sie in der Dokumentation zu Ihrem HSM.  
Sie müssen das Zertifikat in dasselbe Konto und dieselbe Region hochladen, die Sie in [config.json](#cfg-aws-gg) angeben. . Weitere Informationen zum Hochladen Ihres Zertifikats auf AWS IoT finden Sie unter [Manuelles Registrieren eines Client-Zertifikats](https://docs.aws.amazon.com/iot/latest/developerguide/manual-cert-registration.html) im *AWS IoT Entwicklerhandbuch*.  
`hsm.rootCAPath`  
(Optional) Der vollständige Pfad auf dem IDT-Hostcomputer zur Stammzertifizierungsstelle (CA), die Ihr Zertifikat signiert hat. Dies ist erforderlich, wenn das Zertifikat in Ihrem erstellten HSM nicht von der Amazon-Stammzertifizierungsstelle signiert ist.

## Rufen Sie die Konfiguration aus dem Parameter Store ab AWS
<a name="fetch-config"></a>

AWS IoT Device Tester (IDT) enthält eine optionale Funktion zum Abrufen von Konfigurationswerten aus dem [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html). AWS Der Parameter Store ermöglicht die sichere und verschlüsselte Speicherung von Konfigurationen. Nach der Konfiguration kann IDT Parameter aus dem AWS Parameterspeicher abrufen, anstatt Parameter im Klartext in der Datei zu speichern. `userdata.json` Dies ist nützlich für alle sensiblen Daten, die verschlüsselt gespeichert werden sollten, z. B.: Passwörter, Pins und andere geheime Daten.

1. Um diese Funktion nutzen zu können, müssen Sie die bei der Erstellung Ihres [IDT-Benutzers](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html) verwendeten Berechtigungen aktualisieren, um die GetParameter Aktion mit den Parametern zu ermöglichen, für deren Verwendung IDT konfiguriert ist. Im Folgenden finden Sie ein Beispiel für eine Berechtigungserklärung, die dem IDT-Benutzer hinzugefügt werden kann. Weitere Informationen finden Sie im [AWS Systems Manager Benutzerhandbuch](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html).

   ```
   {
          "Sid":"parameterStoreResources",
          "Effect": "Allow",
           "Action": [
               "ssm:GetParameter"
           ],
           "Resource": "arn:aws:ssm:*:*:parameter/IDT*"
   }
   ```

   Die obige Berechtigung ist so konfiguriert, dass alle Parameter abgerufen werden können, deren Name mit, beginnt`IDT`, unter Verwendung des Platzhalterzeichens. `*` Sie sollten dies an Ihre Bedürfnisse anpassen, damit IDT Zugriff darauf hat, alle konfigurierten Parameter auf der Grundlage der Benennung der von Ihnen verwendeten Parameter abzurufen.

1. Sie müssen Ihre Konfigurationswerte im AWS Paramater Store speichern. Dies kann über die AWS Konsole oder über die AWS CLI erfolgen. AWS Mit Parameter Store können Sie zwischen verschlüsseltem und unverschlüsseltem Speicher wählen. Für die Speicherung sensibler Werte wie Geheimnisse, Passwörter und Pins sollten Sie die verschlüsselte Option verwenden, bei der es sich um einen Parametertyp von SecureString handelt. Um einen Parameter mit der AWS CLI hochzuladen, können Sie den folgenden Befehl verwenden:

   ```
   aws ssm put-parameter --name IDT-example-name --value IDT-example-value --type SecureString
   ```

   Mit dem folgenden Befehl können Sie überprüfen, ob ein Parameter gespeichert ist. (Optional) Verwenden Sie das `--with-decryption` Flag, um einen entschlüsselten SecureString Parameter abzurufen.

   ```
   aws ssm get-parameter --name IDT-example-name
   ```

   Bei Verwendung der AWS CLI wird der Parameter in die AWS Region des aktuellen CLI-Benutzers hochgeladen, und IDT ruft Parameter aus der Region ab, in der konfiguriert ist. `config.json` Verwenden Sie Folgendes, um Ihre Region von der AWS CLI aus zu überprüfen:

   ```
   aws configure get region
   ```

1. Sobald Sie einen Konfigurationswert in der AWS Cloud haben, können Sie jeden Wert in der IDT-Konfiguration aktualisieren, um ihn aus der AWS Cloud abzurufen. Dazu verwenden Sie einen Platzhalter in Ihrer IDT-Konfiguration des Formulars, `{{AWS.Parameter.parameter_name}}` um den Parameter mit diesem Namen aus dem Parameterspeicher abzurufen. AWS 

   Nehmen wir beispielsweise an, Sie möchten den `IDT-example-name` Parameter aus Schritt 2 als HSM-KeyLabel in Ihrer HSM-Konfiguration verwenden. Zu diesem Zweck können Sie Ihre `userdata.json` wie folgt aktualisieren:

   ```
   "hsm": {
           "keyLabel": "{{AWS.Parameter.IDT-example-name}}",
           [...]
       }
   ```

   IDT ruft zur Laufzeit den Wert dieses Parameters ab, auf den `IDT-example-value` in Schritt 2 gesetzt wurde. Diese Konfiguration ähnelt der Einstellung, `"keyLabel": "IDT-example-value"` aber stattdessen wird dieser Wert verschlüsselt in der AWS Cloud gespeichert.