Konfigurieren Sie Ihr Gerät für die Ausführung von IDT-Tests - AWS IoT Greengrass

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 Ihr Gerät für die Ausführung von IDT-Tests

Damit IDT Tests zur Gerätequalifizierung durchführen kann, müssen Sie Ihren Host-Computer für den Zugriff auf Ihr Gerät konfigurieren und Benutzerberechtigungen auf Ihrem Gerät konfigurieren.

Installieren Sie Java auf dem Host-Computer

Ab IDT v4.2.0 AWS IoT Greengrass erfordern die optionalen Qualifikationstests für die Ausführung von Java.

Sie können Java Version 8 oder höher verwenden. Wir empfehlen, dass Sie die Langzeit-Support-Versionen von Amazon Corretto oder OpenJDK verwenden. Version 8 oder höher ist erforderlich..

Konfigurieren des Host-Computers für den Zugriff auf das zu testende Gerät

IDT wird auf Ihrem Host-Computer ausgeführt und muss über SSH eine Verbindung mit Ihrem Gerät herstellen können. Es gibt zwei Möglichkeiten, IDT SSH-Zugriff auf Ihre zu testenden Geräte zu gewähren:

  1. Befolgen Sie die Anweisungen hier, um ein SSH-Schlüsselpaar zu erstellen und Ihren Schlüssel zur Anmeldung bei Ihrem zu testenden Gerät ohne Angabe eines Passworts zu berechtigen.

  2. Geben Sie einen Benutzernamen und ein Passwort für jedes Gerät in der Datei device.json an. Weitere Informationen finden Sie unter Konfigurieren von device.json.

Sie können eine beliebige SSL-Implementierung verwenden, um einen SSH-Schlüssel zu erstellen. Die folgenden Anweisungen zeigen, wie Sie SSH-KEYGEN oder PuTTYgen (für Windows) verwenden. Wenn Sie eine andere SSL-Implementierung verwenden, lesen Sie die Dokumentation zu dieser Implementierung.

IDT verwendet SSH-Schlüssel, um sich bei Ihrem zu testenden Gerät zu authentifizieren.

So erstellen Sie einen SSH-Schlüssel mit SSH-KEYGEN
  1. Erstellen Sie einen SSH-Schlüssel.

    Sie können mit dem Open SSH-Befehl ssh-keygen ein SSH-Schlüsselpaar erstellen. Wenn Sie bereits ein SSH-Schlüsselpaar auf Ihrem Host-Computer haben, ist es eine bewährte Methode, ein SSH-Schlüsselpaar speziell für IDT zu erstellen. Auf diese Weise kann Ihr Host-Computer nach Abschluss des Tests keine Verbindung mehr zu Ihrem Gerät herstellen, ohne ein Passwort einzugeben. Außerdem können Sie den Zugriff auf das Remote-Gerät auf die Personen beschränken, die tatsächlich Zugriff benötigen.

    Anmerkung

    Windows verfügt nicht über einen installierten SSH-Client. Weitere Informationen zur Installation eines SSH-Clients unter Windows finden Sie unter Herunterladen der SSH-Client-Software.

    Der Befehl ssh-keygen fordert Sie auf, einen Namen und Pfad zum Speichern des Schlüsselpaars einzugeben. Standardmäßig werden die Schlüsselpaardateien id_rsa (privater Schlüssel) und id_rsa.pub (öffentlicher Schlüssel) genannt. Unter macOS und Linux ist der Standard-Speicherort dieser Dateien ~/.ssh/. Unter Windows ist der Standard-Speicherort C:\Users\<user-name>\.ssh.

    Wenn Sie dazu aufgefordert werden, geben Sie eine Schlüsselphrase zum Schutz Ihres SSH-Schlüssels ein. Weitere Informationen finden Sie unter Generieren eines neuen SSH-Schlüssels.

  2. Fügen Sie autorisierte SSH-Schlüssel zu Ihrem zu testenden Gerät hinzu.

    IDT muss Ihren privaten SSH-Schlüssel für die Anmeldung bei Ihrem zu testenden Gerät verwenden. Um Ihren privaten SSH-Schlüssel für die Anmeldung bei Ihrem zu testenden Gerät zu autorisieren, verwenden Sie den Befehl ssh-copy-id von Ihrem Host-Computer. Dieser Befehl fügt Ihren öffentlichen Schlüssel zur Datei ~/.ssh/authorized_keys auf dem zu testenden Gerät hinzu. Beispielsweise:

    $ ssh-copy-id <remote-ssh-user>@<remote-device-ip>

    Wo remote-ssh-userwird der Benutzername verwendet, um sich bei Ihrem zu testenden Gerät anzumelden, und remote-device-ipist die IP-Adresse des zu testenden Geräts, mit dem Tests durchgeführt werden sollen. Beispielsweise:

    ssh-copy-id pi@192.168.1.5

    Wenn Sie dazu aufgefordert werden, geben Sie das Passwort für den im Befehl ssh-copy-id angegebenen Benutzernamen ein.

    ssh-copy-id geht davon aus, dass der öffentliche Schlüssel id_rsa.pub heißt und am Standard-Speicherort gespeichert ist (~/.ssh/ in macOS und Linux und C:\Users\<user-name>\.ssh in Windows). Wenn Sie dem öffentlichen Schlüssel einen anderen Namen gegeben oder ihn an einem anderen Ort gespeichert haben, müssen Sie den vollqualifizierten Pfad zu Ihrem öffentlichen SSH-Schlüssel mit der Option -i zu ssh-copy-id (z. B. ssh-copy-id -i ~/my/path/myKey.pub) angeben. Weitere Informationen zum Erstellen von SSH-Schlüsseln und Kopieren von öffentlichen Schlüsseln finden Sie unter SSH-COPY-ID.

So erstellen Sie einen SSH-Schlüssel mit PuTTYgen (nur Windows)
  1. Stellen Sie sicher, dass der OpenSSH-Server und -Client auf Ihrem zu testenden Gerät installiert sind. Weitere Informationen finden Sie unter OpenSSH.

  2. Installieren Sie PuTTYgen auf Ihrem zu testenden Gerät.

  3. Öffnen Sie PuTTYgen.

  4. Wählen Sie Generate (Generieren) aus und bewegen Sie den Mauszeiger in das Feld, um einen privaten Schlüssel zu generieren.

  5. Wählen Sie im Menü Conversions (Konvertierungen) die Option Export OpenSSH key (OpenSSH-Schlüssel exportieren) aus und speichern Sie den privaten Schlüssel mit der Dateierweiterung .pem.

  6. Fügen Sie den öffentlichen Schlüssel der Datei /home/<user>/.ssh/authorized_keys auf dem zu testenden Gerät hinzu.

    1. Kopieren Sie den Text für den öffentlichen Schlüssel aus dem PuTTYgen-Fenster.

    2. Verwenden Sie PuTTY, um eine Sitzung auf Ihrem zu testenden Gerät zu erstellen.

      1. Führen Sie in einer Eingabeaufforderung oder einem Windows Powershell-Fenster den folgenden Befehl aus:

        C:/<path-to-putty>/putty.exe -ssh <user>@<dut-ip-address>

      2. Wenn Sie dazu aufgefordert werden, geben Sie das Passwort Ihres Geräts ein.

      3. Verwenden Sie vi oder einen anderen Texteditor, um den öffentlichen Schlüssel an die Datei /home/<user>/.ssh/authorized_keys auf Ihrem zu testenden Gerät anzuhängen.

  7. Aktualisieren Sie die Datei device.json mit Ihrem Benutzernamen, der IP-Adresse und dem Pfad zur Datei mit dem privaten Schlüssel, die Sie gerade auf Ihrem Host-Computer für jedes zu testende Gerät gespeichert haben. Weitere Informationen finden Sie unter Konfigurieren von device.json. Stellen Sie sicher, dass Sie den vollständigen Pfad und Dateinamen für den privaten Schlüssel angeben und Schrägstriche ('/') verwenden. Verwenden Sie beispielsweise für den Windows-Pfad C:\DT\privatekey.pem die Angabe C:/DT/privatekey.pem in der Datei device.json.

Konfigurieren Sie Benutzeranmeldeinformationen für Windows-Geräte

Um ein Windows-basiertes Gerät zu qualifizieren, müssen Sie Benutzeranmeldeinformationen im LocalSystem Konto auf dem zu testenden Gerät für die folgenden Benutzer konfigurieren:

  • Der Standard-Greengrass-Benutzer (ggc_user).

  • Der Benutzer, mit dem Sie eine Verbindung zu dem zu testenden Gerät herstellen. Sie konfigurieren diesen Benutzer in der device.jsonDatei.

Sie müssen jeden Benutzer im LocalSystem Konto auf dem zu testenden Gerät erstellen und dann den Benutzernamen und das Passwort für den Benutzer in der Credential Manager-Instanz für das LocalSystem Konto speichern.

Um Benutzer auf Windows-Geräten zu konfigurieren
  1. Öffnen Sie die Windows-Eingabeaufforderung (cmd.exe) als Administrator.

  2. Erstellen Sie die Benutzer im LocalSystem Konto auf dem Windows-Gerät. Führen Sie den folgenden Befehl für jeden Benutzer aus, den Sie erstellen möchten. Ersetzen Sie für den Standardbenutzer von Greengrass den Benutzernamen durch. ggc_user Ersetzen Sie das Passwort durch ein sicheres Passwort.

    net user /add user-name password
  3. Laden Sie das PsExecProgramm von Microsoft herunter und installieren Sie es auf dem Gerät.

  4. Verwenden Sie das PsExec Hilfsprogramm, um den Benutzernamen und das Passwort für den Standardbenutzer in der Credential Manager-Instanz für das LocalSystem Konto zu speichern.

    Führen Sie den folgenden Befehl für jeden Benutzer aus, den Sie in Credential Manager konfigurieren möchten. Ersetzen Sie für den Standardbenutzer von Greengrass den Benutzernamen durch. ggc_user Ersetzen Sie das Passwort durch das Passwort des Benutzers, das Sie zuvor festgelegt haben.

    psexec -s cmd /c cmdkey /generic:user-name /user:user-name /pass:password

    Wenn das PsExec License Agreementgeöffnet wird, stimmen Sie Acceptder Lizenz zu und führen Sie den Befehl aus.

    Anmerkung

    Auf Windows-Geräten wird auf dem LocalSystem Konto der Greengrass-Nucleus ausgeführt, und Sie müssen das PsExec Hilfsprogramm verwenden, um Benutzerinformationen im LocalSystem Konto zu speichern. Wenn Sie die Credential Manager-Anwendung verwenden, werden diese Informationen nicht im Konto, sondern im Windows-Konto des aktuell angemeldeten Benutzers gespeichert. LocalSystem

Konfigurieren von Benutzerberechtigungen auf Ihrem Gerät

IDT führt Operationen für verschiedene Verzeichnisse und Dateien auf einem zu testenden Gerät aus. Einige dieser Operationen erfordern höhere Berechtigungen (mit sudo). Um diese Vorgänge zu automatisieren, muss IDT für AWS IoT Greengrass V2 in der Lage sein, Befehle mit sudo auszuführen, ohne nach einem Passwort gefragt zu werden.

Führen Sie die folgenden Schritte auf dem zu testenden Gerät aus, um sudo den Zugriff ohne Aufforderung zur Eingabe eines Passworts zu erlauben.

Anmerkung

username bezieht sich auf den SSH-Benutzer, der von IDT für den Zugriff auf das zu testende Gerät verwendet wird.

So fügen Sie den Benutzer der sudo-Gruppe hinzu
  1. Führen Sie auf dem zu testenden Gerät sudo usermod -aG sudo <username> aus.

  2. Melden Sie sich ab und melden Sie sich dann wieder an, damit die Änderungen wirksam werden.

  3. Führen Sie sudo echo test aus, um zu überprüfen, ob der Benutzername erfolgreich hinzugefügt wurde. Wenn Sie nicht zur Eingabe eines Passworts aufgefordert werden, ist Ihr Benutzer korrekt konfiguriert.

  4. Öffnen Sie die Datei /etc/sudoers und fügen Sie am Ende der Datei die folgende Zeile hinzu:

    <ssh-username> ALL=(ALL) NOPASSWD: ALL

Konfigurieren Sie eine benutzerdefinierte Token-Austauschrolle

Sie können eine benutzerdefinierte IAM-Rolle als Token-Austauschrolle verwenden, die das getestete Gerät für die Interaktion mit AWS Ressourcen annimmt. Informationen zum Erstellen einer IAM-Rolle finden Sie unter Erstellen von IAM-Rollen im IAM-Benutzerhandbuch.

Sie müssen die folgenden Anforderungen erfüllen, damit IDT Ihre benutzerdefinierte IAM-Rolle verwenden kann. Wir empfehlen dringend, dieser Rolle nur die minimal erforderlichen Richtlinienaktionen hinzuzufügen.

  • Die Konfigurationsdatei userdata.json muss aktualisiert werden, um den GreengrassV2TokenExchangeRole Parameter auf zu setzen. true

  • Die benutzerdefinierte IAM-Rolle muss mit der folgenden Mindestvertrauensrichtlinie konfiguriert werden:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "credentials.iot.amazonaws.com", "lambda.amazonaws.com", "sagemaker.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] }
  • Die benutzerdefinierte IAM-Rolle muss mit der folgenden Mindestberechtigungsrichtlinie konfiguriert werden:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:DescribeCertificate", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:ListThingPrincipals", "iot:GetThingShadow", "iot:UpdateThingShadow", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource":"*" } ] }
  • Der Name der benutzerdefinierten IAM-Rolle muss mit der IAM-Rollenressource übereinstimmen, die Sie in den IAM-Berechtigungen für den Testbenutzer angeben. Standardmäßig ermöglicht die Testbenutzerrichtlinie den Zugriff auf IAM-Rollen, deren Rollennamen das idt- Präfix enthalten. Wenn Ihr IAM-Rollenname dieses Präfix nicht verwendet, fügen Sie die arn:aws:iam::*:role/custom-iam-role-name Ressource der roleAliasResources Anweisung und der passRoleForResources Anweisung in Ihrer Testbenutzerrichtlinie hinzu, wie in den folgenden Beispielen gezeigt:

    Beispiel passRoleForResources-Anweisung
    { "Sid":"passRoleForResources", "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::*:role/custom-iam-role-name", "Condition":{ "StringEquals":{ "iam:PassedToService":[ "iot.amazonaws.com", "lambda.amazonaws.com", "greengrass.amazonaws.com" ] } } }
    Beispiel roleAliasResources-Anweisung
    { "Sid":"roleAliasResources", "Effect":"Allow", "Action":[ "iot:CreateRoleAlias", "iot:DescribeRoleAlias", "iot:DeleteRoleAlias", "iot:TagResource", "iam:GetRole" ], "Resource":[ "arn:aws:iot:*:*:rolealias/idt-*", "arn:aws:iam::*:role/custom-iam-role-name" ] }

Konfigurieren Ihres Geräts zum Testen optionaler Funktionen

In diesem Abschnitt werden die Geräteanforderungen für die Ausführung von IDT-Tests für optionale Docker- und ML-Funktionen (Machine Learning) beschrieben. Die ML-Funktionen werden nur in IDT v4.9.3 unterstützt. Sie müssen sicherstellen, dass Ihr Gerät diese Anforderungen nur erfüllt, wenn Sie diese Funktionen testen möchten. Fahren Sie andernfalls mit dem Schritt Konfigurieren Sie die IDT-Einstellungen, um die AWS IoT Greengrass Qualification Suite auszuführen fort.

Anforderungen an die Docker-Qualifikation

IDT für AWS IoT Greengrass V2 bietet Docker-Qualifizierungstests, um zu überprüfen, ob Ihre Geräte die von Ihnen AWS bereitgestellte Docker-Anwendungsmanager-Komponente zum Herunterladen von Docker-Container-Images verwenden können, die Sie mit benutzerdefinierten Docker-Container-Komponenten ausführen können. Informationen zum Erstellen benutzerdefinierter Docker-Komponenten finden Sie unter. Führen Sie einen Docker-Container aus

Um Docker-Qualifizierungstests ausführen zu können, müssen Ihre getesteten Geräte die folgenden Anforderungen erfüllen, um die Docker Application Manager-Komponente bereitstellen zu können.

  • Docker Engine 1.9.1 oder höher ist auf dem Greengrass-Core-Gerät installiert. Version 20.10 ist die neueste Version, für die verifiziert wurde, dass sie mit der Core-Software funktioniert. AWS IoT Greengrass Sie müssen Docker direkt auf dem Kerngerät installieren, bevor Sie Komponenten bereitstellen, auf denen Docker-Container ausgeführt werden.

  • Der Docker-Daemon wurde auf dem Kerngerät gestartet und ausgeführt, bevor Sie diese Komponente bereitstellen.

  • Der Systembenutzer, der eine Docker-Container-Komponente ausführt, muss über Root- oder Administratorrechte verfügen, oder Sie müssen Docker so konfigurieren, dass es als Benutzer ohne Root- oder Administratorrechte ausgeführt wird.

    • Auf Linux-Geräten können Sie der Gruppe einen Benutzer hinzufügen, um Befehle ohne Befehle docker aufzurufen. docker sudo

    • Auf Windows-Geräten können Sie der docker-users Gruppe einen Benutzer hinzufügen, um docker Befehle ohne Administratorrechte aufzurufen.

    Linux or Unix

    Führen Sie den folgenden Befehl ausggc_user, um der docker Gruppe einen Nicht-Root-Benutzer, den Sie zum Ausführen von Docker-Container-Komponenten verwenden, hinzuzufügen.

    sudo usermod -aG docker ggc_user

    Weitere Informationen finden Sie unter Docker als Nicht-Root-Benutzer verwalten.

    Windows Command Prompt (CMD)

    Um der docker-users Gruppe den Benutzerggc_user, den Sie zum Ausführen von Docker-Container-Komponenten verwenden, hinzuzufügen, führen Sie den folgenden Befehl als Administrator aus.

    net localgroup docker-users ggc_user /add
    Windows PowerShell

    Um der docker-users Gruppe den Benutzerggc_user, den Sie zum Ausführen von Docker-Container-Komponenten verwenden, hinzuzufügen, führen Sie den folgenden Befehl als Administrator aus.

    Add-LocalGroupMember -Group docker-users -Member ggc_user

Anforderungen an die ML-Qualifikation

Anmerkung

Die Funktion für maschinelles Lernen wird nur in IDT v4.9.3 unterstützt.

IDT for AWS IoT Greengrass V2 bietet ML-Qualifizierungstests, um zu überprüfen, ob Ihre Geräte die AWS bereitgestellten Komponenten für maschinelles Lernen verwenden können, um ML-Inferenzen lokal mithilfe der Deep Learning Runtime- oder Lite ML-Frameworks durchzuführen. TensorFlow Weitere Informationen zur Ausführung von ML-Inferenz auf Greengrass-Geräten finden Sie unter. Durchführen von Machine Learning-Inferenzen

Um ML-Qualifizierungstests durchführen zu können, müssen Ihre getesteten Geräte die folgenden Anforderungen erfüllen, um die Komponenten für maschinelles Lernen bereitstellen zu können.

  • Auf Greengrass-Core-Geräten, auf denen Amazon Linux 2 oder Ubuntu 18.04 ausgeführt wird, ist die GNU C Library (Glibc) Version 2.27 oder höher auf dem Gerät installiert.

  • Auf ARMv7L-Geräten wie Raspberry Pi sind Abhängigkeiten für OpenCV-Python auf dem Gerät installiert. Führen Sie den folgenden Befehl aus, um die Abhängigkeiten zu installieren.

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • Raspberry Pi-Geräte, auf denen Raspberry Pi OS Bullseye ausgeführt wird, müssen die folgenden Anforderungen erfüllen:

    • NumPy 1.22.4 oder höher auf dem Gerät installiert. Raspberry Pi OS Bullseye enthält eine frühere Version von NumPy, sodass Sie den folgenden Befehl ausführen können, um das Gerät zu aktualisieren NumPy .

      pip3 install --upgrade numpy
    • Der ältere Kamerastack ist auf dem Gerät aktiviert. Raspberry Pi OS Bullseye enthält einen neuen Kamerastack, der standardmäßig aktiviert und nicht kompatibel ist. Sie müssen also den älteren Kamerastack aktivieren.

      Um den Legacy-Kamerastack zu aktivieren
      1. Führen Sie den folgenden Befehl aus, um das Raspberry Pi-Konfigurationstool zu öffnen.

        sudo raspi-config
      2. Wählen Sie Schnittstellenoptionen.

      3. Wählen Sie Legacy-Kamera aus, um den Legacy-Kamerastack zu aktivieren.

      4. Starten Sie den Raspberry Pi neu.

HSM-Qualifikationsanforderungen

AWS IoT Greengrass stellt die PKCS #11 -Anbieterkomponente zur Integration in das PKCS Hardware Security Module (HSM) auf dem Gerät bereit. Das HSM-Setup hängt von Ihrem Gerät und dem HSM-Modul ab, das Sie ausgewählt haben. Solange die erwartete HSM-Konfiguration, wie in den IDT-Konfigurationseinstellungen dokumentiert, bereitgestellt wird, verfügt IDT über die Informationen, die für die Durchführung dieses optionalen Feature-Qualifizierungstests erforderlich sind.