Verbinden von Client-Geräten mit -Core-Geräten - 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.

Verbinden von Client-Geräten mit -Core-Geräten

Sie können die Cloud-Erkennung konfigurieren, um Client-Geräte mit -Core-Geräten zu verbinden. Wenn Sie die Cloud-Erkennung konfigurieren, können Client-Geräte eine Verbindung mit dem AWS IoT Greengrass Cloud-Service herstellen, um Informationen über -Core-Geräte abzurufen, mit denen sie eine Verbindung herstellen können. Anschließend können die Client-Geräte versuchen, eine Verbindung zu jedem Core-Gerät herzustellen, bis sie erfolgreich eine Verbindung herstellen.

Um die Cloud-Erkennung zu verwenden, müssen Sie Folgendes tun:

  • Ordnen Sie Client-Geräte den -Core-Geräten zu, mit denen sie eine Verbindung herstellen können.

  • Geben Sie die MQTT-Broker-Endpunkte an, an denen Client-Geräte eine Verbindung zu jedem Core-Gerät herstellen können.

  • Stellen Sie Komponenten auf dem Core-Gerät bereit, die Unterstützung für Client-Geräte ermöglichen.

    Sie können auch optionale Komponenten bereitstellen, um Folgendes zu tun:

    • Weiterleiten von Nachrichten zwischen Client-Geräten, Greengrass-Komponenten und dem AWS IoT Core Cloud-Service.

    • Verwalten Sie die MQTT-Broker-Endpunkte des Core-Geräts automatisch für Sie.

    • Verwalten Sie lokale Client-Geräteschatten und synchronisieren Sie Schatten mit dem AWS IoT Core Cloud-Service.

Sie müssen auch die AWS IoT Richtlinie des Core-Geräts überprüfen und aktualisieren, um sicherzustellen, dass es über die erforderlichen Berechtigungen verfügt, um Client-Geräte zu verbinden. Weitere Informationen finden Sie unter Voraussetzungen.

Nachdem Sie die Cloud-Erkennung konfiguriert haben, können Sie die Kommunikation zwischen einem Client-Gerät und einem Core-Gerät testen. Weitere Informationen finden Sie unter Testen der Kommunikation von Client-Geräten.

Voraussetzungen

Um Client-Geräte mit einem Core-Gerät zu verbinden, benötigen Sie Folgendes:

  • Das Core-Gerät muss Greengrass-Kern v2.2.0 oder höher ausführen.

  • Die Greengrass-Servicerolle, die Ihrem AWS IoT Greengrass in der AWS Region zugeordnet ist, AWS-Konto in der das Core-Gerät ausgeführt wird. Weitere Informationen finden Sie unter Konfigurieren der Greengrass-Servicerolle.

  • Die AWS IoT Richtlinie des Core-Geräts muss die folgenden Berechtigungen zulassen:

    • greengrass:PutCertificateAuthorities

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:VerifyClientDeviceIoTCertificateAssociation

    • greengrass:GetConnectivityInfo

    • greengrass:UpdateConnectivityInfo – (Optional) Diese Berechtigung ist erforderlich, um die IP-Detektorkomponente zu verwenden, die die Netzwerkkonnektivitätsinformationen des Core-Geräts an den AWS IoT Greengrass Cloud-Service meldet.

    • iot:GetThingShadow, und iot:DeleteThingShadow – (Optional) Diese Berechtigungen sind erforderlichiot:UpdateThingShadow, um die Shadow Manager-Komponente zum Synchronisieren von Client-Geräteschatten mit zu verwendenAWS IoT Core. Für diese Funktion sind Greengrass-Kern v2.6.0 oder höher, Shadow Manager v2.2.0 oder höher und MQTT Bridge v2.2.0 oder höher erforderlich.

    Weitere Informationen finden Sie unter Konfigurieren der AWS IoT Objektrichtlinie.

    Anmerkung

    Wenn Sie bei der Installation der Core-Software die AWS IoT Standardrichtlinie verwendet haben, verfügt das Core-Gerät über eine -AWS IoTRichtlinie, die den Zugriff auf alle AWS IoT Greengrass Aktionen (greengrass:*) ermöglicht. AWS IoT Greengrass

  • AWS IoT -Objekte, die Sie als Client-Geräte verbinden können. Weitere Informationen finden Sie unter Erstellen von -AWS IoTRessourcen im AWS IoT Core -Entwicklerhandbuch.

  • Das Client-Gerät muss eine Verbindung mit einer Client-ID herstellen. Eine Client-ID ist ein Objektname. Es wird keine andere Client-ID akzeptiert.

  • Die AWS IoT Richtlinie jedes Client-Geräts muss die -greengrass:DiscoverBerechtigung zulassen. Weitere Informationen finden Sie unter Minimale AWS IoT Richtlinie für Client-Geräte.

Konfigurieren der Greengrass-Servicerolle

Die Greengrass-Servicerolle ist eine AWS Identity and Access Management (IAM)-Servicerolle, die autorisiertAWS IoT Greengrass, in Ihrem Namen auf Ressourcen von -AWSServices zuzugreifen. Diese Rolle ermöglicht es dem , die Identität von Client-Geräten AWS IoT Greengrass zu überprüfen und die Konnektivitätsinformationen des Core-Geräts zu verwalten.

Wenn Sie die Greengrass-Servicerolle noch nicht in dieser Region eingerichtet haben, müssen Sie eine Greengrass-Servicerolle mit AWS IoT Greengrass für Ihr AWS-Konto in dieser Region verknüpfen.

Wenn Sie die Seite Configure core device discovery in der AWS IoT Greengrass Konsole verwenden, AWS IoT Greengrass richtet die Greengrass-Servicerolle für Sie ein. Andernfalls können Sie sie manuell über die AWS IoTKonsole oder AWS IoT Greengrass API einrichten.

In diesem Abschnitt überprüfen Sie, ob die Greengrass-Servicerolle eingerichtet ist. Wenn es nicht eingerichtet ist, erstellen Sie eine neue Greengrass-Servicerolle, die Sie AWS IoT Greengrass Ihrem AWS-Konto in dieser Region zuordnen können.

  1. Überprüfen Sie, ob die Greengrass-Servicerolle AWS IoT Greengrass für Ihr AWS-Konto in dieser Region zugeordnet ist. Gehen Sie wie folgt vor:

    1. Navigieren Sie zur AWS IoT-Konsole.

    2. Wählen Sie im Navigationsbereich Settings (Einstellungen).

    3. Suchen Sie im Abschnitt Greengrass-Servicerolle nach Aktuelle Servicerolle, um zu sehen, ob eine Greengrass-Servicerolle zugeordnet ist.

      Wenn Ihnen eine Greengrass-Servicerolle zugeordnet ist, erfüllen Sie diese Anforderung für die Verwendung der IP-Detektorkomponente. Fahren Sie mit Konfigurieren der AWS IoT Objektrichtlinie fort.

  2. Wenn die Greengrass-Servicerolle nicht mit AWS IoT Greengrass für Ihr AWS-Konto in dieser Region verknüpft ist, erstellen Sie eine Greengrass-Servicerolle und verknüpfen Sie sie. Gehen Sie wie folgt vor:

    1. Navigieren Sie zur IAM-Konsole.

    2. Wählen Sie Roles.

    3. Wählen Sie Rolle erstellen aus.

    4. Gehen Sie auf der Seite Rolle erstellen wie folgt vor:

      1. Wählen Sie unter Vertrauenswürdiger Entitätstyp ausAWS-Service.

      2. Wählen Sie unter Anwendungsfall , Anwendungsfälle für andere die AWS-ServicesOption Greengrass und dann Greengrass aus. Diese Option gibt an, dass AWS IoT Greengrass als vertrauenswürdige Entität hinzugefügt werden soll, die diese Rolle übernehmen kann.

      3. Wählen Sie Weiter aus.

      4. Wählen Sie unter Berechtigungsrichtlinien die aus, AWSGreengrassResourceAccessRolePolicy die an die Rolle angehängt werden soll.

      5. Wählen Sie Weiter aus.

      6. Geben Sie unter Rollenname einen Namen für die Rolle ein, z. B. Greengrass_ServiceRole.

      7. Wählen Sie Rolle erstellen aus.

    5. Navigieren Sie zur AWS IoT-Konsole.

    6. Wählen Sie im Navigationsbereich Settings (Einstellungen).

    7. Wählen Sie im Abschnitt Greengrass-Servicerolle die Option Rolle anfügen aus.

    8. Wählen Sie im Modal Greengrass-Servicerolle aktualisieren die von Ihnen erstellte IAM-Rolle aus und wählen Sie dann Rolle anfügen aus.

  1. Überprüfen Sie, ob die Greengrass-Servicerolle AWS IoT Greengrass für Ihr AWS-Konto in dieser Region zugeordnet ist.

    aws greengrassv2 get-service-role-for-account

    Wenn die Greengrass-Servicerolle zugeordnet ist, gibt die Operation eine Antwort zurück, die Informationen über die Rolle enthält.

    Wenn Ihnen eine Greengrass-Servicerolle zugeordnet ist, erfüllen Sie diese Anforderung für die Verwendung der IP-Detektorkomponente. Fahren Sie mit Konfigurieren der AWS IoT Objektrichtlinie fort.

  2. Wenn die Greengrass-Servicerolle nicht mit AWS IoT Greengrass für Ihr AWS-Konto in dieser Region verknüpft ist, erstellen Sie eine Greengrass-Servicerolle und verknüpfen Sie sie. Gehen Sie wie folgt vor:

    1. Erstellen Sie die Rolle mit einer Vertrauensrichtlinie, die AWS IoT Greengrass die Annahme der Rolle erlaubt. In diesem Beispiel wird eine Rolle namens Greengrass_ServiceRole erstellt, aber Sie können einen anderen Namen verwenden. Wir empfehlen Ihnen, auch die aws:SourceAccount globalen Bedingungskontextschlüssel aws:SourceArn und in Ihre Vertrauensrichtlinie aufzunehmen, um das Sicherheitsproblem des verwirrten Stellvertreters zu vermeiden. Die Bedingungskontextschlüssel schränken den Zugriff so ein, dass nur die Anforderungen zugelassen werden, die aus dem angegebenen Konto und dem Greengrass-Workspace stammen. Weitere Informationen zum Confused-Deputy-Problem finden Sie Vermeidung des Problems des verwirrten Stellvertreters (dienstübergreifend).

      Linux or Unix
      aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }'
      Windows Command Prompt (CMD)
      aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Principal\\":{\\"Service\\":\\"greengrass.amazonaws.com\\"},\\"Action\\":\\"sts:AssumeRole\\",\\"Condition\\":{\\"ArnLike\\":{\\"aws:SourceArn\\":\\"arn:aws:greengrass:region:account-id:*\\"},\\"StringEquals\\":{\\"aws:SourceAccount\\":\\"account-id\\"}}}]}"
      PowerShell
      aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }'
    2. Kopieren Sie den Rollen-ARN aus den Rollenmetadaten in der Ausgabe. Sie verknüpfen die Servicerolle mithilfe des ARN mit Ihrem Konto.

    3. Fügen Sie der Rolle die AWSGreengrassResourceAccessRolePolicy-Richtlinie an.

      aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
    4. Ordnen Sie die Greengrass-Servicerolle AWS IoT Greengrass Ihrem zuAWS-Konto. Ersetzen Sie role-arn durch den ARN der Servicerolle.

      aws greengrassv2 associate-service-role-to-account --role-arn role-arn

      Die Operation gibt die folgende Antwort zurück, wenn sie erfolgreich ist.

      { "associatedAt": "timestamp" }

Konfigurieren der AWS IoT Objektrichtlinie

Core-Geräte verwenden X.509-Gerätezertifikate, um Verbindungen zu zu autorisierenAWS. Sie fügen AWS IoT Richtlinien an Gerätezertifikate an, um die Berechtigungen für ein Core-Gerät zu definieren. Weitere Informationen finden Sie unter AWS IoT-Richtlinien für Operationen auf Datenebene und Minimale AWS IoT Richtlinie zur Unterstützung von Client-Geräten.

Um Client-Geräte mit einem Core-Gerät zu verbinden, muss die AWS IoT Richtlinie des Core-Geräts die folgenden Berechtigungen zulassen:

  • greengrass:PutCertificateAuthorities

  • greengrass:VerifyClientDeviceIdentity

  • greengrass:VerifyClientDeviceIoTCertificateAssociation

  • greengrass:GetConnectivityInfo

  • greengrass:UpdateConnectivityInfo – (Optional) Diese Berechtigung ist erforderlich, um die IP-Detektorkomponente zu verwenden, die die Netzwerkkonnektivitätsinformationen des Core-Geräts an den AWS IoT Greengrass Cloud-Service meldet.

  • iot:GetThingShadow, und iot:DeleteThingShadow – (Optional) Diese Berechtigungen sind erforderlichiot:UpdateThingShadow, um die Shadow Manager-Komponente zum Synchronisieren von Client-Geräteschatten mit zu verwendenAWS IoT Core. Für diese Funktion sind Greengrass-Kern v2.6.0 oder höher, Shadow Manager v2.2.0 oder höher und MQTT Bridge v2.2.0 oder höher erforderlich.

In diesem Abschnitt überprüfen Sie die AWS IoT Richtlinien für Ihr Core-Gerät und fügen alle erforderlichen Berechtigungen hinzu, die fehlen. Wenn Sie das AWS IoT Greengrass -Core-Softwareinstallationsprogramm zur Bereitstellung von Ressourcen verwendet haben, verfügt Ihr -Core-Gerät über eine -AWS IoTRichtlinie, die den Zugriff auf alle -AWS IoT GreengrassAktionen ermöglicht (greengrass:*). In diesem Fall müssen Sie die AWS IoT Richtlinie nur aktualisieren, wenn Sie die Shadow Manager-Komponente bereitstellen möchten, um Geräteschatten mit zu synchronisierenAWS IoT Core. Andernfalls können Sie diesen Abschnitt überspringen.

  1. Wählen Sie im Navigationsmenü der AWS IoT Greengrass Konsole die Option Core-Geräte aus.

  2. Wählen Sie auf der Seite Core-Geräte das zu aktualisierende Core-Gerät aus.

  3. Wählen Sie auf der Detailseite des Core-Geräts den Link zum Objekt des Core-Geräts aus. Dieser Link öffnet die Seite mit den Objektdetails in der -AWS IoTKonsole.

  4. Wählen Sie auf der Seite mit den Objektdetails die Option Zertifikate aus.

  5. Wählen Sie auf der Registerkarte Zertifikate das aktive Zertifikat des Objekts aus.

  6. Wählen Sie auf der Seite mit den Zertifikatsdetails Richtlinien aus.

  7. Wählen Sie auf der Registerkarte Richtlinien die zu überprüfende und zu aktualisierende AWS IoT Richtlinie aus. Sie können die erforderlichen Berechtigungen zu jeder Richtlinie hinzufügen, die dem aktiven Zertifikat des Core-Geräts angefügt ist.

    Anmerkung

    Wenn Sie das AWS IoT Greengrass-Core-Softwareinstallationsprogramm zur Bereitstellung von Ressourcen verwendet haben, haben Sie zwei AWS IoT Richtlinien. Wir empfehlen Ihnen, die Richtlinie mit dem Namen auszuwählenGreengrassV2IoTThingPolicy, falls vorhanden. Core-Geräte, die Sie mit dem Schnellinstallationsprogramm erstellen, verwenden diesen Richtliniennamen standardmäßig. Wenn Sie dieser Richtlinie Berechtigungen hinzufügen, erteilen Sie diese Berechtigungen auch anderen -Core-Geräten, die diese Richtlinie verwenden.

  8. Wählen Sie in der Richtlinienübersicht die Option Aktive Version bearbeiten aus.

  9. Überprüfen Sie die Richtlinie auf die erforderlichen Berechtigungen und fügen Sie alle erforderlichen Berechtigungen hinzu, die fehlen.

    • greengrass:PutCertificateAuthorities

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:VerifyClientDeviceIoTCertificateAssociation

    • greengrass:GetConnectivityInfo

    • greengrass:UpdateConnectivityInfo – (Optional) Diese Berechtigung ist erforderlich, um die IP-Detektorkomponente zu verwenden, die die Netzwerkkonnektivitätsinformationen des Core-Geräts an den AWS IoT Greengrass Cloud-Service meldet.

    • iot:GetThingShadow, und iot:DeleteThingShadow – (Optional) Diese Berechtigungen sind erforderlichiot:UpdateThingShadow, um die Shadow Manager-Komponente zum Synchronisieren von Client-Geräteschatten mit zu verwendenAWS IoT Core. Für diese Funktion sind Greengrass-Kern v2.6.0 oder höher, Shadow Manager v2.2.0 oder höher und MQTT Bridge v2.2.0 oder höher erforderlich.

  10. (Optional) Damit das Core-Gerät Schatten mit synchronisieren kannAWS IoT Core, fügen Sie der Richtlinie die folgende Anweisung hinzu. Wenn Sie vorhaben, mit Client-Geräteschatten zu interagieren, sie aber nicht mit synchronisierenAWS IoT Core, überspringen Sie diesen Schritt. Ersetzen Sie region und account-id durch die von Ihnen verwendete Region und Ihre -AWS-KontoNummer.

    • Diese Beispielanweisung ermöglicht den Zugriff auf die Geräteschatten aller Objekte. Um bewährte Sicherheitsmethoden zu befolgen, können Sie den Zugriff nur auf das Core-Gerät und die Client-Geräte beschränken, die Sie mit dem Core-Gerät verbinden. Weitere Informationen finden Sie unter Minimale AWS IoT Richtlinie zur Unterstützung von Client-Geräten.

    { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow" ], "Resource": [ "arn:aws:iot:region:account-id:thing/*" ] }

    Nachdem Sie diese Anweisung hinzugefügt haben, könnte das Richtliniendokument dem folgenden Beispiel ähneln.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive", "greengrass:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow" ], "Resource": [ "arn:aws:iot:region:account-id:thing/*" ] } ] }
  11. Um eine neue Richtlinienversion als aktive Version festzulegen, wählen Sie unter Status der Richtlinienversion die Option Bearbeitene Version als aktive Version für diese Richtlinie festlegen aus.

  12. Wählen Sie Als neue Version speichern aus.

  1. Listen Sie die Prinzipale für das AWS IoT Objekt des Core-Geräts auf. Objektprinzipale können X.509-Gerätezertifikate oder andere Identifikatoren sein. Führen Sie den folgenden Befehl aus und ersetzen Sie MyGreengrassCore durch den Namen des Core-Geräts.

    aws iot list-thing-principals --thing-name MyGreengrassCore

    Der Vorgang gibt eine Antwort zurück, die die Objektprinzipale des Core-Geräts auflistet.

    { "principals": [ "arn:aws:iot:us-west-2:123456789012:cert/certificateId" ] }
  2. Identifizieren Sie das aktive Zertifikat des Core-Geräts. Führen Sie den folgenden Befehl aus und ersetzen Sie certificateId durch die ID jedes Zertifikats aus dem vorherigen Schritt, bis Sie das aktive Zertifikat finden. Die Zertifikat-ID ist die hexadezimale Zeichenfolge am Ende des Zertifikat-ARN. Das --query Argument gibt an, dass nur der Status des Zertifikats ausgegeben wird.

    aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'

    Der Vorgang gibt den Zertifikatsstatus als Zeichenfolge zurück. Wenn das Zertifikat beispielsweise aktiv ist, gibt dieser Vorgang aus"ACTIVE".

  3. Listen Sie die AWS IoT Richtlinien auf, die dem Zertifikat angefügt sind. Führen Sie den folgenden Befehl aus und ersetzen Sie den Zertifikat-ARN durch den ARN des Zertifikats.

    aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId

    Der Vorgang gibt eine Antwort zurück, in der die AWS IoT Richtlinien aufgeführt sind, die dem Zertifikat angefügt sind.

    { "policies": [ { "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias" }, { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy" } ] }
  4. Wählen Sie die anzuzeigende und zu aktualisierende Richtlinie aus.

    Anmerkung

    Wenn Sie das AWS IoT Greengrass-Core-Softwareinstallationsprogramm zur Bereitstellung von Ressourcen verwendet haben, haben Sie zwei AWS IoT Richtlinien. Wir empfehlen Ihnen, die Richtlinie mit dem Namen auszuwählenGreengrassV2IoTThingPolicy, falls sie vorhanden ist. Core-Geräte, die Sie mit dem Schnellinstallationsprogramm erstellen, verwenden diesen Richtliniennamen standardmäßig. Wenn Sie dieser Richtlinie Berechtigungen hinzufügen, erteilen Sie diese Berechtigungen auch anderen -Core-Geräten, die diese Richtlinie verwenden.

  5. Rufen Sie das Dokument der Richtlinie ab. Führen Sie den folgenden Befehl aus und ersetzen Sie GreengrassV2IoTThingPolicy durch den Namen der Richtlinie.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy

    Die Operation gibt eine Antwort zurück, die das Dokument der Richtlinie und andere Informationen über die Richtlinie enthält. Das Richtliniendokument ist ein JSON-Objekt, das als Zeichenfolge serialisiert wird.

    { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\"iot:Connect\\",\ \\"iot:Publish\\",\ \\"iot:Subscribe\\",\ \\"iot:Receive\\",\ \\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "defaultVersionId": "1", "creationDate": "2021-02-05T16:03:14.098000-08:00", "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00", "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f" }
  6. Verwenden Sie einen Online-Konverter oder ein anderes Tool, um die Richtliniendokumentzeichenfolge in ein JSON-Objekt zu konvertieren, und speichern Sie sie dann in einer Datei mit dem Namen iot-policy.json.

    Wenn Sie beispielsweise das Tool jq installiert haben, können Sie den folgenden Befehl ausführen, um das Richtliniendokument abzurufen, es in ein JSON-Objekt zu konvertieren und das Richtliniendokument als JSON-Objekt zu speichern.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
  7. Überprüfen Sie die Richtlinie auf die erforderlichen Berechtigungen und fügen Sie alle erforderlichen Berechtigungen hinzu, die fehlen.

    Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um GNU Nano zum Öffnen der Datei zu verwenden.

    nano iot-policy.json
    • greengrass:PutCertificateAuthorities

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:VerifyClientDeviceIoTCertificateAssociation

    • greengrass:GetConnectivityInfo

    • greengrass:UpdateConnectivityInfo – (Optional) Diese Berechtigung ist erforderlich, um die IP-Detektorkomponente zu verwenden, die die Netzwerkkonnektivitätsinformationen des Core-Geräts an den AWS IoT Greengrass Cloud-Service meldet.

    • iot:GetThingShadow, und iot:DeleteThingShadow – (Optional) Diese Berechtigungen sind erforderlichiot:UpdateThingShadow, um die Shadow Manager-Komponente zum Synchronisieren von Client-Geräteschatten mit zu verwendenAWS IoT Core. Für diese Funktion sind Greengrass-Kern v2.6.0 oder höher, Shadow Manager v2.2.0 oder höher und MQTT Bridge v2.2.0 oder höher erforderlich.

  8. Speichern Sie die Änderungen als neue Version der Richtlinie. Führen Sie den folgenden Befehl aus und ersetzen Sie GreengrassV2IoTThingPolicy durch den Namen der Richtlinie.

    aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default

    Die Operation gibt eine Antwort ähnlich dem folgenden Beispiel zurück, wenn sie erfolgreich ist.

    { "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\t\\t\\"iot:Connect\\",\ \\t\\t\\"iot:Publish\\",\ \\t\\t\\"iot:Subscribe\\",\ \\t\\t\\"iot:Receive\\",\ \\t\\t\\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "policyVersionId": "2", "isDefaultVersion": true }

Greengrass-Komponenten für die Unterstützung von Client-Geräten

Wichtig

Das Core-Gerät muss Greengrass-Kern v2.2.0 oder höher ausführen, um Client-Geräte zu unterstützen.

Damit Client-Geräte eine Verbindung zu einem Core-Gerät herstellen und mit diesem kommunizieren können, stellen Sie die folgenden Greengrass-Komponenten auf dem Core-Gerät bereit:

  • Authentifizierung auf Client-Geräten (aws.greengrass.clientdevices.Auth)

    Stellen Sie die Authentifizierungskomponente des Client-Geräts bereit, um Client-Geräte zu authentifizieren und Client-Geräteaktionen zu autorisieren. Diese Komponente ermöglicht es Ihren AWS IoT Objekten, eine Verbindung zu einem Core-Gerät herzustellen.

    Diese Komponente erfordert eine gewisse Konfiguration, um sie zu verwenden. Sie müssen Gruppen von Client-Geräten und die Operationen angeben, zu deren Ausführung jede Gruppe berechtigt ist, z. B. zum Herstellen einer Verbindung und Kommunikation über MQTT. Weitere Informationen finden Sie unter Konfiguration der Client-Geräte-Authentifizierungskomponente .

  • MQTT 3.1.1-Broker (Moquette) (aws.greengrass.clientdevices.mqtt.Moquette)

    Stellen Sie die Moquette MQTT-Brokerkomponente bereit, um einen leichtgewichtigen MQTT-Broker auszuführen. Der Moquette MQTT-Broker ist mit MQTT 3.1.1 konform und bietet lokale Unterstützung für QoS 0, QoS 1, QoS 2, beibehaltene Nachrichten, Last-Will-Nachrichten und persistente Abonnements.

    Sie müssen diese Komponente nicht für ihre Verwendung konfigurieren. Sie können jedoch den Port konfigurieren, an dem diese Komponente den MQTT-Broker betreibt. Standardmäßig wird Port 8883 verwendet.

  • MQTT 5-Broker (EMAX) (aws.greengrass.clientdevices.mqtt.EMQX)

    Anmerkung

    Um den EMQX MQTT 5-Broker verwenden zu können, müssen Sie Greengrass kernus v2.6.0 oder höher und die Client-Geräte-Authentifizierung v2.2.0 oder höher verwenden.

    Stellen Sie die EMQX MQTT-Brokerkomponente bereit, um MQTT 5.0-Funktionen bei der Kommunikation zwischen Client-Geräten und dem Core-Gerät zu verwenden. Der EMQX MQTT-Broker ist mit MQTT 5.0 kompatibel und bietet Unterstützung für Sitzungs- und Nachrichtenablaufintervalle, Benutzereigenschaften, freigegebene Abonnements, Themenaliasnamen und mehr.

    Sie müssen diese Komponente nicht für ihre Verwendung konfigurieren. Sie können jedoch den Port konfigurieren, an dem diese Komponente den MQTT-Broker betreibt. Standardmäßig wird Port 8883 verwendet.

  • MQTT-Brücke (aws.greengrass.clientdevices.mqtt.Bridge)

    (Optional) Stellen Sie die MQTT-Bridge-Komponente bereit, um Nachrichten zwischen Client-Geräten (lokales MQTT), lokaler Veröffentlichung/Abonnement und AWS IoT Core MQTT weiterzuleiten. Konfigurieren Sie diese Komponente, um Client-Geräte mit zu synchronisieren AWS IoT Core und von Greengrass-Komponenten aus mit Client-Geräten zu interagieren.

    Für diese Komponente ist eine Konfiguration erforderlich. Sie müssen die Themenzuordnungen angeben, an die diese Komponente Nachrichten weiterleitet. Weitere Informationen finden Sie unter Konfiguration der MQTT-Bridge-Komponente .

  • IP-Detektor (aws.greengrass.clientdevices.IPDetector)

    (Optional) Stellen Sie die IP-Detektorkomponente bereit, um die MQTT-Broker-Endpunkte des Core-Geräts automatisch an den AWS IoT Greengrass Cloud-Service zu melden. Sie können diese Komponente nicht verwenden, wenn Sie über eine komplexe Netzwerkeinrichtung verfügen, z. B. eine, bei der ein Router den MQTT-Broker-Port an das Core-Gerät weiterleitet.

    Sie müssen diese Komponente nicht für ihre Verwendung konfigurieren.

  • Schattenmanager (aws.greengrass.ShadowManager)

    Anmerkung

    Um Client-Geräteschatten zu verwalten, müssen Sie den Greengrass-Kern v2.6.0 oder höher, den Schattenmanager v2.2.0 oder höher und die MQTT-Bridge v2.2.0 oder höher verwenden.

    (Optional) Stellen Sie die Shadow Manager-Komponente bereit, um die Schatten des Client-Geräts auf dem Core-Gerät zu verwalten. Greengrass-Komponenten können Schatten von Client-Geräten abrufen, aktualisieren und löschen, um mit Client-Geräten zu interagieren. Sie können die Shadow Manager-Komponente auch so konfigurieren, dass die Schatten von Client-Geräten mit dem AWS IoT Core Cloud-Service synchronisiert werden.

    Um diese Komponente mit Client-Geräteschatten zu verwenden, müssen Sie die MQTT-Bridge-Komponente so konfigurieren, dass Nachrichten zwischen Client-Geräten und dem Shadow Manager weitergeleitet werden, der lokales Veröffentlichen/Abonnement verwendet. Andernfalls erfordert diese Komponente keine Konfiguration, um sie zu verwenden, aber sie erfordert eine Konfiguration, um Geräteschatten zu synchronisieren.

Anmerkung

Wir empfehlen, nur eine MQTT-Brokerkomponente bereitzustellen. Die MQTT-Bridge- und IP-Detektorkomponenten funktionieren jeweils nur mit einer MQTT-Brokerkomponente. Wenn Sie mehrere MQTT-Brokerkomponenten bereitstellen, müssen Sie sie so konfigurieren, dass unterschiedliche Ports verwendet werden.

Konfigurieren der Cloud-Erkennung (Konsole)

Sie können die -AWS IoT GreengrassKonsole verwenden, um Client-Geräte zuzuordnen, Core-Geräteendpunkte zu verwalten und Komponenten bereitzustellen, um die Client-Geräteunterstützung zu ermöglichen. Weitere Informationen finden Sie unter Schritt 2: Aktivieren der Client-Geräteunterstützung.

Konfigurieren der Cloud-Erkennung (AWS CLI)

Sie können die AWS Command Line Interface (AWS CLI) verwenden, um Client-Geräte zuzuordnen, Core-Geräteendpunkte zu verwalten und Komponenten bereitzustellen, um Client-Geräteunterstützung zu ermöglichen. Weitere Informationen finden Sie hier: