View a markdown version of this page

Integration von Hardware-Sicherheit - AWS IoT Greengrass

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS wird der Support für eingestellt. AWS IoT Greengrass Version 1 Nach dem 7. Oktober 2026 können Sie nicht mehr auf die Ressourcen zugreifen. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter Migrieren von AWS IoT Greengrass Version 1.

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.

Integration von Hardware-Sicherheit

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

AWS IoT Greengrass unterstützt die Verwendung von Hardware-Sicherheitsmodulen (HSM) über die PKCS #11 -Schnittstelle für die sichere Speicherung und Übertragung von privaten Schlüsseln. Dadurch wird verhindert, dass Schlüssel in der Software freigelegt oder dupliziert werden. Private Schlüssel können sicher auf Hardwaremodulen wie HSMs, Trusted Platform Modules (TPM) oder anderen kryptographischen Elementen gespeichert werden.

Suchen Sie im Gerätekatalog nach Geräten, die für diese Funktion geeignet sind.AWS Partner

Das folgende Diagramm zeigt die Hardware-Sicherheitsarchitektur für einen AWS IoT Greengrass Kern.

Greengrass Core mit hardwaresichem Element, das Nachrichten an AWS IoT Core und lokale Geräte weiterleitet.

AWS IoT Greengrass Verwendet bei einer Standardinstallation zwei private Schlüssel. Ein Schlüssel wird von der AWS IoT Client-Komponente (IoT-Client) während des Transport Layer Security (TLS) -Handshakes verwendet, wenn ein Greengrass-Core eine Verbindung herstellt. AWS IoT Core(Dieser Schlüssel wird auch als privater Kernschlüssel bezeichnet.) Der andere Schlüssel wird vom lokalen MQTT-Server verwendet, wodurch Greengrass-Geräte mit dem Greengrass Core kommunizieren können. Wenn Sie die Hardware-Sicherheit für beide Komponenten verwenden möchten, können Sie einen gemeinsamen privaten Schlüssel oder separate private Schlüssel verwenden. Weitere Informationen finden Sie unter Bereitstellungspraktiken für AWS IoT Greengrass Hardware-Sicherheit.

Anmerkung

Bei einer Standardinstallation verwendet der lokale Secrets-Manager auch den IoT-Client-Schlüssel für seinen Verschlüsselungsprozess, aber Sie können auch Ihren eigenen privaten Schlüssel verwenden. Es muss ein RSA-Schlüssel mit einer minimalen Länge von 2048 Bit sein. Weitere Informationen finden Sie unter Angeben des privaten Schlüssels für die Verschlüsselung von Secrets.

Voraussetzungen

Bevor Sie die Hardwaresicherheit für einen Greengrass Core konfigurieren können, müssen Sie Folgendes beachten:

  • Ein Hardwaresicherheitsmodul (HSM), das Ihre private Schlüsselkonfiguration für den IoT-Client, den lokalen MQTT-Server und lokale Secrets-Manager-Komponenten unterstützt. Die Konfiguration kann einen, zwei oder drei hardwarebasierte private Schlüssel beinhalten, je nachdem, ob Sie die Komponenten für die Freigabe von Schlüsseln konfigurieren. Weitere Informationen zur Unterstützung von privaten Schlüsseln finden Sie unter AWS IoT Greengrass zentrale Sicherheitsprinzipale.

    • Für RSA-Schlüssel: Eine RSA-2048 Schlüsselgröße (oder größer) und das PKCS #1 v1.5-Signaturschema.

    • Für EC-Schlüssel: Eine NIST- oder P-256 NIST-Kurve. P-384

    Anmerkung

    Suchen Sie im AWS Partner Gerätekatalog nach Geräten, die für diese Funktion qualifiziert sind.

  • Eine PKCS#11-Anbieterbibliothek, die zur Laufzeit (mit libdl) geladen werden kann und PKCS#11-Funktionen bereitstellt.

  • Das Hardwaremodul muss nach Slot-Label auflösbar sein, wie in der PKCS#11-Spezifikation definiert.

  • Der private Schlüssel muss mit Hilfe der vom Hersteller bereitgestellten Provisionierungswerkzeuge generiert und auf das HSM geladen werden.

  • Der private Schlüssel muss durch ein Objektlabel auflösbar sein.

  • Das Core-Gerätezertifikat. Dies ist ein IoT-Client-Zertifikat, das dem privaten Schlüssel entspricht.

  • Wenn Sie den Greengrass OTA Update Agent verwenden, muss die OpenSSL libp11 PKCS #11 -Wrapper-Bibliothek installiert sein. Weitere Informationen finden Sie unter Konfigurieren der Unterstützung für Over-the-Air-Updates.

Stellen Sie außerdem sicher, dass die folgenden Bedingungen erfüllt sind:

  • Die IoT-Client-Zertifikate, die dem privaten Schlüssel zugeordnet sind, sind registriert AWS IoT und aktiviert. Sie können dies in der AWS IoT Konsole unter Verwalten überprüfen, Alle Geräte erweitern, Dinge auswählen und dann die Registerkarte Zertifikate für den Kern auswählen.

  • Die AWS IoT Greengrass Core-Software v1.7 oder höher ist auf dem Core-Gerät installiert, wie in Modul 2 des Tutorials Erste Schritte beschrieben. Version 1.9 oder höher ist erforderlich, um einen EC-Schlüssel für den MQTT-Server zu verwenden.

  • Die Zertifikate sind dem Greengrass Core angefügt. Sie können dies auf der Seite „Verwalten“ für den Kern in der AWS IoT Konsole überprüfen.

Anmerkung

Unterstützt derzeit AWS IoT Greengrass nicht das Laden des CA-Zertifikats oder des IoT-Client-Zertifikats direkt aus dem HSM. Die Zertifikate müssen als Klartextdateien an einem Ort im Dateisystem geladen werden, der von Greengrass gelesen werden kann.

Hardwaresicherheitskonfiguration für ein AWS IoT Greengrass core

Die Hardware-Sicherheit wird in der Greengrass-Konfigurationsdatei konfiguriert. Dies ist die Datei config.json, die sich im Verzeichnis /greengrass-root/config befindet.

Anmerkung

Um den Prozess der Einrichtung einer HSM-Konfiguration mit einer reinen Software-Implementierung zu durchlaufen, siehe Modul 7: Simulation der Hardware-Sicherheitsintegration.

Wichtig

Die simulierte Konfiguration im Beispiel bietet keine Sicherheitsvorteile. Das Beispiel soll Ihnen ermöglichen, sich über die PKCS#11-Spezifikation zu informieren und erste Tests Ihrer Software durchzuführen, wenn Sie planen, in Zukunft ein hardwarebasiertes HSM einzusetzen.

Um die Hardwaresicherheit in zu konfigurieren AWS IoT Greengrass, bearbeiten Sie das crypto Objekt inconfig.json.

Bei der Verwendung von Hardware-Sicherheit wird das Objekt crypto eingesetzt, um Pfade zu Zertifikaten, privaten Schlüsseln und Assets für die PKCS#11-Anbieterbibliothek im Core anzugeben, wie im folgenden Beispiel gezeigt.

"crypto": { "PKCS11" : { "OpenSSLEngine" : "/path-to-p11-openssl-engine", "P11Provider" : "/path-to-pkcs11-provider-so", "slotLabel" : "crypto-token-name", "slotUserPin" : "crypto-token-user-pin" }, "principals" : { "IoTCertificate" : { "privateKeyPath" : "pkcs11:object=core-private-key-label;type=private", "certificatePath" : "file:///path-to-core-device-certificate" }, "MQTTServerCertificate" : { "privateKeyPath" : "pkcs11:object=server-private-key-label;type=private" }, "SecretsManager" : { "privateKeyPath": "pkcs11:object=core-private-key-label;type=private" } }, "caPath" : "file:///path-to-root-ca"

Das crypto-Objekt enthält die folgenden Eigenschaften:

Feld Description Hinweise
caPath

Der absolute Pfad zur AWS IoT Stammzertifizierungsstelle.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur OpenSSL-Engine .so-Datei, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren der Unterstützung für Over-the-Air-Updates.

P11Provider

Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den PKCS#11 Label-Spezifikationen entsprechen.

slotUserPin

Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns gegenüber dem Modul verwendet wird.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate Das Zertifikat und der private Schlüssel, die Core verwendet, um Anfragen AWS IoT zu stellen.
IoTCertificate  .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

IoTCertificate  .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT-Server oder Gateway zu fungieren.

MQTTServerCertificate  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT-Servers.

Verwenden Sie diesen Wert, um einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel anhand Ihrer AWS IoT Greengrass Rotationseinstellungen rotiert. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager Der private Schlüssel, der den für die Verschlüsselung verwendeten Datenschlüssel schützt. Weitere Informationen finden Sie unter Verteilen Sie Geheimnisse auf AWS IoT Greengrass core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Nur ein RSA-Schlüssel wird unterstützt.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den PKCS#1 v1.5-Padding-Mechanismus verwenden.

Feld Description Hinweise
caPath

Der absolute Pfad zur AWS IoT Stammzertifizierungsstelle.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur OpenSSL-Engine .so-Datei, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren der Unterstützung für Over-the-Air-Updates.

P11Provider

Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den PKCS#11 Label-Spezifikationen entsprechen.

slotUserPin

Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns gegenüber dem Modul verwendet wird.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate Das Zertifikat und der private Schlüssel, die Core verwendet, um Anfragen AWS IoT zu stellen.
IoTCertificate  .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

IoTCertificate  .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT-Server oder Gateway zu fungieren.

MQTTServerCertificate  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT-Servers.

Verwenden Sie diesen Wert, um einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel anhand Ihrer AWS IoT Greengrass Rotationseinstellungen rotiert. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager Der private Schlüssel, der den für die Verschlüsselung verwendeten Datenschlüssel schützt. Weitere Informationen finden Sie unter Verteilen Sie Geheimnisse auf AWS IoT Greengrass core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Nur ein RSA-Schlüssel wird unterstützt.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den PKCS#1 v1.5-Padding-Mechanismus verwenden.

Feld Description Hinweise
caPath

Der absolute Pfad zur AWS IoT Stammzertifizierungsstelle.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur OpenSSL-Engine .so-Datei, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren der Unterstützung für Over-the-Air-Updates.

P11Provider

Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den PKCS#11 Label-Spezifikationen entsprechen.

slotUserPin

Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns gegenüber dem Modul verwendet wird.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate Das Zertifikat und der private Schlüssel, die Core verwendet, um Anfragen AWS IoT zu stellen.
IoTCertificate  .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

IoTCertificate  .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT-Server oder Gateway zu fungieren.

MQTTServerCertificate  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT-Servers.

Verwenden Sie diesen Wert, um einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel anhand Ihrer AWS IoT Greengrass Rotationseinstellungen rotiert. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager Der private Schlüssel, der den für die Verschlüsselung verwendeten Datenschlüssel schützt. Weitere Informationen finden Sie unter Verteilen Sie Geheimnisse auf AWS IoT Greengrass core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Nur ein RSA-Schlüssel wird unterstützt.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den PKCS#1 v1.5-Padding-Mechanismus verwenden.

Bereitstellungspraktiken für AWS IoT Greengrass Hardware-Sicherheit

Im Folgenden werden die sicherheits- und leistungsbezogenen Bereitstellungspraktiken beschrieben.

Sicherheit

Anmerkung

Die Praxis des Rotierens von Schlüsseln gilt nicht, wenn private Schlüssel auf einem HSM erzeugt werden.

Leistung

Das folgende Diagramm zeigt die IoT-Client-Komponente und den lokalen MQTT-Server auf dem AWS IoT Greengrass Core. Wenn Sie eine HSM-Konfiguration für beide Komponenten verwenden möchten, können Sie den gleichen privaten Schlüssel oder separate private Schlüssel verwenden. Wenn Sie separate Schlüssel verwenden, müssen diese im gleichen Slot gespeichert sein.

Anmerkung

AWS IoT Greengrass schränkt die Anzahl der Schlüssel, die Sie auf dem HSM speichern, nicht ein, sodass Sie private Schlüssel für die Komponenten IoT-Client, MQTT-Server und Secrets Manager speichern können. Einige HSM-Anbieter können jedoch die Anzahl der Schlüssel, die Sie in einem Slot speichern können, begrenzen.

Architekturdiagramm, das den IoT-Client und den MQTT-Server zeigt, die Nachrichten an AWS IoT Core und lokale Geräte senden.

Im Allgemeinen wird der IoT-Clientschlüssel nicht sehr häufig verwendet, da die AWS IoT Greengrass Core-Software langlebige Verbindungen zur Cloud unterhält. Der MQTT-Server-Schlüssel wird jedoch jedes Mal verwendet, wenn sich ein Greengrass-Gerät mit dem Kern verbindet. Diese Interaktionen wirken sich direkt auf die Leistung aus.

Wenn der MQTT-Server-Schlüssel auf dem HSM gespeichert ist, hängt die Geschwindigkeit, mit der sich Geräte verbinden können, von der Anzahl der RSA-Signaturvorgänge pro Sekunde ab, die das HSM ausführen kann. Wenn das HSM beispielsweise 300 Millisekunden benötigt, um eine RSASSA-PKCS1-v1.5 Signatur für einen RSA-2048 privaten Schlüssel durchzuführen, können nur drei Geräte pro Sekunde eine Verbindung zum Greengrass-Core herstellen. Nach dem Herstellen der Verbindungen wird das HSM nicht mehr verwendet, und es gelten die standardmäßigen Kontingente für AWS IoT Greengrass.

Um Leistungsengpässe zu vermeiden, können Sie den privaten Schlüssel für den MQTT-Server auf dem Dateisystem statt auf dem HSM speichern. Bei dieser Konfiguration verhält sich der MQTT-Server so, als ob die Hardware-Sicherheit nicht aktiviert wäre.

AWS IoT Greengrass unterstützt mehrere Schlüsselspeicherkonfigurationen für die IoT-Client- und MQTT-Serverkomponenten, sodass Sie Ihre Sicherheits- und Leistungsanforderungen optimieren können. Die folgende Tabelle enthält Beispielkonfigurationen.

Konfiguration IoT-Schlüssel MQTT-Schlüssel Leistung
Gemeinsamer HSM-Schlüssel HSM: Schlüssel A HSM: Schlüssel A Begrenzt durch das HSM oder die CPU
HSM Separate Schlüssel HSM: Schlüssel A HSM: Schlüssel B Begrenzt durch das HSM oder die CPU
HSM nur für IoT HSM: Schlüssel A Dateisystem: Schlüssel B Begrenzt durch die CPU
Veraltet Dateisystem: Schlüssel A Dateisystem: Schlüssel B Begrenzt durch die CPU

Um den Greengrass-Kern so zu konfigurieren, dass er dateisystembasierte Schlüssel für den MQTT-Server verwendet, lassen Sie den principals.MQTTServerCertificate Abschnitt von weg config.json (oder geben Sie einen dateibasierten Pfad zum Schlüssel an, wenn Sie nicht den von generierten Standardschlüssel verwenden). AWS IoT Greengrass Das resultierende Objekt crypto sieht folgendermaßen aus:

"crypto": { "PKCS11": { "OpenSSLEngine": "...", "P11Provider": "...", "slotLabel": "...", "slotUserPin": "..." }, "principals": { "IoTCertificate": { "privateKeyPath": "...", "certificatePath": "..." }, "SecretsManager": { "privateKeyPath": "..." } }, "caPath" : "..." }

Unterstützte Verschlüsselungs-Suiten für die Hardware-Sicherheitsintegration

AWS IoT Greengrass unterstützt eine Reihe von Cipher Suites, wenn der Kern für Hardware-Sicherheit konfiguriert ist. Dies ist eine Teilmenge der Verschlüsselungs-Suiten, die unterstützt werden, wenn der Kern für die Verwendung dateibasierter Sicherheit konfiguriert ist. Weitere Informationen finden Sie unter Support für TLS-Verschlüsselungs-Suites.

Anmerkung

Wenn Sie sich von Greengrass-Geräten über das lokale Netzwerk mit dem Greengrass-Core verbinden, stellen Sie sicher, dass Sie eine der unterstützten Verschlüsselungs-Suiten verwenden, um die TLS-Verbindung herzustellen.

Konfigurieren der Unterstützung für Over-the-Air-Updates

Um Over-the-Air-Updates (OTA) der AWS IoT Greengrass Core-Software bei Verwendung von Hardwaresicherheit zu aktivieren, müssen Sie die OpenSC libp11 PKCS #11 -Wrapper-Bibliothek installieren und die Greengrass-Konfigurationsdatei bearbeiten. Weitere Informationen zu OTA-Updates finden Sie unter OTA-Updates von AWS IoT Greengrass Kernsoftware.

  1. Stoppen Sie den Greengrass-Daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
    Anmerkung

    greengrass-rootsteht für den Pfad, in dem die Core-Software auf Ihrem Gerät installiert ist. AWS IoT Greengrass Normalerweise ist dies das Verzeichnis /greengrass.

  2. Installieren der OpenSSL-Engine. OpenSSL 1.0 oder 1.1 werden unterstützt.

    sudo apt-get install libengine-pkcs11-openssl
  3. Suchen Sie den Pfad zur OpenSSL-Engine (libpkcs11.so) auf Ihrem System:

    1. Holen Sie sich die Liste der installierten Pakete für die Bibliothek.

      sudo dpkg -L libengine-pkcs11-openssl

      Die Datei libpkcs11.so befindet sich im Verzeichnis engines.

    2. Kopieren Sie den vollständigen Pfad in die Datei (z. B. /usr/lib/ssl/engines/libpkcs11.so).

  4. Öffnen Sie die Greengrass-Konfigurationsdatei. Dies ist die Datei config.json im Verzeichnis /greengrass-root/config.

  5. Geben Sie für die Eigenschaft OpenSSLEngine den Pfad zur Datei libpkcs11.so ein.

    { "crypto": { "caPath" : "file:///path-to-root-ca", "PKCS11" : { "OpenSSLEngine" : "/path-to-p11-openssl-engine", "P11Provider" : "/path-to-pkcs11-provider-so", "slotLabel" : "crypto-token-name", "slotUserPin" : "crypto-token-user-pin" }, ... } ... }
    Anmerkung

    Wenn die Eigenschaft OpenSSLEngine im Objekt PKCS11 nicht vorhanden ist, dann fügen Sie sie hinzu.

  6. Halten Sie den Greengrass-Daemon an.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

Abwärtskompatibilität mit früheren Versionen von AWS IoT Greengrass Kernsoftware

Die AWS IoT Greengrass Core-Software mit Unterstützung für Hardwaresicherheit ist vollständig abwärtskompatibel mit config.json Dateien, die für Version 1.6 und frühere Versionen generiert wurden. Wenn das crypto Objekt nicht in der config.json Konfigurationsdatei vorhanden ist, werden die dateibasierten EigenschaftencoreThing.certPath, coreThing.keyPath und AWS IoT Greengrass verwendet. coreThing.caPath Diese Abwärtskompatibilität gilt für Greengrass OTA-Updates, die eine dateibasierte Konfiguration, die in config.json angegeben ist, nicht überschreiben.

Hardware ohne PKCS#11-Unterstützung

Die PKCS#11-Bibliothek wird typischerweise vom Hardwarehersteller bereitgestellt oder ist Open Source. Bei standardkonformer Hardware (z. B. TPM1.2) könnte es beispielsweise möglich sein, vorhandene Open-Source-Software zu verwenden. Wenn Ihre Hardware jedoch nicht über eine entsprechende PKCS #11 -Bibliotheksimplementierung verfügt oder wenn Sie einen benutzerdefinierten PKCS #11 -Anbieter schreiben möchten, sollten Sie sich mit Fragen zur Integration an Ihren AWS Enterprise Support-Mitarbeiter wenden.

Weitere Informationen finden Sie auch unter