View a markdown version of this page

Authentifizierung des Client-Geräts - 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.

Authentifizierung des Client-Geräts

Die Authentifizierungskomponente für Clientgeräte (aws.greengrass.clientdevices.Auth) authentifiziert Client-Geräte und autorisiert Aktionen auf Client-Geräten.

Anmerkung

Client-Geräte sind lokale IoT-Geräte, die eine Verbindung zu einem Greengrass-Core-Gerät herstellen, um MQTT-Nachrichten und Daten zur Verarbeitung zu senden. Weitere Informationen finden Sie unter Interagieren Sie mit lokalen IoT-Geräten.

Versionen

Anmerkung

Version 2.3.0 zur Authentifizierung von Client-Geräten wurde eingestellt. Wir empfehlen dringend, auf Version 2.3.1 oder höher für die Client-Geräteauthentifizierung zu aktualisieren.

Diese Komponente hat die folgenden Versionen:

  • 2.5.x

  • 2.4.x

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

Typ

Diese Komponente ist eine Plugin-Komponente (aws.greengrass.plugin). Der Greengrass-Nukleus führt diese Komponente in derselben Java Virtual Machine (JVM) aus wie der Nucleus. Der Nucleus wird neu gestartet, wenn Sie die Version dieser Komponente auf dem Kerngerät ändern.

Diese Komponente verwendet dieselbe Protokolldatei wie der Greengrass-Nucleus. Weitere Informationen finden Sie unter AWS IoT Greengrass Protokolle überwachen.

Weitere Informationen finden Sie unter Komponententypen.

Betriebssystem

Diese Komponente kann auf Kerngeräten installiert werden, auf denen die folgenden Betriebssysteme ausgeführt werden:

  • Linux

  • Windows

Voraussetzungen

Für diese Komponente gelten die folgenden Anforderungen:

  • Die Greengrass-Servicerolle muss mit Ihrer verknüpft sein AWS-Konto und die iot:DescribeCertificate entsprechende Berechtigung gewähren.

  • Die AWS IoT Richtlinie des Hauptgeräts muss die folgenden Berechtigungen zulassen:

    • greengrass:GetConnectivityInfo, wobei die Ressourcen den ARN des Kerngeräts enthalten, auf dem diese Komponente ausgeführt wird

    • greengrass:VerifyClientDeviceIoTCertificateAssociation, wobei die Ressourcen den Amazon-Ressourcennamen (ARN) jedes Client-Geräts enthalten, das eine Verbindung zum Kerngerät herstellt

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:PutCertificateAuthorities

    • iot:Publish, wobei die Ressourcen den ARN des folgenden MQTT-Themas enthalten:

      • $aws/things/coreDeviceThingName*-gci/shadow/get

    • iot:Subscribe, wobei die Ressourcen die ARNs der folgenden MQTT-Themenfilter enthalten:

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    • iot:Receive, wobei die Ressourcen die ARNs der folgenden MQTT-Themen enthalten:

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    Weitere Informationen erhalten Sie unter AWS IoT Richtlinien für den Betrieb auf Datenebene und Minimale AWS IoT Richtlinie zur Unterstützung von Client-Geräten.

  • (Optional) Um die Offline-Authentifizierung verwenden zu können, muss die vom AWS IoT Greengrass Dienst verwendete AWS Identity and Access Management (IAM-) Rolle die folgende Berechtigung enthalten:

    • greengrass:ListClientDevicesAssociatedWithCoreDeviceum das Kerngerät in die Lage zu versetzen, Clients für die Offline-Authentifizierung aufzulisten.

  • Die Ausführung der Authentifizierungskomponente für das Clientgerät wird in einer VPC unterstützt. Um diese Komponente in einer VPC bereitzustellen, ist Folgendes erforderlich.

    • Die Authentifizierungskomponente für das Client-Gerät muss über eine Verbindung zu AWS IoT data, AWS IoT Credentials und Amazon S3 verfügen.

Endpunkte und Ports

Diese Komponente muss in der Lage sein, ausgehende Anfragen an die folgenden Endpunkte und Ports auszuführen, zusätzlich zu den Endpunkten und Ports, die für den Basisbetrieb erforderlich sind. Weitere Informationen finden Sie unter Geräteverkehr über einen Proxy oder eine Firewall zulassen.

Endpoint Port Erforderlich Description

iot.region.amazonaws.com

443 Ja

Wird verwendet, um Informationen über AWS IoT Dingzertifikate abzurufen.

Abhängigkeiten

Wenn Sie eine Komponente bereitstellen, werden AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereitgestellt. Das bedeutet, dass Sie die Anforderungen für die Komponente und alle ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitzustellen. In diesem Abschnitt werden die Abhängigkeiten für die veröffentlichten Versionen dieser Komponente sowie die semantischen Versionseinschränkungen aufgeführt, die die Komponentenversionen für jede Abhängigkeit definieren. Sie können die Abhängigkeiten für jede Version der Komponente auch in der AWS IoT Greengrass Konsole anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der Liste der Abhängigkeiten.

2.5.5

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.5.5 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Kern von Greengrass > =2,6,0 <2,17,0 Weich
2.5.4

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.5.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Kern von Greengrass > =2,6,0 <2,16,0 Weich
2.5.2 – 2.5.3

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.5.2 und 2.5.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Kern von Greengrass > =2,6,0 <2,15,0 Weich
2.5.1

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.5.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Kern von Greengrass > =2,6,0 <2,14,0 Weich
2.4.4 - 2.5.0

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.4.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Kern von Greengrass > =2,6,0 <2,13,0 Weich
2.4.3

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.4.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Kern von Greengrass > =2,6,0 <2,12,0 Weich
2.4.1 and 2.4.2

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.4.1 und 2.4.2 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Kern von Greengrass > =2,6,0 <2,11,0 Weich
2.3.0 – 2.4.0

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.3.0 bis 2.4.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Kern von Greengrass > =2,6,0 <2,1,0 Weich
2.3.0

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.3.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Grüngras-Kern > =2,6,0 <2,1,0 Weich
2.2.3

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.2.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,6,0 <=2,9,0 Weich
2.2.2

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.2.2 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,6,0 <=2,8,0 Weich
2.2.1

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.2.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,6,0 <2,8,0 Weich
2.2.0

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.2.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,6,0 <2,7,0 Weich
2.1.0

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,2,0 <2,7,0 Weich
2.0.4

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,2,0 <2,6,0 Weich
2.0.2 and 2.0.3

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.0.2 und 2.0.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,2,0 <2,5,0 Weich
2.0.1

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,2,0 <2,4,0 Weich
2.0.0

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,2,0 <2,3,0 Weich

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Komponentenrezeptreferenz.

Konfiguration

Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.

Anmerkung

Die Abonnementberechtigung wird während einer Client-Abonnementanforderung an den lokalen MQTT-Broker ausgewertet. Wenn die bestehende Abonnementberechtigung des Kunden widerrufen wird, kann der Client ein Thema nicht mehr abonnieren. Es wird jedoch weiterhin Nachrichten von zuvor abonnierten Themen empfangen. Um dieses Verhalten zu verhindern, sollte der lokale MQTT-Broker nach dem Widerruf der Abonnementberechtigung neu gestartet werden, um eine erneute Autorisierung der Clients zu erzwingen.

Aktualisieren Sie für die MQTT 5-Broker-Komponente (EMQX) die restartIdentifier Konfiguration, um den MQTT 5-Broker neu zu starten.

Für die MQTT 3.1.1 Broker-Komponente (Moquette) wird sie standardmäßig wöchentlich neu gestartet, wenn sich das Serverzertifikat ändert, sodass die Clients sich erneut autorisieren müssen. Sie können einen Neustart erzwingen, indem Sie entweder die Konnektivitätsinformationen (IP-Adressen) des Kerngeräts ändern oder indem Sie eine Bereitstellung durchführen, um die Broker-Komponente zu entfernen und sie später erneut bereitzustellen.

v2.5.0 – 2.5.4
deviceGroups

Gerätegruppen sind Gruppen von Client-Geräten, die berechtigt sind, eine Verbindung zu einem Kerngerät herzustellen und mit diesem zu kommunizieren. Verwenden Sie Auswahlregeln, um Gruppen von Client-Geräten zu identifizieren, und definieren Sie Autorisierungsrichtlinien für Clientgeräte, die die Berechtigungen für jede Gerätegruppe festlegen.

Dieses Objekt enthält die folgenden Informationen:

formatVersion

Die Formatversion für dieses Konfigurationsobjekt.

Wählen Sie aus den folgenden Optionen aus:

  • 2021-03-05

definitions

Die Gerätegruppen für dieses Kerngerät. Jede Definition gibt eine Auswahlregel an, mit der bewertet wird, ob ein Client-Gerät Mitglied der Gruppe ist. Jede Definition gibt auch die Berechtigungsrichtlinie an, die auf Client-Geräte angewendet werden soll, die der Auswahlregel entsprechen. Wenn ein Client-Gerät Mitglied mehrerer Gerätegruppen ist, setzen sich die Berechtigungen des Geräts aus den Berechtigungsrichtlinien der einzelnen Gruppen zusammen.

Dieses Objekt enthält die folgenden Informationen:

groupNameKey

Der Name dieser Gerätegruppe. groupNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Gerätegruppe zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

selectionRule

Die Abfrage, die angibt, welche Client-Geräte Mitglieder dieser Gerätegruppe sind. Wenn ein Client-Gerät eine Verbindung herstellt, wertet das Kerngerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät zu dieser Gerätegruppe gehört. Wenn das Client-Gerät ein Mitglied ist, verwendet das Kerngerät die Richtlinie dieser Gerätegruppe, um die Aktionen des Client-Geräts zu autorisieren.

Jede Auswahlregel umfasst mindestens eine Auswahlregelklausel, bei der es sich um eine einzelne Ausdrucksabfrage handelt, die mit Client-Geräten übereinstimmen kann. Auswahlregeln verwenden dieselbe Abfragesyntax wie die AWS IoT Flottenindizierung. Weitere Informationen zur Syntax von Auswahlregeln finden Sie unter Abfragesyntax für die AWS IoT Flottenindizierung im AWS IoT Core Entwicklerhandbuch.

Verwenden Sie den * Platzhalter, um mehreren Client-Geräten eine Auswahlregelklausel zuzuordnen. Sie können diesen Platzhalter am Anfang und am Ende des Dingnamens verwenden, um nach Client-Geräten zu suchen, deren Namen mit der von Ihnen angegebenen Zeichenfolge beginnen oder enden. Sie können diesen Platzhalter auch verwenden, um alle Client-Geräte abzugleichen.

Anmerkung

Um einen Wert auszuwählen, der einen Doppelpunkt (:) enthält, maskieren Sie den Doppelpunkt durch einen umgekehrten Schrägstrich (). \ In Formaten wie JSON müssen Sie Backslash-Zeichen maskieren, also geben Sie zwei umgekehrte Schrägstriche vor dem Doppelpunkt ein. Geben Sie beispielsweise an, dass ein Objekt ausgewählt thingName: MyTeam\\:ClientDevice1 werden soll, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name eines Dings auf einem Client-Gerät. AWS IoT

Beispiel Beispiel für eine Auswahlregel

Die folgende Auswahlregel gilt für Client-Geräte, deren Namen MyClientDevice1 oder sindMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen mit MyClientDevice beginnen.

thingName: MyClientDevice*
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel gilt für Client-Geräte, deren Namen mit MyClientDevice enden.

thingName: *MyClientDevice
Beispiel Beispiel für eine Auswahlregel (alle Geräte abgleichen)

Die folgende Auswahlregel gilt für alle Client-Geräte.

thingName: *
policyName

Die Berechtigungsrichtlinie, die für Client-Geräte in dieser Gerätegruppe gilt. Geben Sie den Namen einer Richtlinie an, die Sie im policies Objekt definieren.

policies

Die Autorisierungsrichtlinien für Clientgeräte für Clientgeräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, auf denen ein Client-Gerät diese Aktionen ausführen kann.

Dieses Objekt enthält die folgenden Informationen:

policyNameKey

Der Name dieser Autorisierungsrichtlinie. policyNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Autorisierungsrichtlinie zu identifizieren. Sie verwenden diesen Richtliniennamen, um zu definieren, welche Richtlinie für eine Gerätegruppe gilt.

Dieses Objekt enthält die folgenden Informationen:

statementNameKey

Der Name dieser Grundsatzerklärung. statementNameKeyErsetzen Sie diese Grundsatzerklärung durch einen Namen, der Ihnen hilft, diese Grundsatzerklärung zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

operations

Die Liste der Operationen, bei denen die Ressourcen in dieser Richtlinie berücksichtigt werden sollen.

Sie können jede der folgenden Operationen einbeziehen:

  • mqtt:connect— Erteilt die Erlaubnis, eine Verbindung zum Hauptgerät herzustellen. Client-Geräte müssen über diese Berechtigung verfügen, um eine Verbindung zu einem Kerngerät herzustellen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:clientId:deviceClientId— Beschränken Sie den Zugriff auf der Grundlage der Client-ID, die ein Client-Gerät verwendet, um eine Verbindung zum MQTT-Broker des Kerngeräts herzustellen. deviceClientIdErsetzen Sie es durch die zu verwendende Client-ID.

  • mqtt:publish— Erteilt die Erlaubnis, MQTT-Nachrichten zu Themen zu veröffentlichen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topic:mqttTopic— Beschränken Sie den Zugriff auf Grundlage des MQTT-Themas, bei dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetze es mqttTopic durch das zu verwendende Thema.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zu abonnieren, um Nachrichten zu empfangen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf Grundlage der MQTT-Themen, bei denen ein Client-Gerät Nachrichten abonnieren kann. mqttTopicFilterErsetzen Sie es durch den zu verwendenden Themenfilter.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

resources

Die Liste der Ressourcen, die für die Operationen in dieser Richtlinie erforderlich sind. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie können beispielsweise eine Liste von MQTT-Themenressourcen (mqtt:topic:mqttTopic) in einer Richtlinie angeben, die den mqtt:publish Vorgang spezifiziert.

Sie können den * Platzhalter an einer beliebigen Stelle in der Ressourcenvariablen angeben, um den Zugriff auf alle Ressourcen zu ermöglichen. Sie können beispielsweise angebenmqtt:topic:my*, dass der Zugriff auf Ressourcen zulässig ist, die dieser Eingabe entsprechen.

Die folgende Ressourcenvariable wird unterstützt:

  • mqtt:topic:${iot:Connection.Thing.ThingName}

    Dies entspricht dem Namen der Sache in der AWS IoT Core Registrierung, für die die Richtlinie ausgewertet wird. AWS IoT Core verwendet das Zertifikat, das das Gerät bei der Authentifizierung vorlegt, um zu ermitteln, welches Objekt zur Überprüfung der Verbindung verwendet werden soll. Diese Richtlinienvariable ist nur verfügbar, wenn ein Gerät eine Verbindung über MQTT oder MQTT über das Protokoll herstellt. WebSocket

statementDescription

(Optional) Eine Beschreibung für diese Richtlinienanweisung.

certificates

(Optional) Die Optionen zur Zertifikatskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

serverCertificateValiditySeconds

(Optional) Die Zeitspanne (in Sekunden), nach der das lokale MQTT-Serverzertifikat abläuft. Sie können diese Option konfigurieren, um anzupassen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und erneut herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor dessen Ablauf. Der MQTT-Broker, z. B. die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle mit diesem Kerngerät verbundenen Client-Geräte getrennt. Client-Geräte können sich nach kurzer Zeit wieder mit dem Kerngerät verbinden.

Standard: 604800 (7 Tage)

Mindestwert: 172800 (2 Tage)

Höchstwert: 864000 (10 Tage)

performance

(Optional) Die Leistungskonfigurationsoptionen für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

maxActiveAuthTokens

(Optional) Die maximale Anzahl aktiver Autorisierungstoken für Clientgeräte. Sie können diese Zahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem einzelnen Core-Gerät herstellen kann, ohne sie erneut zu authentifizieren.

Standard: 2500

cloudRequestQueueSize

(Optional) Die maximale Anzahl von AWS Cloud Anfragen, die in die Warteschlange gestellt werden, bevor diese Komponente Anfragen ablehnt.

Standard: 100

maxConcurrentCloudRequests

(Optional) Die maximale Anzahl gleichzeitiger Anfragen, die an den gesendet werden sollen. AWS Cloud Sie können diese Zahl erhöhen, um die Authentifizierungsleistung auf Kerngeräten zu verbessern, an die Sie eine große Anzahl von Client-Geräten anschließen.

Standard: 1

certificateAuthority

(Optional) Konfigurationsoptionen für Zertifizierungsstellen, um die zwischengeschaltete Stelle des Kerngeräts durch Ihre eigene Zwischenzertifizierungsstelle zu ersetzen.

Anmerkung

Wenn Sie Ihr Greengrass-Core-Gerät mit einer benutzerdefinierten Zertifizierungsstelle (CA) konfigurieren und dieselbe CA für die Ausstellung von Client-Gerätezertifikaten verwenden, umgeht Greengrass die Überprüfung der Autorisierungsrichtlinien für MQTT-Operationen auf Client-Geräten. Die Authentifizierungskomponente für Client-Geräte vertraut Clients voll und ganz, wenn sie Zertifikate verwenden, die von der CA signiert wurden, für deren Verwendung sie konfiguriert ist.

Um dieses Verhalten bei der Verwendung einer benutzerdefinierten CA einzuschränken, erstellen und signieren Sie Client-Geräte, die eine andere CA oder Zwischen-CA verwenden, und passen Sie dann die certificateChainUri Felder certificateUri und so an, dass sie auf die richtige Zwischen-CA verweisen.

Dieses Objekt enthält die folgenden Informationen.

Zertifikat-URI

Der Speicherort des Zertifikats. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Standort der Zertifikatskette für die Zertifizierungsstelle des Kerngeräts. Dies sollte die vollständige Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

Der Speicherort des privaten Schlüssels des Kerngeräts. Dies kann eine Dateisystem-URI oder eine URI sein, die auf einen privaten Zertifikatsschlüssel verweist, der in einem Hardware-Sicherheitsmodul gespeichert ist.

security

(Optional) Optionen für die Sicherheitskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen.

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, für die die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert ist 1.

metrics

(Optional) Die Metrikoptionen für dieses Kerngerät. Fehlermetriken werden nur angezeigt, wenn bei der Authentifizierung des Client-Geräts ein Fehler auftritt. Dieses Objekt enthält die folgenden Informationen:

disableMetrics

Wenn das disableMetrics Feld auf gesetzt isttrue, erfasst die Client-Geräteauthentifizierung keine Metriken.

Standard: false

aggregatePeriodSeconds

Der Aggregationszeitraum in Sekunden, der bestimmt, wie oft die Clientgeräteauthentifizierung Metriken aggregiert und an den Telemetrie-Agenten sendet. Das ändert nichts daran, wie oft Metriken veröffentlicht werden, da der Telemetrie-Agent sie immer noch einmal am Tag veröffentlicht.

Standard: 3600

Systemstart TimeoutSeconds

(Optional) Die maximale Zeit in Sekunden, die die Komponente zum Starten benötigt. Der Status der Komponente ändert sich, ERRORED wenn dieser Timeout überschritten wird.

Standard: 120

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer restriktiven Richtlinie)

Die folgende Beispielkonfiguration gibt an, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen können, und publish/subscribe zwar MyClientDevice zu allen Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen können, und zwar zu allen publish/subscribe Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
Beispiel Beispiel: Aktualisierung zum Zusammenführen von Konfigurationen (unter Verwendung einer Richtlinie für Dingnamen)

Die folgende Beispielkonfiguration ermöglicht es Client-Geräten, Beiträge zu Themen zu veröffentlichen, die mit dem Dingnamen des Client-Geräts beginnen und mit der Zeichenfolge endentopic.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "myThing": { "selectionRule": "thingName: *", "policyName": "MyThingNamePolicy" } }, "policies": { "MyThingNamePolicy": { "policyStatement": { "statementDescription": "mqtt publish", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:${iot:Connection.Thing.ThingName}/*/topic" ] } } } } }
v2.4.5
deviceGroups

Gerätegruppen sind Gruppen von Client-Geräten, die berechtigt sind, eine Verbindung zu einem Kerngerät herzustellen und mit diesem zu kommunizieren. Verwenden Sie Auswahlregeln, um Gruppen von Client-Geräten zu identifizieren, und definieren Sie Autorisierungsrichtlinien für Clientgeräte, die die Berechtigungen für jede Gerätegruppe festlegen.

Dieses Objekt enthält die folgenden Informationen:

formatVersion

Die Formatversion für dieses Konfigurationsobjekt.

Wählen Sie aus den folgenden Optionen aus:

  • 2021-03-05

definitions

Die Gerätegruppen für dieses Kerngerät. Jede Definition gibt eine Auswahlregel an, mit der bewertet wird, ob ein Client-Gerät Mitglied der Gruppe ist. Jede Definition gibt auch die Berechtigungsrichtlinie an, die auf Client-Geräte angewendet werden soll, die der Auswahlregel entsprechen. Wenn ein Client-Gerät Mitglied mehrerer Gerätegruppen ist, setzen sich die Berechtigungen des Geräts aus den Berechtigungsrichtlinien der einzelnen Gruppen zusammen.

Dieses Objekt enthält die folgenden Informationen:

groupNameKey

Der Name dieser Gerätegruppe. groupNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Gerätegruppe zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

selectionRule

Die Abfrage, die angibt, welche Client-Geräte Mitglieder dieser Gerätegruppe sind. Wenn ein Client-Gerät eine Verbindung herstellt, wertet das Kerngerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät zu dieser Gerätegruppe gehört. Wenn das Client-Gerät ein Mitglied ist, verwendet das Kerngerät die Richtlinie dieser Gerätegruppe, um die Aktionen des Client-Geräts zu autorisieren.

Jede Auswahlregel umfasst mindestens eine Auswahlregelklausel, bei der es sich um eine einzelne Ausdrucksabfrage handelt, die mit Client-Geräten übereinstimmen kann. Auswahlregeln verwenden dieselbe Abfragesyntax wie die AWS IoT Flottenindizierung. Weitere Informationen zur Syntax von Auswahlregeln finden Sie unter Abfragesyntax für die AWS IoT Flottenindizierung im AWS IoT Core Entwicklerhandbuch.

Verwenden Sie den * Platzhalter, um mehreren Client-Geräten eine Auswahlregelklausel zuzuordnen. Sie können diesen Platzhalter am Anfang und am Ende des Dingnamens verwenden, um nach Client-Geräten zu suchen, deren Namen mit der von Ihnen angegebenen Zeichenfolge beginnen oder enden. Sie können diesen Platzhalter auch verwenden, um alle Client-Geräte abzugleichen.

Anmerkung

Um einen Wert auszuwählen, der einen Doppelpunkt (:) enthält, maskieren Sie den Doppelpunkt durch einen umgekehrten Schrägstrich (). \ In Formaten wie JSON müssen Sie Backslash-Zeichen maskieren, also geben Sie zwei Backslash-Zeichen vor dem Doppelpunkt ein. Geben Sie beispielsweise an, dass ein Objekt ausgewählt thingName: MyTeam\\:ClientDevice1 werden soll, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name eines Dings auf einem Client-Gerät. AWS IoT

Beispiel Beispiel für eine Auswahlregel

Die folgende Auswahlregel gilt für Client-Geräte, deren Namen MyClientDevice1 oder sindMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen mit MyClientDevice beginnen.

thingName: MyClientDevice*
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel gilt für Client-Geräte, deren Namen mit MyClientDevice enden.

thingName: *MyClientDevice
Beispiel Beispiel für eine Auswahlregel (alle Geräte abgleichen)

Die folgende Auswahlregel gilt für alle Client-Geräte.

thingName: *
policyName

Die Berechtigungsrichtlinie, die für Client-Geräte in dieser Gerätegruppe gilt. Geben Sie den Namen einer Richtlinie an, die Sie im policies Objekt definieren.

policies

Die Autorisierungsrichtlinien für Clientgeräte für Clientgeräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, auf denen ein Client-Gerät diese Aktionen ausführen kann.

Dieses Objekt enthält die folgenden Informationen:

policyNameKey

Der Name dieser Autorisierungsrichtlinie. policyNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Autorisierungsrichtlinie zu identifizieren. Sie verwenden diesen Richtliniennamen, um zu definieren, welche Richtlinie für eine Gerätegruppe gilt.

Dieses Objekt enthält die folgenden Informationen:

statementNameKey

Der Name dieser Grundsatzerklärung. statementNameKeyErsetzen Sie ihn durch einen Namen, anhand dessen Sie diese Grundsatzerklärung leichter identifizieren können.

Dieses Objekt enthält die folgenden Informationen:

operations

Die Liste der Operationen, bei denen die Ressourcen in dieser Richtlinie berücksichtigt werden sollen.

Sie können jede der folgenden Operationen einbeziehen:

  • mqtt:connect— Erteilt die Erlaubnis, eine Verbindung zum Hauptgerät herzustellen. Client-Geräte müssen über diese Berechtigung verfügen, um eine Verbindung zu einem Kerngerät herzustellen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:clientId:deviceClientId— Beschränken Sie den Zugriff auf der Grundlage der Client-ID, die ein Client-Gerät verwendet, um eine Verbindung zum MQTT-Broker des Kerngeräts herzustellen. deviceClientIdErsetzen Sie es durch die zu verwendende Client-ID.

  • mqtt:publish— Erteilt die Erlaubnis, MQTT-Nachrichten zu Themen zu veröffentlichen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topic:mqttTopic— Beschränken Sie den Zugriff auf Grundlage des MQTT-Themas, bei dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetze es mqttTopic durch das zu verwendende Thema.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zu abonnieren, um Nachrichten zu empfangen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf Grundlage der MQTT-Themen, bei denen ein Client-Gerät Nachrichten abonnieren kann. mqttTopicFilterErsetzen Sie es durch den zu verwendenden Themenfilter.

      Diese Ressource unterstützt die Platzhalter für die Themen # MQTT + und MQTT. Weitere Informationen finden Sie unter den MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie beispielsweise zulassen, dass das Client-Gerät die mqtt:topicfilter:client/+/status Ressource abonniert, kann das Client-Gerät diese abonnieren, client/+/status aber nichtclient/client1/status.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Aktionen zu ermöglichen.

resources

Die Liste der Ressourcen, die für die Operationen in dieser Richtlinie erforderlich sind. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie können beispielsweise eine Liste von MQTT-Themenressourcen (mqtt:topic:mqttTopic) in einer Richtlinie angeben, die den mqtt:publish Vorgang spezifiziert.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Ressourcen zu ermöglichen. Sie können den * Platzhalter nicht verwenden, um partielle Ressourcenbezeichner abzugleichen. Sie können beispielsweise angeben"resources": "*", aber nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

(Optional) Eine Beschreibung für diese Richtlinienerklärung.

certificates

(Optional) Die Optionen zur Zertifikatskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

serverCertificateValiditySeconds

(Optional) Die Zeitspanne (in Sekunden), nach der das lokale MQTT-Serverzertifikat abläuft. Sie können diese Option konfigurieren, um anzupassen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und erneut herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor dessen Ablauf. Der MQTT-Broker, z. B. die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle mit diesem Kerngerät verbundenen Client-Geräte getrennt. Client-Geräte können sich nach kurzer Zeit wieder mit dem Kerngerät verbinden.

Standard: 604800 (7 Tage)

Mindestwert: 172800 (2 Tage)

Höchstwert: 864000 (10 Tage)

performance

(Optional) Die Leistungskonfigurationsoptionen für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

maxActiveAuthTokens

(Optional) Die maximale Anzahl aktiver Autorisierungstoken für Clientgeräte. Sie können diese Zahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem einzelnen Core-Gerät herstellen kann, ohne sie erneut zu authentifizieren.

Standard: 2500

cloudRequestQueueSize

(Optional) Die maximale Anzahl von AWS Cloud Anfragen, die in die Warteschlange gestellt werden, bevor diese Komponente Anfragen ablehnt.

Standard: 100

maxConcurrentCloudRequests

(Optional) Die maximale Anzahl gleichzeitiger Anfragen, die an den gesendet werden sollen. AWS Cloud Sie können diese Zahl erhöhen, um die Authentifizierungsleistung auf Kerngeräten zu verbessern, an die Sie eine große Anzahl von Client-Geräten anschließen.

Standard: 1

certificateAuthority

(Optional) Konfigurationsoptionen für Zertifizierungsstellen, um die zwischengeschaltete Stelle des Kerngeräts durch Ihre eigene Zwischenzertifizierungsstelle zu ersetzen.

Anmerkung

Wenn Sie Ihr Greengrass-Core-Gerät mit einer benutzerdefinierten Zertifizierungsstelle (CA) konfigurieren und dieselbe CA für die Ausstellung von Client-Gerätezertifikaten verwenden, umgeht Greengrass die Überprüfung der Autorisierungsrichtlinien für MQTT-Operationen auf Client-Geräten. Die Authentifizierungskomponente für Client-Geräte vertraut Clients voll und ganz, wenn sie Zertifikate verwenden, die von der CA signiert wurden, für deren Verwendung sie konfiguriert ist.

Um dieses Verhalten bei der Verwendung einer benutzerdefinierten Zertifizierungsstelle einzuschränken, erstellen und signieren Sie Client-Geräte, die eine andere CA oder eine Zwischenzertifizierungsstelle verwenden, und passen Sie dann die certificateChainUri Felder certificateUri und so an, dass sie auf die richtige Zwischen-CA verweisen.

Dieses Objekt enthält die folgenden Informationen.

Zertifikat-URI

Der Speicherort des Zertifikats. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Standort der Zertifikatskette für die Zertifizierungsstelle des Kerngeräts. Dies sollte die vollständige Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

Der Speicherort des privaten Schlüssels des Kerngeräts. Dies kann eine Dateisystem-URI oder eine URI sein, die auf einen privaten Zertifikatsschlüssel verweist, der in einem Hardware-Sicherheitsmodul gespeichert ist.

security

(Optional) Optionen zur Sicherheitskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen.

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, für die die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert ist 1.

metrics

(Optional) Die Metrikoptionen für dieses Kerngerät. Fehlermetriken werden nur angezeigt, wenn bei der Authentifizierung des Client-Geräts ein Fehler auftritt. Dieses Objekt enthält die folgenden Informationen:

disableMetrics

Wenn das disableMetrics Feld auf gesetzt isttrue, erfasst die Client-Geräteauthentifizierung keine Metriken.

Standard: false

aggregatePeriodSeconds

Der Aggregationszeitraum in Sekunden, der bestimmt, wie oft die Clientgeräteauthentifizierung Metriken aggregiert und an den Telemetrie-Agenten sendet. Das ändert nichts daran, wie oft Metriken veröffentlicht werden, da der Telemetrie-Agent sie immer noch einmal am Tag veröffentlicht.

Standard: 3600

Systemstart TimeoutSeconds

(Optional) Die maximale Zeit in Sekunden, die die Komponente zum Starten benötigt. Der Status der Komponente ändert sich, ERRORED wenn dieser Timeout überschritten wird.

Standard: 120

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer restriktiven Richtlinie)

Die folgende Beispielkonfiguration gibt an, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen können, und publish/subscribe zwar MyClientDevice zu allen Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen können, und zwar zu allen publish/subscribe Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.4.2 - v2.4.4
deviceGroups

Gerätegruppen sind Gruppen von Client-Geräten, die berechtigt sind, eine Verbindung zu einem Kerngerät herzustellen und mit diesem zu kommunizieren. Verwenden Sie Auswahlregeln, um Gruppen von Client-Geräten zu identifizieren, und definieren Sie Autorisierungsrichtlinien für Clientgeräte, die die Berechtigungen für jede Gerätegruppe festlegen.

Dieses Objekt enthält die folgenden Informationen:

formatVersion

Die Formatversion für dieses Konfigurationsobjekt.

Wählen Sie aus den folgenden Optionen aus:

  • 2021-03-05

definitions

Die Gerätegruppen für dieses Kerngerät. Jede Definition gibt eine Auswahlregel an, mit der bewertet wird, ob ein Client-Gerät Mitglied der Gruppe ist. Jede Definition gibt auch die Berechtigungsrichtlinie an, die auf Client-Geräte angewendet werden soll, die der Auswahlregel entsprechen. Wenn ein Client-Gerät Mitglied mehrerer Gerätegruppen ist, setzen sich die Berechtigungen des Geräts aus den Berechtigungsrichtlinien der einzelnen Gruppen zusammen.

Dieses Objekt enthält die folgenden Informationen:

groupNameKey

Der Name dieser Gerätegruppe. groupNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Gerätegruppe zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

selectionRule

Die Abfrage, die angibt, welche Client-Geräte Mitglieder dieser Gerätegruppe sind. Wenn ein Client-Gerät eine Verbindung herstellt, wertet das Kerngerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät zu dieser Gerätegruppe gehört. Wenn das Client-Gerät ein Mitglied ist, verwendet das Kerngerät die Richtlinie dieser Gerätegruppe, um die Aktionen des Client-Geräts zu autorisieren.

Jede Auswahlregel umfasst mindestens eine Auswahlregelklausel, bei der es sich um eine einzelne Ausdrucksabfrage handelt, die mit Client-Geräten übereinstimmen kann. Auswahlregeln verwenden dieselbe Abfragesyntax wie die AWS IoT Flottenindizierung. Weitere Informationen zur Syntax von Auswahlregeln finden Sie unter Abfragesyntax für die AWS IoT Flottenindizierung im AWS IoT Core Entwicklerhandbuch.

Verwenden Sie den * Platzhalter, um mehreren Client-Geräten eine Auswahlregelklausel zuzuordnen. Sie können diesen Platzhalter am Ende des Dingnamens verwenden, um nach Client-Geräten zu suchen, deren Namen mit einer von Ihnen angegebenen Zeichenfolge beginnen. Sie können diesen Platzhalter auch verwenden, um alle Client-Geräte abzugleichen.

Anmerkung

Um einen Wert auszuwählen, der einen Doppelpunkt (:) enthält, maskieren Sie den Doppelpunkt durch einen umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie Backslash-Zeichen maskieren, also geben Sie zwei umgekehrte Schrägstriche vor dem Doppelpunkt ein. Geben Sie beispielsweise an, dass ein Objekt ausgewählt thingName: MyTeam\\\\:ClientDevice1 werden soll, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name eines Dings auf einem Client-Gerät. AWS IoT

Beispiel Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen MyClientDevice1 oder sindMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen mit MyClientDevice beginnen.

thingName: MyClientDevice*
Beispiel Beispiel für eine Auswahlregel (alle Geräte abgleichen)

Die folgende Auswahlregel gilt für alle Client-Geräte.

thingName: *
policyName

Die Berechtigungsrichtlinie, die für Client-Geräte in dieser Gerätegruppe gilt. Geben Sie den Namen einer Richtlinie an, die Sie im policies Objekt definieren.

policies

Die Autorisierungsrichtlinien für Clientgeräte für Clientgeräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, auf denen ein Client-Gerät diese Aktionen ausführen kann.

Dieses Objekt enthält die folgenden Informationen:

policyNameKey

Der Name dieser Autorisierungsrichtlinie. policyNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Autorisierungsrichtlinie zu identifizieren. Sie verwenden diesen Richtliniennamen, um zu definieren, welche Richtlinie für eine Gerätegruppe gilt.

Dieses Objekt enthält die folgenden Informationen:

statementNameKey

Der Name dieser Grundsatzerklärung. statementNameKeyErsetzen Sie ihn durch einen Namen, anhand dessen Sie diese Grundsatzerklärung leichter identifizieren können.

Dieses Objekt enthält die folgenden Informationen:

operations

Die Liste der Operationen, bei denen die Ressourcen in dieser Richtlinie berücksichtigt werden sollen.

Sie können jede der folgenden Operationen einbeziehen:

  • mqtt:connect— Erteilt die Erlaubnis, eine Verbindung zum Hauptgerät herzustellen. Client-Geräte müssen über diese Berechtigung verfügen, um eine Verbindung zu einem Kerngerät herzustellen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:clientId:deviceClientId— Beschränken Sie den Zugriff auf der Grundlage der Client-ID, die ein Client-Gerät verwendet, um eine Verbindung zum MQTT-Broker des Kerngeräts herzustellen. deviceClientIdErsetzen Sie es durch die zu verwendende Client-ID.

  • mqtt:publish— Erteilt die Erlaubnis, MQTT-Nachrichten zu Themen zu veröffentlichen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topic:mqttTopic— Beschränken Sie den Zugriff auf Grundlage des MQTT-Themas, bei dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetze es mqttTopic durch das zu verwendende Thema.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zu abonnieren, um Nachrichten zu empfangen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf Grundlage der MQTT-Themen, bei denen ein Client-Gerät Nachrichten abonnieren kann. mqttTopicFilterErsetzen Sie es durch den zu verwendenden Themenfilter.

      Diese Ressource unterstützt die Platzhalter für die Themen # MQTT + und MQTT. Weitere Informationen finden Sie unter MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie beispielsweise zulassen, dass das Client-Gerät die mqtt:topicfilter:client/+/status Ressource abonniert, kann das Client-Gerät diese abonnieren, client/+/status aber nichtclient/client1/status.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Aktionen zu ermöglichen.

resources

Die Liste der Ressourcen, die für die Operationen in dieser Richtlinie erforderlich sind. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie können beispielsweise eine Liste von MQTT-Themenressourcen (mqtt:topic:mqttTopic) in einer Richtlinie angeben, die den mqtt:publish Vorgang spezifiziert.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Ressourcen zu ermöglichen. Sie können den * Platzhalter nicht verwenden, um partielle Ressourcenbezeichner abzugleichen. Sie können beispielsweise angeben"resources": "*", aber nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

(Optional) Eine Beschreibung für diese Richtlinienerklärung.

certificates

(Optional) Die Optionen zur Zertifikatskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

serverCertificateValiditySeconds

(Optional) Die Zeitspanne (in Sekunden), nach der das lokale MQTT-Serverzertifikat abläuft. Sie können diese Option konfigurieren, um anzupassen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und erneut herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor dessen Ablauf. Der MQTT-Broker, z. B. die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle mit diesem Kerngerät verbundenen Client-Geräte getrennt. Client-Geräte können sich nach kurzer Zeit wieder mit dem Kerngerät verbinden.

Standard: 604800 (7 Tage)

Mindestwert: 172800 (2 Tage)

Höchstwert: 864000 (10 Tage)

performance

(Optional) Die Leistungskonfigurationsoptionen für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

maxActiveAuthTokens

(Optional) Die maximale Anzahl aktiver Autorisierungstoken für Clientgeräte. Sie können diese Zahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem einzelnen Core-Gerät herstellen kann, ohne sie erneut zu authentifizieren.

Standard: 2500

cloudRequestQueueSize

(Optional) Die maximale Anzahl von AWS Cloud Anfragen, die in die Warteschlange gestellt werden, bevor diese Komponente Anfragen ablehnt.

Standard: 100

maxConcurrentCloudRequests

(Optional) Die maximale Anzahl gleichzeitiger Anfragen, die an den gesendet werden sollen. AWS Cloud Sie können diese Zahl erhöhen, um die Authentifizierungsleistung auf Kerngeräten zu verbessern, an die Sie eine große Anzahl von Client-Geräten anschließen.

Standard: 1

certificateAuthority

(Optional) Konfigurationsoptionen für Zertifizierungsstellen, um die zwischengeschaltete Stelle des Kerngeräts durch Ihre eigene Zwischenzertifizierungsstelle zu ersetzen.

Anmerkung

Wenn Sie Ihr Greengrass-Core-Gerät mit einer benutzerdefinierten Zertifizierungsstelle (CA) konfigurieren und dieselbe CA für die Ausstellung von Client-Gerätezertifikaten verwenden, umgeht Greengrass die Überprüfung der Autorisierungsrichtlinien für MQTT-Operationen auf Client-Geräten. Die Authentifizierungskomponente für Client-Geräte vertraut Clients voll und ganz, wenn sie Zertifikate verwenden, die von der CA signiert wurden, für deren Verwendung sie konfiguriert ist.

Um dieses Verhalten bei der Verwendung einer benutzerdefinierten CA einzuschränken, erstellen und signieren Sie Client-Geräte, die eine andere CA oder Zwischen-CA verwenden, und passen Sie dann die certificateChainUri Felder certificateUri und so an, dass sie auf die richtige Zwischen-CA verweisen.

Dieses Objekt enthält die folgenden Informationen.

Zertifikat-URI

Der Speicherort des Zertifikats. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Standort der Zertifikatskette für die Zertifizierungsstelle des Kerngeräts. Dies sollte die vollständige Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

Der Speicherort des privaten Schlüssels des Kerngeräts. Dies kann eine Dateisystem-URI oder eine URI sein, die auf einen privaten Zertifikatsschlüssel verweist, der in einem Hardware-Sicherheitsmodul gespeichert ist.

security

(Optional) Optionen für die Sicherheitskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen.

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, für die die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert ist 1.

metrics

(Optional) Die Metrikoptionen für dieses Kerngerät. Fehlermetriken werden nur angezeigt, wenn bei der Authentifizierung des Client-Geräts ein Fehler auftritt. Dieses Objekt enthält die folgenden Informationen:

disableMetrics

Wenn das disableMetrics Feld auf gesetzt isttrue, erfasst die Client-Geräteauthentifizierung keine Metriken.

Standard: false

aggregatePeriodSeconds

Der Aggregationszeitraum in Sekunden, der bestimmt, wie oft die Clientgeräteauthentifizierung Metriken aggregiert und an den Telemetrie-Agenten sendet. Das ändert nichts daran, wie oft Metriken veröffentlicht werden, da der Telemetrie-Agent sie immer noch einmal am Tag veröffentlicht.

Standard: 3600

Systemstart TimeoutSeconds

(Optional) Die maximale Zeit in Sekunden, die die Komponente zum Starten benötigt. Der Status der Komponente ändert sich, ERRORED wenn dieser Timeout überschritten wird.

Standard: 120

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer restriktiven Richtlinie)

Die folgende Beispielkonfiguration gibt an, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen können, und publish/subscribe zwar MyClientDevice zu allen Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen können, und zwar zu allen publish/subscribe Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.4.0 - v2.4.1
deviceGroups

Gerätegruppen sind Gruppen von Client-Geräten, die berechtigt sind, eine Verbindung zu einem Kerngerät herzustellen und mit diesem zu kommunizieren. Verwenden Sie Auswahlregeln, um Gruppen von Client-Geräten zu identifizieren, und definieren Sie Autorisierungsrichtlinien für Clientgeräte, die die Berechtigungen für jede Gerätegruppe festlegen.

Dieses Objekt enthält die folgenden Informationen:

formatVersion

Die Formatversion für dieses Konfigurationsobjekt.

Wählen Sie aus den folgenden Optionen aus:

  • 2021-03-05

definitions

Die Gerätegruppen für dieses Kerngerät. Jede Definition gibt eine Auswahlregel an, mit der bewertet wird, ob ein Client-Gerät Mitglied der Gruppe ist. Jede Definition gibt auch die Berechtigungsrichtlinie an, die auf Client-Geräte angewendet werden soll, die der Auswahlregel entsprechen. Wenn ein Client-Gerät Mitglied mehrerer Gerätegruppen ist, setzen sich die Berechtigungen des Geräts aus den Berechtigungsrichtlinien der einzelnen Gruppen zusammen.

Dieses Objekt enthält die folgenden Informationen:

groupNameKey

Der Name dieser Gerätegruppe. groupNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Gerätegruppe zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

selectionRule

Die Abfrage, die angibt, welche Client-Geräte Mitglieder dieser Gerätegruppe sind. Wenn ein Client-Gerät eine Verbindung herstellt, wertet das Kerngerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät zu dieser Gerätegruppe gehört. Wenn das Client-Gerät ein Mitglied ist, verwendet das Kerngerät die Richtlinie dieser Gerätegruppe, um die Aktionen des Client-Geräts zu autorisieren.

Jede Auswahlregel umfasst mindestens eine Auswahlregelklausel, bei der es sich um eine einzelne Ausdrucksabfrage handelt, die mit Client-Geräten übereinstimmen kann. Auswahlregeln verwenden dieselbe Abfragesyntax wie die AWS IoT Flottenindizierung. Weitere Informationen zur Syntax von Auswahlregeln finden Sie unter Abfragesyntax für die AWS IoT Flottenindizierung im AWS IoT Core Entwicklerhandbuch.

Verwenden Sie den * Platzhalter, um mehreren Client-Geräten eine Auswahlregelklausel zuzuordnen. Sie können diesen Platzhalter am Ende des Dingnamens verwenden, um nach Client-Geräten zu suchen, deren Namen mit einer von Ihnen angegebenen Zeichenfolge beginnen. Sie können diesen Platzhalter auch verwenden, um alle Client-Geräte abzugleichen.

Anmerkung

Um einen Wert auszuwählen, der einen Doppelpunkt (:) enthält, maskieren Sie den Doppelpunkt durch einen umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie Backslash-Zeichen maskieren, also geben Sie zwei umgekehrte Schrägstriche vor dem Doppelpunkt ein. Geben Sie beispielsweise an, dass ein Objekt ausgewählt thingName: MyTeam\\\\:ClientDevice1 werden soll, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name eines Dings auf einem Client-Gerät. AWS IoT

Beispiel Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen MyClientDevice1 oder sindMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen mit MyClientDevice beginnen.

thingName: MyClientDevice*
Beispiel Beispiel für eine Auswahlregel (alle Geräte abgleichen)

Die folgende Auswahlregel gilt für alle Client-Geräte.

thingName: *
policyName

Die Berechtigungsrichtlinie, die für Client-Geräte in dieser Gerätegruppe gilt. Geben Sie den Namen einer Richtlinie an, die Sie im policies Objekt definieren.

policies

Die Autorisierungsrichtlinien für Clientgeräte für Clientgeräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, auf denen ein Client-Gerät diese Aktionen ausführen kann.

Dieses Objekt enthält die folgenden Informationen:

policyNameKey

Der Name dieser Autorisierungsrichtlinie. policyNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Autorisierungsrichtlinie zu identifizieren. Sie verwenden diesen Richtliniennamen, um zu definieren, welche Richtlinie für eine Gerätegruppe gilt.

Dieses Objekt enthält die folgenden Informationen:

statementNameKey

Der Name dieser Grundsatzerklärung. statementNameKeyErsetzen Sie ihn durch einen Namen, anhand dessen Sie diese Grundsatzerklärung leichter identifizieren können.

Dieses Objekt enthält die folgenden Informationen:

operations

Die Liste der Operationen, bei denen die Ressourcen in dieser Richtlinie berücksichtigt werden sollen.

Sie können jede der folgenden Operationen einbeziehen:

  • mqtt:connect— Erteilt die Erlaubnis, eine Verbindung zum Hauptgerät herzustellen. Client-Geräte müssen über diese Berechtigung verfügen, um eine Verbindung zu einem Kerngerät herzustellen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:clientId:deviceClientId— Beschränken Sie den Zugriff auf der Grundlage der Client-ID, die ein Client-Gerät verwendet, um eine Verbindung zum MQTT-Broker des Kerngeräts herzustellen. deviceClientIdErsetzen Sie es durch die zu verwendende Client-ID.

  • mqtt:publish— Erteilt die Erlaubnis, MQTT-Nachrichten zu Themen zu veröffentlichen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topic:mqttTopic— Beschränken Sie den Zugriff auf Grundlage des MQTT-Themas, bei dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetze es mqttTopic durch das zu verwendende Thema.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zu abonnieren, um Nachrichten zu empfangen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf Grundlage der MQTT-Themen, bei denen ein Client-Gerät Nachrichten abonnieren kann. mqttTopicFilterErsetzen Sie es durch den zu verwendenden Themenfilter.

      Diese Ressource unterstützt die Platzhalter für die Themen # MQTT + und MQTT. Weitere Informationen finden Sie unter den MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie beispielsweise zulassen, dass das Client-Gerät die mqtt:topicfilter:client/+/status Ressource abonniert, kann das Client-Gerät diese abonnieren, client/+/status aber nichtclient/client1/status.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Aktionen zu ermöglichen.

resources

Die Liste der Ressourcen, die für die Operationen in dieser Richtlinie erforderlich sind. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie können beispielsweise eine Liste von MQTT-Themenressourcen (mqtt:topic:mqttTopic) in einer Richtlinie angeben, die den mqtt:publish Vorgang spezifiziert.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Ressourcen zu ermöglichen. Sie können den * Platzhalter nicht verwenden, um partielle Ressourcenbezeichner abzugleichen. Sie können beispielsweise angeben"resources": "*", aber nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

(Optional) Eine Beschreibung für diese Richtlinienerklärung.

certificates

(Optional) Die Optionen zur Zertifikatskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

serverCertificateValiditySeconds

(Optional) Die Zeitspanne (in Sekunden), nach der das lokale MQTT-Serverzertifikat abläuft. Sie können diese Option konfigurieren, um anzupassen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und erneut herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor dessen Ablauf. Der MQTT-Broker, z. B. die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle mit diesem Kerngerät verbundenen Client-Geräte getrennt. Client-Geräte können sich nach kurzer Zeit wieder mit dem Kerngerät verbinden.

Standard: 604800 (7 Tage)

Mindestwert: 172800 (2 Tage)

Höchstwert: 864000 (10 Tage)

performance

(Optional) Die Leistungskonfigurationsoptionen für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

maxActiveAuthTokens

(Optional) Die maximale Anzahl aktiver Autorisierungstoken für Clientgeräte. Sie können diese Zahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem einzelnen Core-Gerät herstellen kann, ohne sie erneut zu authentifizieren.

Standard: 2500

cloudRequestQueueSize

(Optional) Die maximale Anzahl von AWS Cloud Anfragen, die in die Warteschlange gestellt werden, bevor diese Komponente Anfragen ablehnt.

Standard: 100

maxConcurrentCloudRequests

(Optional) Die maximale Anzahl gleichzeitiger Anfragen, die an den gesendet werden sollen. AWS Cloud Sie können diese Zahl erhöhen, um die Authentifizierungsleistung auf Kerngeräten zu verbessern, an die Sie eine große Anzahl von Client-Geräten anschließen.

Standard: 1

certificateAuthority

(Optional) Konfigurationsoptionen für Zertifizierungsstellen, um die zwischengeschaltete Stelle des Kerngeräts durch Ihre eigene Zwischenzertifizierungsstelle zu ersetzen. Dieses Objekt enthält die folgenden Informationen.

Dieses Objekt enthält die folgenden Informationen:

Zertifikat-URI

Der Speicherort des Zertifikats. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Standort der Zertifikatskette für die Zertifizierungsstelle des Kerngeräts. Dies sollte die vollständige Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

Der Speicherort des privaten Schlüssels des Kerngeräts. Dies kann eine Dateisystem-URI oder eine URI sein, die auf einen privaten Zertifikatsschlüssel verweist, der in einem Hardware-Sicherheitsmodul gespeichert ist.

security

(Optional) Optionen zur Sicherheitskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen.

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, für die die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert ist 1.

metrics

(Optional) Die Metrikoptionen für dieses Kerngerät. Fehlermetriken werden nur angezeigt, wenn bei der Authentifizierung des Client-Geräts ein Fehler auftritt. Dieses Objekt enthält die folgenden Informationen:

disableMetrics

Wenn das disableMetrics Feld auf gesetzt isttrue, erfasst die Client-Geräteauthentifizierung keine Metriken.

Standard: false

aggregatePeriodSeconds

Der Aggregationszeitraum in Sekunden, der bestimmt, wie oft die Clientgeräteauthentifizierung Metriken aggregiert und an den Telemetrie-Agenten sendet. Das ändert nichts daran, wie oft Metriken veröffentlicht werden, da der Telemetrie-Agent sie immer noch einmal am Tag veröffentlicht.

Standard: 3600

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer restriktiven Richtlinie)

Die folgende Beispielkonfiguration gibt an, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen können, und publish/subscribe zwar MyClientDevice zu allen Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen können, und zwar zu allen publish/subscribe Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.3.x
deviceGroups

Gerätegruppen sind Gruppen von Client-Geräten, die berechtigt sind, eine Verbindung zu einem Kerngerät herzustellen und mit diesem zu kommunizieren. Verwenden Sie Auswahlregeln, um Gruppen von Client-Geräten zu identifizieren, und definieren Sie Autorisierungsrichtlinien für Clientgeräte, die die Berechtigungen für jede Gerätegruppe festlegen.

Dieses Objekt enthält die folgenden Informationen:

formatVersion

Die Formatversion für dieses Konfigurationsobjekt.

Wählen Sie aus den folgenden Optionen aus:

  • 2021-03-05

definitions

Die Gerätegruppen für dieses Kerngerät. Jede Definition gibt eine Auswahlregel an, mit der bewertet wird, ob ein Client-Gerät Mitglied der Gruppe ist. Jede Definition gibt auch die Berechtigungsrichtlinie an, die auf Client-Geräte angewendet werden soll, die der Auswahlregel entsprechen. Wenn ein Client-Gerät Mitglied mehrerer Gerätegruppen ist, setzen sich die Berechtigungen des Geräts aus den Berechtigungsrichtlinien der einzelnen Gruppen zusammen.

Dieses Objekt enthält die folgenden Informationen:

groupNameKey

Der Name dieser Gerätegruppe. groupNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Gerätegruppe zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

selectionRule

Die Abfrage, die angibt, welche Client-Geräte Mitglieder dieser Gerätegruppe sind. Wenn ein Client-Gerät eine Verbindung herstellt, wertet das Kerngerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät zu dieser Gerätegruppe gehört. Wenn das Client-Gerät ein Mitglied ist, verwendet das Kerngerät die Richtlinie dieser Gerätegruppe, um die Aktionen des Client-Geräts zu autorisieren.

Jede Auswahlregel umfasst mindestens eine Auswahlregelklausel, bei der es sich um eine einzelne Ausdrucksabfrage handelt, die mit Client-Geräten übereinstimmen kann. Auswahlregeln verwenden dieselbe Abfragesyntax wie die AWS IoT Flottenindizierung. Weitere Informationen zur Syntax von Auswahlregeln finden Sie unter Abfragesyntax für die AWS IoT Flottenindizierung im AWS IoT Core Entwicklerhandbuch.

Verwenden Sie den * Platzhalter, um mehreren Client-Geräten eine Auswahlregelklausel zuzuordnen. Sie können diesen Platzhalter am Ende des Dingnamens verwenden, um nach Client-Geräten zu suchen, deren Namen mit einer von Ihnen angegebenen Zeichenfolge beginnen. Sie können diesen Platzhalter auch verwenden, um alle Client-Geräte abzugleichen.

Anmerkung

Um einen Wert auszuwählen, der einen Doppelpunkt (:) enthält, maskieren Sie den Doppelpunkt durch einen umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie Backslash-Zeichen maskieren, also geben Sie zwei umgekehrte Schrägstriche vor dem Doppelpunkt ein. Geben Sie beispielsweise an, dass ein Objekt ausgewählt thingName: MyTeam\\\\:ClientDevice1 werden soll, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name eines Dings auf einem Client-Gerät. AWS IoT

Beispiel Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen MyClientDevice1 oder sindMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen mit MyClientDevice beginnen.

thingName: MyClientDevice*
Beispiel Beispiel für eine Auswahlregel (alle Geräte abgleichen)

Die folgende Auswahlregel gilt für alle Client-Geräte.

thingName: *
policyName

Die Berechtigungsrichtlinie, die für Client-Geräte in dieser Gerätegruppe gilt. Geben Sie den Namen einer Richtlinie an, die Sie im policies Objekt definieren.

policies

Die Autorisierungsrichtlinien für Clientgeräte für Clientgeräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, auf denen ein Client-Gerät diese Aktionen ausführen kann.

Dieses Objekt enthält die folgenden Informationen:

policyNameKey

Der Name dieser Autorisierungsrichtlinie. policyNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Autorisierungsrichtlinie zu identifizieren. Sie verwenden diesen Richtliniennamen, um zu definieren, welche Richtlinie für eine Gerätegruppe gilt.

Dieses Objekt enthält die folgenden Informationen:

statementNameKey

Der Name dieser Grundsatzerklärung. statementNameKeyErsetzen Sie ihn durch einen Namen, anhand dessen Sie diese Grundsatzerklärung leichter identifizieren können.

Dieses Objekt enthält die folgenden Informationen:

operations

Die Liste der Operationen, bei denen die Ressourcen in dieser Richtlinie berücksichtigt werden sollen.

Sie können jede der folgenden Operationen einbeziehen:

  • mqtt:connect— Erteilt die Erlaubnis, eine Verbindung zum Hauptgerät herzustellen. Client-Geräte müssen über diese Berechtigung verfügen, um eine Verbindung zu einem Kerngerät herzustellen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:clientId:deviceClientId— Beschränken Sie den Zugriff auf der Grundlage der Client-ID, die ein Client-Gerät verwendet, um eine Verbindung zum MQTT-Broker des Kerngeräts herzustellen. deviceClientIdErsetzen Sie es durch die zu verwendende Client-ID.

  • mqtt:publish— Erteilt die Erlaubnis, MQTT-Nachrichten zu Themen zu veröffentlichen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topic:mqttTopic— Beschränken Sie den Zugriff auf Grundlage des MQTT-Themas, bei dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetze es mqttTopic durch das zu verwendende Thema.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zu abonnieren, um Nachrichten zu empfangen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf Grundlage der MQTT-Themen, bei denen ein Client-Gerät Nachrichten abonnieren kann. mqttTopicFilterErsetzen Sie es durch den zu verwendenden Themenfilter.

      Diese Ressource unterstützt die Platzhalter für die Themen # MQTT + und MQTT. Weitere Informationen finden Sie unter den MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie beispielsweise zulassen, dass das Client-Gerät die mqtt:topicfilter:client/+/status Ressource abonniert, kann das Client-Gerät diese abonnieren, client/+/status aber nichtclient/client1/status.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Aktionen zu ermöglichen.

resources

Die Liste der Ressourcen, die für die Operationen in dieser Richtlinie erforderlich sind. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie können beispielsweise eine Liste von MQTT-Themenressourcen (mqtt:topic:mqttTopic) in einer Richtlinie angeben, die den mqtt:publish Vorgang spezifiziert.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Ressourcen zu ermöglichen. Sie können den * Platzhalter nicht verwenden, um partielle Ressourcenbezeichner abzugleichen. Sie können beispielsweise angeben"resources": "*", aber nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

(Optional) Eine Beschreibung für diese Richtlinienerklärung.

certificates

(Optional) Die Optionen zur Zertifikatskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

serverCertificateValiditySeconds

(Optional) Die Zeitspanne (in Sekunden), nach der das lokale MQTT-Serverzertifikat abläuft. Sie können diese Option konfigurieren, um anzupassen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und erneut herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor dessen Ablauf. Der MQTT-Broker, z. B. die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle mit diesem Kerngerät verbundenen Client-Geräte getrennt. Client-Geräte können sich nach kurzer Zeit wieder mit dem Kerngerät verbinden.

Standard: 604800 (7 Tage)

Mindestwert: 172800 (2 Tage)

Höchstwert: 864000 (10 Tage)

performance

(Optional) Die Leistungskonfigurationsoptionen für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

maxActiveAuthTokens

(Optional) Die maximale Anzahl aktiver Autorisierungstoken für Clientgeräte. Sie können diese Zahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem Single-Core-Gerät herstellen kann, ohne sie erneut zu authentifizieren.

Standard: 2500

cloudRequestQueueSize

(Optional) Die maximale Anzahl von AWS Cloud Anfragen, die in die Warteschlange gestellt werden, bevor diese Komponente Anfragen ablehnt.

Standard: 100

maxConcurrentCloudRequests

(Optional) Die maximale Anzahl gleichzeitiger Anfragen, die an den gesendet werden sollen. AWS Cloud Sie können diese Zahl erhöhen, um die Authentifizierungsleistung auf Kerngeräten zu verbessern, an die Sie eine große Anzahl von Client-Geräten anschließen.

Standard: 1

certificateAuthority

(Optional) Konfigurationsoptionen für Zertifizierungsstellen, um die zwischengeschaltete Stelle des Kerngeräts durch Ihre eigene Zwischenzertifizierungsstelle zu ersetzen. Dieses Objekt enthält die folgenden Informationen.

Zertifikat-URI

Der Speicherort des Zertifikats. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Standort der Zertifikatskette für die Zertifizierungsstelle des Kerngeräts. Dies sollte die vollständige Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Es kann sich um eine Dateisystem-URI oder eine URI handeln, die auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

Der Speicherort des privaten Schlüssels des Kerngeräts. Dies kann eine Dateisystem-URI oder eine URI sein, die auf einen privaten Zertifikatsschlüssel verweist, der in einem Hardware-Sicherheitsmodul gespeichert ist.

security

(Optional) Optionen zur Sicherheitskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen.

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, für die die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert ist 1.

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer restriktiven Richtlinie)

Die folgende Beispielkonfiguration gibt an, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen können, und publish/subscribe zwar MyClientDevice zu allen Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen können, und zwar zu allen publish/subscribe Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.2.x
deviceGroups

Gerätegruppen sind Gruppen von Client-Geräten, die berechtigt sind, eine Verbindung zu einem Kerngerät herzustellen und mit diesem zu kommunizieren. Verwenden Sie Auswahlregeln, um Gruppen von Client-Geräten zu identifizieren, und definieren Sie Autorisierungsrichtlinien für Clientgeräte, die die Berechtigungen für jede Gerätegruppe festlegen.

Dieses Objekt enthält die folgenden Informationen:

formatVersion

Die Formatversion für dieses Konfigurationsobjekt.

Wählen Sie aus den folgenden Optionen aus:

  • 2021-03-05

definitions

Die Gerätegruppen für dieses Kerngerät. Jede Definition gibt eine Auswahlregel an, mit der bewertet wird, ob ein Client-Gerät Mitglied der Gruppe ist. Jede Definition gibt auch die Berechtigungsrichtlinie an, die auf Client-Geräte angewendet werden soll, die der Auswahlregel entsprechen. Wenn ein Client-Gerät Mitglied mehrerer Gerätegruppen ist, setzen sich die Berechtigungen des Geräts aus den Berechtigungsrichtlinien der einzelnen Gruppen zusammen.

Dieses Objekt enthält die folgenden Informationen:

groupNameKey

Der Name dieser Gerätegruppe. groupNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Gerätegruppe zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

selectionRule

Die Abfrage, die angibt, welche Client-Geräte Mitglieder dieser Gerätegruppe sind. Wenn ein Client-Gerät eine Verbindung herstellt, wertet das Kerngerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät zu dieser Gerätegruppe gehört. Wenn das Client-Gerät ein Mitglied ist, verwendet das Kerngerät die Richtlinie dieser Gerätegruppe, um die Aktionen des Client-Geräts zu autorisieren.

Jede Auswahlregel umfasst mindestens eine Auswahlregelklausel, bei der es sich um eine einzelne Ausdrucksabfrage handelt, die mit Client-Geräten übereinstimmen kann. Auswahlregeln verwenden dieselbe Abfragesyntax wie die AWS IoT Flottenindizierung. Weitere Informationen zur Syntax von Auswahlregeln finden Sie unter Abfragesyntax für die AWS IoT Flottenindizierung im AWS IoT Core Entwicklerhandbuch.

Verwenden Sie den * Platzhalter, um mehreren Client-Geräten eine Auswahlregelklausel zuzuordnen. Sie können diesen Platzhalter am Ende des Dingnamens verwenden, um nach Client-Geräten zu suchen, deren Namen mit einer von Ihnen angegebenen Zeichenfolge beginnen. Sie können diesen Platzhalter auch verwenden, um alle Client-Geräte abzugleichen.

Anmerkung

Um einen Wert auszuwählen, der einen Doppelpunkt (:) enthält, maskieren Sie den Doppelpunkt durch einen umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie Backslash-Zeichen maskieren, also geben Sie zwei umgekehrte Schrägstriche vor dem Doppelpunkt ein. Geben Sie beispielsweise an, dass ein Objekt ausgewählt thingName: MyTeam\\\\:ClientDevice1 werden soll, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name eines Dings auf einem Client-Gerät. AWS IoT

Beispiel Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen MyClientDevice1 oder sindMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen mit MyClientDevice beginnen.

thingName: MyClientDevice*
Beispiel Beispiel für eine Auswahlregel (alle Geräte abgleichen)

Die folgende Auswahlregel gilt für alle Client-Geräte.

thingName: *
policyName

Die Berechtigungsrichtlinie, die für Client-Geräte in dieser Gerätegruppe gilt. Geben Sie den Namen einer Richtlinie an, die Sie im policies Objekt definieren.

policies

Die Autorisierungsrichtlinien für Clientgeräte für Clientgeräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, auf denen ein Client-Gerät diese Aktionen ausführen kann.

Dieses Objekt enthält die folgenden Informationen:

policyNameKey

Der Name dieser Autorisierungsrichtlinie. policyNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Autorisierungsrichtlinie zu identifizieren. Sie verwenden diesen Richtliniennamen, um zu definieren, welche Richtlinie für eine Gerätegruppe gilt.

Dieses Objekt enthält die folgenden Informationen:

statementNameKey

Der Name dieser Grundsatzerklärung. statementNameKeyErsetzen Sie ihn durch einen Namen, anhand dessen Sie diese Grundsatzerklärung leichter identifizieren können.

Dieses Objekt enthält die folgenden Informationen:

operations

Die Liste der Operationen, bei denen die Ressourcen in dieser Richtlinie berücksichtigt werden sollen.

Sie können jede der folgenden Operationen einbeziehen:

  • mqtt:connect— Erteilt die Erlaubnis, eine Verbindung zum Hauptgerät herzustellen. Client-Geräte müssen über diese Berechtigung verfügen, um eine Verbindung zu einem Kerngerät herzustellen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:clientId:deviceClientId— Beschränken Sie den Zugriff auf der Grundlage der Client-ID, die ein Client-Gerät verwendet, um eine Verbindung zum MQTT-Broker des Kerngeräts herzustellen. deviceClientIdErsetzen Sie es durch die zu verwendende Client-ID.

  • mqtt:publish— Erteilt die Erlaubnis, MQTT-Nachrichten zu Themen zu veröffentlichen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topic:mqttTopic— Beschränken Sie den Zugriff auf Grundlage des MQTT-Themas, bei dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetze es mqttTopic durch das zu verwendende Thema.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zu abonnieren, um Nachrichten zu empfangen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf Grundlage der MQTT-Themen, bei denen ein Client-Gerät Nachrichten abonnieren kann. mqttTopicFilterErsetzen Sie es durch den zu verwendenden Themenfilter.

      Diese Ressource unterstützt die Platzhalter für die Themen # MQTT + und MQTT. Weitere Informationen finden Sie unter den MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie beispielsweise zulassen, dass das Client-Gerät die mqtt:topicfilter:client/+/status Ressource abonniert, kann das Client-Gerät diese abonnieren, client/+/status aber nichtclient/client1/status.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Aktionen zu ermöglichen.

resources

Die Liste der Ressourcen, die für die Operationen in dieser Richtlinie erforderlich sind. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie können beispielsweise eine Liste von MQTT-Themenressourcen (mqtt:topic:mqttTopic) in einer Richtlinie angeben, die den mqtt:publish Vorgang spezifiziert.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Ressourcen zu ermöglichen. Sie können den * Platzhalter nicht verwenden, um partielle Ressourcenbezeichner abzugleichen. Sie können beispielsweise angeben"resources": "*", aber nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

(Optional) Eine Beschreibung für diese Richtlinienerklärung.

certificates

(Optional) Die Optionen zur Zertifikatskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

serverCertificateValiditySeconds

(Optional) Die Zeitspanne (in Sekunden), nach der das lokale MQTT-Serverzertifikat abläuft. Sie können diese Option konfigurieren, um anzupassen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und erneut herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor dessen Ablauf. Der MQTT-Broker, z. B. die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle mit diesem Kerngerät verbundenen Client-Geräte getrennt. Client-Geräte können sich nach kurzer Zeit wieder mit dem Kerngerät verbinden.

Standard: 604800 (7 Tage)

Mindestwert: 172800 (2 Tage)

Höchstwert: 864000 (10 Tage)

performance

(Optional) Die Leistungskonfigurationsoptionen für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

maxActiveAuthTokens

(Optional) Die maximale Anzahl aktiver Autorisierungstoken für Clientgeräte. Sie können diese Zahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem Single-Core-Gerät herstellen kann, ohne sie erneut zu authentifizieren.

Standard: 2500

cloudRequestQueueSize

(Optional) Die maximale Anzahl von AWS Cloud Anfragen, die in die Warteschlange gestellt werden, bevor diese Komponente Anfragen ablehnt.

Standard: 100

maxConcurrentCloudRequests

(Optional) Die maximale Anzahl gleichzeitiger Anfragen, die an den gesendet werden sollen. AWS Cloud Sie können diese Zahl erhöhen, um die Authentifizierungsleistung auf Kerngeräten zu verbessern, an die Sie eine große Anzahl von Client-Geräten anschließen.

Standard: 1

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer restriktiven Richtlinie)

Die folgende Beispielkonfiguration gibt an, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen können, und publish/subscribe zwar MyClientDevice zu allen Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen können, und zwar zu allen publish/subscribe Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.1.x
deviceGroups

Gerätegruppen sind Gruppen von Client-Geräten, die berechtigt sind, eine Verbindung zu einem Kerngerät herzustellen und mit diesem zu kommunizieren. Verwenden Sie Auswahlregeln, um Gruppen von Client-Geräten zu identifizieren, und definieren Sie Autorisierungsrichtlinien für Clientgeräte, die die Berechtigungen für jede Gerätegruppe festlegen.

Dieses Objekt enthält die folgenden Informationen:

formatVersion

Die Formatversion für dieses Konfigurationsobjekt.

Wählen Sie aus den folgenden Optionen aus:

  • 2021-03-05

definitions

Die Gerätegruppen für dieses Kerngerät. Jede Definition gibt eine Auswahlregel an, mit der bewertet wird, ob ein Client-Gerät Mitglied der Gruppe ist. Jede Definition gibt auch die Berechtigungsrichtlinie an, die auf Client-Geräte angewendet werden soll, die der Auswahlregel entsprechen. Wenn ein Client-Gerät Mitglied mehrerer Gerätegruppen ist, setzen sich die Berechtigungen des Geräts aus den Berechtigungsrichtlinien der einzelnen Gruppen zusammen.

Dieses Objekt enthält die folgenden Informationen:

groupNameKey

Der Name dieser Gerätegruppe. groupNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Gerätegruppe zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

selectionRule

Die Abfrage, die angibt, welche Client-Geräte Mitglieder dieser Gerätegruppe sind. Wenn ein Client-Gerät eine Verbindung herstellt, wertet das Kerngerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät zu dieser Gerätegruppe gehört. Wenn das Client-Gerät ein Mitglied ist, verwendet das Kerngerät die Richtlinie dieser Gerätegruppe, um die Aktionen des Client-Geräts zu autorisieren.

Jede Auswahlregel umfasst mindestens eine Auswahlregelklausel, bei der es sich um eine einzelne Ausdrucksabfrage handelt, die mit Client-Geräten übereinstimmen kann. Auswahlregeln verwenden dieselbe Abfragesyntax wie die AWS IoT Flottenindizierung. Weitere Informationen zur Syntax von Auswahlregeln finden Sie unter Abfragesyntax für die AWS IoT Flottenindizierung im AWS IoT Core Entwicklerhandbuch.

Verwenden Sie den * Platzhalter, um mehreren Client-Geräten eine Auswahlregelklausel zuzuordnen. Sie können diesen Platzhalter am Ende des Dingnamens verwenden, um nach Client-Geräten zu suchen, deren Namen mit einer von Ihnen angegebenen Zeichenfolge beginnen. Sie können diesen Platzhalter auch verwenden, um alle Client-Geräte abzugleichen.

Anmerkung

Um einen Wert auszuwählen, der einen Doppelpunkt (:) enthält, maskieren Sie den Doppelpunkt durch einen umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie Backslash-Zeichen maskieren, also geben Sie zwei umgekehrte Schrägstriche vor dem Doppelpunkt ein. Geben Sie beispielsweise an, dass ein Objekt ausgewählt thingName: MyTeam\\\\:ClientDevice1 werden soll, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name eines Dings auf einem Client-Gerät. AWS IoT

Beispiel Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen MyClientDevice1 oder sindMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen mit MyClientDevice beginnen.

thingName: MyClientDevice*
Beispiel Beispiel für eine Auswahlregel (alle Geräte abgleichen)

Die folgende Auswahlregel gilt für alle Client-Geräte.

thingName: *
policyName

Die Berechtigungsrichtlinie, die für Client-Geräte in dieser Gerätegruppe gilt. Geben Sie den Namen einer Richtlinie an, die Sie im policies Objekt definieren.

policies

Die Autorisierungsrichtlinien für Clientgeräte für Clientgeräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, auf denen ein Client-Gerät diese Aktionen ausführen kann.

Dieses Objekt enthält die folgenden Informationen:

policyNameKey

Der Name dieser Autorisierungsrichtlinie. policyNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Autorisierungsrichtlinie zu identifizieren. Sie verwenden diesen Richtliniennamen, um zu definieren, welche Richtlinie für eine Gerätegruppe gilt.

Dieses Objekt enthält die folgenden Informationen:

statementNameKey

Der Name dieser Grundsatzerklärung. statementNameKeyErsetzen Sie ihn durch einen Namen, anhand dessen Sie diese Grundsatzerklärung leichter identifizieren können.

Dieses Objekt enthält die folgenden Informationen:

operations

Die Liste der Operationen, bei denen die Ressourcen in dieser Richtlinie berücksichtigt werden sollen.

Sie können jede der folgenden Operationen einbeziehen:

  • mqtt:connect— Erteilt die Erlaubnis, eine Verbindung zum Hauptgerät herzustellen. Client-Geräte müssen über diese Berechtigung verfügen, um eine Verbindung zu einem Kerngerät herzustellen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:clientId:deviceClientId— Beschränken Sie den Zugriff auf der Grundlage der Client-ID, die ein Client-Gerät verwendet, um eine Verbindung zum MQTT-Broker des Kerngeräts herzustellen. deviceClientIdErsetzen Sie es durch die zu verwendende Client-ID.

  • mqtt:publish— Erteilt die Erlaubnis, MQTT-Nachrichten zu Themen zu veröffentlichen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topic:mqttTopic— Beschränken Sie den Zugriff auf Grundlage des MQTT-Themas, bei dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetze es mqttTopic durch das zu verwendende Thema.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zu abonnieren, um Nachrichten zu empfangen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf Grundlage der MQTT-Themen, bei denen ein Client-Gerät Nachrichten abonnieren kann. mqttTopicFilterErsetzen Sie es durch den zu verwendenden Themenfilter.

      Diese Ressource unterstützt die Platzhalter für die Themen # MQTT + und MQTT. Weitere Informationen finden Sie unter den MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie beispielsweise zulassen, dass das Client-Gerät die mqtt:topicfilter:client/+/status Ressource abonniert, kann das Client-Gerät diese abonnieren, client/+/status aber nichtclient/client1/status.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Aktionen zu ermöglichen.

resources

Die Liste der Ressourcen, die für die Operationen in dieser Richtlinie erforderlich sind. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie können beispielsweise eine Liste von MQTT-Themenressourcen (mqtt:topic:mqttTopic) in einer Richtlinie angeben, die den mqtt:publish Vorgang spezifiziert.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Ressourcen zu ermöglichen. Sie können den * Platzhalter nicht verwenden, um partielle Ressourcenbezeichner abzugleichen. Sie können beispielsweise angeben"resources": "*", aber nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

(Optional) Eine Beschreibung für diese Richtlinienerklärung.

certificates

(Optional) Die Optionen zur Zertifikatskonfiguration für dieses Kerngerät. Dieses Objekt enthält die folgenden Informationen:

serverCertificateValiditySeconds

(Optional) Die Zeitspanne (in Sekunden), nach der das lokale MQTT-Serverzertifikat abläuft. Sie können diese Option konfigurieren, um anzupassen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und erneut herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor dessen Ablauf. Der MQTT-Broker, z. B. die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle mit diesem Kerngerät verbundenen Client-Geräte getrennt. Client-Geräte können sich nach kurzer Zeit wieder mit dem Kerngerät verbinden.

Standard: 604800 (7 Tage)

Mindestwert: 172800 (2 Tage)

Höchstwert: 864000 (10 Tage)

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer restriktiven Richtlinie)

Die folgende Beispielkonfiguration gibt an, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen können, und publish/subscribe zwar MyClientDevice zu allen Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen können, und zwar zu allen publish/subscribe Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.0.x
deviceGroups

Gerätegruppen sind Gruppen von Client-Geräten, die berechtigt sind, eine Verbindung zu einem Kerngerät herzustellen und mit diesem zu kommunizieren. Verwenden Sie Auswahlregeln, um Gruppen von Client-Geräten zu identifizieren, und definieren Sie Autorisierungsrichtlinien für Clientgeräte, die die Berechtigungen für jede Gerätegruppe festlegen.

Dieses Objekt enthält die folgenden Informationen:

formatVersion

Die Formatversion für dieses Konfigurationsobjekt.

Wählen Sie aus den folgenden Optionen aus:

  • 2021-03-05

definitions

Die Gerätegruppen für dieses Kerngerät. Jede Definition gibt eine Auswahlregel an, mit der bewertet wird, ob ein Client-Gerät Mitglied der Gruppe ist. Jede Definition gibt auch die Berechtigungsrichtlinie an, die auf Client-Geräte angewendet werden soll, die der Auswahlregel entsprechen. Wenn ein Client-Gerät Mitglied mehrerer Gerätegruppen ist, setzen sich die Berechtigungen des Geräts aus den Berechtigungsrichtlinien der einzelnen Gruppen zusammen.

Dieses Objekt enthält die folgenden Informationen:

groupNameKey

Der Name dieser Gerätegruppe. groupNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Gerätegruppe zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

selectionRule

Die Abfrage, die angibt, welche Client-Geräte Mitglieder dieser Gerätegruppe sind. Wenn ein Client-Gerät eine Verbindung herstellt, wertet das Kerngerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät zu dieser Gerätegruppe gehört. Wenn das Client-Gerät ein Mitglied ist, verwendet das Kerngerät die Richtlinie dieser Gerätegruppe, um die Aktionen des Client-Geräts zu autorisieren.

Jede Auswahlregel umfasst mindestens eine Auswahlregelklausel, bei der es sich um eine einzelne Ausdrucksabfrage handelt, die mit Client-Geräten übereinstimmen kann. Auswahlregeln verwenden dieselbe Abfragesyntax wie die AWS IoT Flottenindizierung. Weitere Informationen zur Syntax von Auswahlregeln finden Sie unter Abfragesyntax für die AWS IoT Flottenindizierung im AWS IoT Core Entwicklerhandbuch.

Verwenden Sie den * Platzhalter, um mehreren Client-Geräten eine Auswahlregelklausel zuzuordnen. Sie können diesen Platzhalter am Ende des Dingnamens verwenden, um nach Client-Geräten zu suchen, deren Namen mit einer von Ihnen angegebenen Zeichenfolge beginnen. Sie können diesen Platzhalter auch verwenden, um alle Client-Geräte abzugleichen.

Anmerkung

Um einen Wert auszuwählen, der einen Doppelpunkt (:) enthält, maskieren Sie den Doppelpunkt durch einen umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie Backslash-Zeichen maskieren, also geben Sie zwei umgekehrte Schrägstriche vor dem Doppelpunkt ein. Geben Sie beispielsweise an, dass ein Objekt ausgewählt thingName: MyTeam\\\\:ClientDevice1 werden soll, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name eines Dings auf einem Client-Gerät. AWS IoT

Beispiel Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen MyClientDevice1 oder sindMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Beispiel Beispiel für eine Auswahlregel (verwenden Sie Platzhalter)

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen mit MyClientDevice beginnen.

thingName: MyClientDevice*
Beispiel Beispiel für eine Auswahlregel (alle Geräte abgleichen)

Die folgende Auswahlregel gilt für alle Client-Geräte.

thingName: *
policyName

Die Berechtigungsrichtlinie, die für Client-Geräte in dieser Gerätegruppe gilt. Geben Sie den Namen einer Richtlinie an, die Sie im policies Objekt definieren.

policies

Die Autorisierungsrichtlinien für Clientgeräte für Clientgeräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, auf denen ein Client-Gerät diese Aktionen ausführen kann.

Dieses Objekt enthält die folgenden Informationen:

policyNameKey

Der Name dieser Autorisierungsrichtlinie. policyNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Autorisierungsrichtlinie zu identifizieren. Sie verwenden diesen Richtliniennamen, um zu definieren, welche Richtlinie für eine Gerätegruppe gilt.

Dieses Objekt enthält die folgenden Informationen:

statementNameKey

Der Name dieser Grundsatzerklärung. statementNameKeyErsetzen Sie ihn durch einen Namen, anhand dessen Sie diese Grundsatzerklärung leichter identifizieren können.

Dieses Objekt enthält die folgenden Informationen:

operations

Die Liste der Operationen, bei denen die Ressourcen in dieser Richtlinie berücksichtigt werden sollen.

Sie können jede der folgenden Operationen einbeziehen:

  • mqtt:connect— Erteilt die Erlaubnis, eine Verbindung zum Hauptgerät herzustellen. Client-Geräte müssen über diese Berechtigung verfügen, um eine Verbindung zu einem Kerngerät herzustellen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:clientId:deviceClientId— Beschränken Sie den Zugriff auf der Grundlage der Client-ID, die ein Client-Gerät verwendet, um eine Verbindung zum MQTT-Broker des Kerngeräts herzustellen. deviceClientIdErsetzen Sie es durch die zu verwendende Client-ID.

  • mqtt:publish— Erteilt die Erlaubnis, MQTT-Nachrichten zu Themen zu veröffentlichen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topic:mqttTopic— Beschränken Sie den Zugriff auf Grundlage des MQTT-Themas, bei dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetze es mqttTopic durch das zu verwendende Thema.

      Diese Ressource unterstützt keine Platzhalter für MQTT-Themen.

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zu abonnieren, um Nachrichten zu empfangen.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf Grundlage der MQTT-Themen, bei denen ein Client-Gerät Nachrichten abonnieren kann. mqttTopicFilterErsetzen Sie es durch den zu verwendenden Themenfilter.

      Diese Ressource unterstützt die Platzhalter für die Themen # MQTT + und MQTT. Weitere Informationen finden Sie unter den MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie beispielsweise zulassen, dass das Client-Gerät die mqtt:topicfilter:client/+/status Ressource abonniert, kann das Client-Gerät diese abonnieren, client/+/status aber nichtclient/client1/status.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Aktionen zu ermöglichen.

resources

Die Liste der Ressourcen, die für die Operationen in dieser Richtlinie erforderlich sind. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie können beispielsweise eine Liste von MQTT-Themenressourcen (mqtt:topic:mqttTopic) in einer Richtlinie angeben, die den mqtt:publish Vorgang spezifiziert.

Sie können den * Platzhalter angeben, um den Zugriff auf alle Ressourcen zu ermöglichen. Sie können den * Platzhalter nicht verwenden, um partielle Ressourcenbezeichner abzugleichen. Sie können beispielsweise angeben"resources": "*", aber nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

(Optional) Eine Beschreibung für diese Richtlinienerklärung.

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer restriktiven Richtlinie)

Die folgende Beispielkonfiguration gibt an, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen können, und publish/subscribe zwar MyClientDevice zu allen Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen können, und zwar zu allen publish/subscribe Themen.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }

Lokale Logdatei

Diese Komponente verwendet dieselbe Protokolldatei wie die Greengrass Nucleus-Komponente.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
Um die Protokolle dieser Komponente einzusehen
  • Führen Sie den folgenden Befehl auf dem Kerngerät aus, um die Protokolldatei dieser Komponente in Echtzeit anzuzeigen. Ersetzen Sie /greengrass/v2 oder C:\greengrass\v2 durch den Pfad zum AWS IoT Greengrass Stammordner.

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.

Version

Änderungen

2.5.7

Aktualisiert die Komponentenversion für die Greengrass Nucleus-Version 2.18.0.

2.5.6

Aktualisiert die Komponentenversion für die Greengrass Nucleus-Version 2.17.0.

2.5.5

Die Version wurde für die Greengrass Nucleus-Version 2.16.0 aktualisiert.

2.5.4

Die Version wurde für die Greengrass Nucleus-Version 2.15.0 aktualisiert.

2.5.3

Fehlerbehebungen und Verbesserungen
  • Behebt ein Problem, bei dem Client-Geräte aufgrund veralteter Client-Zertifikate keine Verbindung zum Kerngerät herstellen können.

2.5.2

Die Version wurde für die Greengrass Nucleus-Version 2.14.0 aktualisiert.

2.5.1

Fehlerbehebungen und Verbesserungen
  • Unterstützt den FIPS-Endpunkt.

2.5.0

Neue Features
  • Ermöglicht die ${iot:Connection.Thing.ThingName} variable Substitution von politischen Ressourcen.

  • Erlaubt Richtlinienressourcen mit Platzhaltern wie. mqtt:topic:my*

2.4.5

Neue Features

Integriert die Unterstützung für Platzhalterpräfixe für die Auswahl von Dingnamen mit dem Parameter. selectionRule

Fehlerbehebungen und Verbesserungen

Behebt ein Problem, bei dem Zertifikate in bestimmten Fällen nicht mit neuen Konnektivitätsinformationen aktualisiert werden.

2.4.4

Die Version wurde für die Greengrass Nucleus-Version 2.12.0 aktualisiert.

2.4.3

Die Version wurde für die Greengrass Nucleus-Version 2.11.0 aktualisiert.

2.4.2

Neue Features

Fügt eine neue startupTimeoutSeconds Konfigurationsoption hinzu.

2.4.1

Die Version wurde für die Greengrass Nucleus-Version 2.10.0 aktualisiert.

2.4.0

Neue Features
  • Fügt Unterstützung für die Client-Geräteauthentifizierung hinzu, um Betriebsmetriken auszugeben, die vom Telemetrie-Agenten veröffentlicht werden.

Fehlerbehebungen und Verbesserungen
  • Behebt ein Problem, bei dem die Authentifizierung des Client-Geräts mehr als 10 Sekunden benötigt, um die Identität eines Client-Geräts zu überprüfen.

  • Weitere kleinere Korrekturen und Verbesserungen.

2.3.2

Fehlerbehebungen und Verbesserungen
  • Integriert die Unterstützung für das Zwischenspeichern von Hostnameninformationen, sodass die Komponente beim Neustart im Offlinemodus die Zertifikatssubjekte korrekt generiert.

2.3.1

Fehlerbehebungen und Verbesserungen
  • Behebt ein Speicherleck.

2.3.0

Warnung

Diese Version ist nicht mehr verfügbar. Die Verbesserungen in dieser Version sind in späteren Versionen dieser Komponente verfügbar.

Neue Features

  • Integriert die Unterstützung für die Offline-Authentifizierung von Client-Geräten, sodass diese weiterhin eine Verbindung zum Hauptgerät herstellen können, wenn das Hauptgerät nicht mit dem Internet verbunden ist.

  • Integriert die Unterstützung für eine vom Kunden bereitgestellte Zertifizierungsstelle, die das Kerngerät als Stammzertifikat zum Generieren von MQTT-Brokerzertifikaten verwendet.

2.2.3

Die Version wurde für die Greengrass Nucleus-Version 2.8.0 aktualisiert.

2.2.2

Fehlerbehebungen und Verbesserungen
  • Behebt ein Problem, bei dem das lokale MQTT-Serverzertifikat in bestimmten Szenarien häufiger als beabsichtigt rotiert.

2.2.1

Die Version wurde für die Greengrass Nucleus-Version 2.7.0 aktualisiert.

2.2.0

Neue Features
  • Integriert die Unterstützung für benutzerdefinierte Komponenten zum Aufrufen von IPC-Vorgängen (Interprocess Communication) zur Authentifizierung und Autorisierung von Client-Geräten. Sie können diese Operationen beispielsweise in einer benutzerdefinierten MQTT-Broker-Komponente verwenden. Weitere Informationen finden Sie unter IPC: Client-Geräte authentifizieren und autorisieren.

  • Fügt die threadPoolSize Optionen maxActiveAuthTokenscloudQueueSize, und hinzu, die Sie konfigurieren können, um die Leistung dieser Komponente zu optimieren.

2.1.0

Neue Features
  • Fügt die serverCertificateValiditySeconds Option hinzu, die Sie so konfigurieren können, dass sie angepasst werden kann, wenn das MQTT-Broker-Serverzertifikat abläuft. Sie können das Serverzertifikat so konfigurieren, dass es nach 2 bis 10 Tagen abläuft.

Fehlerbehebungen und Verbesserungen
  • Behebt Probleme mit der Art und Weise, wie diese Komponente Aktualisierungen zum Zurücksetzen der Konfiguration verarbeitet.

  • Behebt ein Problem, bei dem das lokale MQTT-Serverzertifikat in bestimmten Szenarien häufiger rotiert als beabsichtigt.

    Um diesen Fix anzuwenden, müssen Sie auch Version 2.1.0 oder höher der Moquette MQTT-Broker-Komponente verwenden.

  • Verbessert die Meldungen, die diese Komponente protokolliert, wenn sie Zertifikate rotiert.

  • Die Version wurde für die Greengrass Nucleus-Version 2.6.0 aktualisiert.

2.0.4

Die Version wurde für die Greengrass Nucleus-Version 2.5.0 aktualisiert.

2.0.3

Fehlerbehebungen und Verbesserungen
  • Die Anmeldeinformationen werden jetzt aktualisiert, wenn Sie den privaten Schlüssel des Kerngeräts wechseln.

  • Aktualisierungen, um Protokollmeldungen übersichtlicher zu machen.

2.0.2

Die Version wurde für die Greengrass Nucleus-Version 2.4.0 aktualisiert.

2.0.1

Die Version wurde für die Greengrass Nucleus-Version 2.3.0 aktualisiert.

2.0.0

Erste Version