Authentifizierung auf Client-Geräten - AWS IoT Greengrass

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

Authentifizierung auf Client-Geräten

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 mit lokalen IoT-Geräten.

Versionen

Anmerkung

Version 2.3.0 für die Client-Geräteauthentifizierung 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.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-Kern führt diese Komponente in derselben Java Virtual Machine (JVM) wie der Nucleus aus. Der Nucleus wird neu gestartet, wenn Sie die Version dieser Komponente auf dem Kerngerät ändern.

Diese Komponente verwendet dieselbe Protokolldatei wie der Greengrass-Kern. Weitere Informationen finden Sie unter Überwachen von AWS IoT Greengrass Protokollen.

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 Ihrer zugeordnet sein AWS-Konto und die iot:DescribeCertificate Genehmigung zulassen.

  • Die AWS IoT Richtlinie des Kerngerä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 beinhalten:

      • $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 beinhalten:

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

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

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

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

    • greengrass:ListClientDevicesAssociatedWithCoreDeviceum es dem Kerngerät zu ermöglichen, Clients für die Offline-Authentifizierung aufzulisten.

  • Die Authentifizierungskomponente für Clientgeräte wird für die Ausführung 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 Konnektivität zu AWS IoT data, AWS IoT Anmeldeinformationen 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 Zulassen von Gerätedatenverkehr über einen Proxy oder eine Firewall.

Endpunkt Port Erforderlich Beschreibung

iot.region.amazonaws.com

443 Ja

Wird verwendet, um Informationen über AWS IoT Ding-Zertifikate abzurufen.

Abhängigkeiten

Wenn Sie eine Komponente bereitstellen, stellt sie AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereit. Das bedeutet, dass Sie die Anforderungen für die Komponente und all ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitstellen zu können. 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 auch die Abhängigkeiten für jede Version der Komponente in der AWS IoT Greengrass Konsole anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der Liste der Abhängigkeiten.

2.4.4

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

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=2.6.0 <2.10.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 Art der Abhängigkeit
Grüngraskern >=2.6.0 <2.10.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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=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 Art der Abhängigkeit
Grüngraskern >=2.2.0 <2.3.0 Weich

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Referenz zu den Komponentenrezepten.

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-Abonnementanfrage an den lokalen MQTT-Broker ausgewertet. Wenn die bestehende Abonnementberechtigung des Kunden widerrufen wird, kann der Client ein Thema nicht mehr abonnieren. Er wird jedoch weiterhin Nachrichten zu Themen empfangen, die zuvor abonniert wurden. Um dieses Verhalten zu verhindern, sollte der lokale MQTT-Broker nach dem Widerruf der Abonnementberechtigung neu gestartet werden, um die erneute Autorisierung von Clients zu erzwingen.

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

Die MQTT 3.1.1-Broker-Komponente (Moquette) wird standardmäßig wöchentlich neu gestartet, wenn sich das Serverzertifikat ändert, was die Clients zur erneuten Autorisierung zwingt. Sie können einen Neustart erzwingen, indem Sie entweder die Konnektivitätsinformationen (IP-Adressen) des Kerngeräts ändern oder indem Sie eine Einrichtung vornehmen, um die Broker-Komponente zu entfernen und sie später erneut bereitzustellen.

v2.5.0
deviceGroups

Gerätegruppen sind Gruppen von Clientgerä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 Client-Geräte, die die Berechtigungen für jede Gerätegruppe spezifizieren.

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 Core-Gerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät Mitglied dieser Gerätegruppe ist. Wenn das Client-Gerät 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 Abfrage mit einem einzelnen Ausdruck handelt, die auf Client-Geräte zutreffen 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 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 mit einem umgekehrten Schrägstrich (). \ In Formaten wie JSON müssen Sie umgekehrte Schrägstriche maskieren, sodass Sie vor dem Doppelpunkt zwei umgekehrte Schrägstriche eingeben. Geben Sie beispielsweise an, dass Sie ein Ding auswählen thingName: MyTeam\\:ClientDevice1 möchten, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name des Dings eines Client-Geräts. AWS IoT

Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten mit dem Namen MyClientDevice1 oderMyClientDevice2.

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

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

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

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen auf endenMyClientDevice.

thingName: *MyClientDevice
Beispiel für eine Auswahlregel (entspricht allen Geräten)

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 Client-Geräte für Client-Geräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, über die 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, anhand dessen Sie diese Autorisierungsrichtlinie leichter identifizieren können. 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 Richtlinienerklä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 Vorgänge, 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 Kerngerä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. Durch die deviceClientIdzu verwendende Client-ID ersetzen.

  • 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 der Grundlage des MQTT-Themas, in dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetzen Sie MQTTTopic durch das zu verwendende Thema.

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

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zum Empfangen von Nachrichten zu abonnieren.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf der 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 + und # MQTT-Themen-Platzhalter. Weitere Informationen finden Sie unter MQTT-Themen im Developer Guide.AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie dem Client-Gerät beispielsweise erlauben, die mqtt:topicfilter:client/+/status Ressource zu abonnieren, kann das Client-Gerät client/+/status zwar abonnieren, 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 zugelassen werden sollen. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie könnten 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 ergibt den 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 Richtlinienerklärung.

certificates

(Optional) Die Zertifikatkonfigurationsoptionen 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 festzulegen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und wieder herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor seinem Ablauf. Der MQTT-Broker, wie 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 nach kurzer Zeit wieder eine Verbindung zum Kerngerät herstellen.

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 Client-Geräte. Sie können diese Anzahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem Single-Core-Gerät herstellen kann, ohne sie erneut authentifizieren zu müssen.

Standard: 2500

cloudRequestQueueSize

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

Standard: 100

maxConcurrentCloudRequests

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

Standard: 1

certificateAuthority

(Optional) Konfigurationsoptionen für Zertifizierungsstellen, um die zwischengeschaltete Zertifizierungsstelle 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 Zertifizierungsstelle verwenden, um Client-Gerätezertifikate auszustellen, umgeht Greengrass Autorisierungsrichtlinienprüfungen für MQTT-Operationen auf Client-Geräten. Die Authentifizierungskomponente für das Client-Gerät vertraut voll und ganz auf Clients, die Zertifikate verwenden, die von der Zertifizierungsstelle 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 Zertifizierungsstelle oder Zwischenzertifizierungsstelle verwenden, und passen Sie dann die certificateChainUri Felder certificateUri und so an, dass sie auf die richtige Zwischenzertifizierungsstelle verweisen.

Dieses Objekt enthält die folgenden Informationen.

Uri des Zertifikats

Der Speicherort des Zertifikats. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Speicherort der Zertifikatskette für die CA des Kerngeräts. Dies sollte die komplette Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

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

security

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

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, während der die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert lautet 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 Authentifizierung auf dem Client-Gerät keine Metriken.

Standard: false

aggregatePeriodSeconds

Der Aggregationszeitraum in Sekunden, der bestimmt, wie oft die Authentifizierung auf dem Client-Gerät Messwerte aggregiert und an den Telemetrieagenten sendet. Dies ändert nichts daran, wie oft Metriken veröffentlicht werden, da der Telemetrieagent sie immer noch einmal täglich veröffentlicht.

Standard: 3600

startupTimeoutSeconds

(Optional) Die maximale Zeit in Sekunden für den Start der Komponente. Der Status der Komponente ändert sich auf, BROKEN wenn dieser Timeout überschritten wird.

Standard: 120

Beispiel: Aktualisierung der Zusammenführung von Konfigurationen (unter Verwendung einer restriktiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen und Informationen MyClientDevice zu allen Themen veröffentlichen/abonnieren dürfen.

{ "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: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen und Informationen zu allen Themen veröffentlichen/abonnieren können.

{ "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: Aktualisierung zur Zusammenführung von Konfigurationen (unter Verwendung einer Richtlinie für einen Dingnamen)

Die folgende Beispielkonfiguration ermöglicht es Client-Geräten, Beiträge zu Themen zu veröffentlichen, die mit dem Ding-Namen 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 Clientgerä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 Client-Geräte, die die Berechtigungen für jede Gerätegruppe spezifizieren.

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 Core-Gerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät Mitglied dieser Gerätegruppe ist. Wenn das Client-Gerät 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 Abfrage mit einem einzelnen Ausdruck handelt, die auf Client-Geräte zutreffen 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 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 mit einem umgekehrten Schrägstrich (). \ In Formaten wie JSON müssen Sie umgekehrte Schrägstriche maskieren, sodass Sie vor dem Doppelpunkt zwei umgekehrte Schrägstriche eingeben. Geben Sie beispielsweise an, dass Sie ein Ding auswählen thingName: MyTeam\\:ClientDevice1 möchten, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name des Dings eines Client-Geräts. AWS IoT

Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten mit dem Namen MyClientDevice1 oderMyClientDevice2.

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

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

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

Die folgende Auswahlregel entspricht Client-Geräten, deren Namen auf endenMyClientDevice.

thingName: *MyClientDevice
Beispiel für eine Auswahlregel (entspricht allen Geräten)

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 Client-Geräte für Client-Geräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, über die 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, anhand dessen Sie diese Autorisierungsrichtlinie leichter identifizieren können. 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 Richtlinienerklä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 Vorgänge, 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 Kerngerä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. Durch die deviceClientIdzu verwendende Client-ID ersetzen.

  • 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 der Grundlage des MQTT-Themas, in dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetzen Sie MQTTTopic durch das zu verwendende Thema.

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

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zum Empfangen von Nachrichten zu abonnieren.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf der 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 + und # MQTT-Themen-Platzhalter. Weitere Informationen finden Sie unter MQTT-Themen im Developer Guide.AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie dem Client-Gerät beispielsweise erlauben, die mqtt:topicfilter:client/+/status Ressource zu abonnieren, kann das Client-Gerät client/+/status zwar abonnieren, 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 zugelassen werden sollen. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie könnten 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 unvollständige Ressourcen-IDs abzugleichen. Sie können beispielsweise angeben"resources": "*", aber Sie können nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

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

certificates

(Optional) Die Zertifikatkonfigurationsoptionen 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 festzulegen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und wieder herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor seinem Ablauf. Der MQTT-Broker, wie 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 nach kurzer Zeit wieder eine Verbindung zum Kerngerät herstellen.

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 Client-Geräte. Sie können diese Anzahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem Single-Core-Gerät herstellen kann, ohne sie erneut authentifizieren zu müssen.

Standard: 2500

cloudRequestQueueSize

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

Standard: 100

maxConcurrentCloudRequests

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

Standard: 1

certificateAuthority

(Optional) Konfigurationsoptionen für Zertifizierungsstellen, um die zwischengeschaltete Zertifizierungsstelle 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 Zertifizierungsstelle verwenden, um Client-Gerätezertifikate auszustellen, umgeht Greengrass Autorisierungsrichtlinienprüfungen für MQTT-Operationen auf Client-Geräten. Die Authentifizierungskomponente für das Client-Gerät vertraut voll und ganz auf Clients, die Zertifikate verwenden, die von der Zertifizierungsstelle 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 Zertifizierungsstelle oder Zwischenzertifizierungsstelle verwenden, und passen Sie dann die certificateChainUri Felder certificateUri und so an, dass sie auf die richtige Zwischenzertifizierungsstelle verweisen.

Dieses Objekt enthält die folgenden Informationen.

Uri des Zertifikats

Der Speicherort des Zertifikats. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Speicherort der Zertifikatskette für die CA des Kerngeräts. Dies sollte die komplette Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

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

security

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

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, während der die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert lautet 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 Authentifizierung auf dem Client-Gerät keine Metriken.

Standard: false

aggregatePeriodSeconds

Der Aggregationszeitraum in Sekunden, der bestimmt, wie oft die Authentifizierung auf dem Client-Gerät Messwerte aggregiert und an den Telemetrieagenten sendet. Dies ändert nichts daran, wie oft Metriken veröffentlicht werden, da der Telemetrieagent sie immer noch einmal täglich veröffentlicht.

Standard: 3600

startupTimeoutSeconds

(Optional) Die maximale Zeit in Sekunden für den Start der Komponente. Der Status der Komponente ändert sich auf, BROKEN wenn dieser Timeout überschritten wird.

Standard: 120

Beispiel: Aktualisierung der Zusammenführung von Konfigurationen (unter Verwendung einer restriktiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen und Informationen MyClientDevice zu allen Themen veröffentlichen/abonnieren dürfen.

{ "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: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen und Informationen zu allen Themen veröffentlichen/abonnieren können.

{ "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 Client-Geräte, die die Berechtigungen für jede Gerätegruppe spezifizieren.

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 Core-Gerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät Mitglied dieser Gerätegruppe ist. Wenn das Client-Gerät 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 Abfrage mit einem einzelnen Ausdruck handelt, die auf Client-Geräte zutreffen 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 mit einem umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie umgekehrte Schrägstriche maskieren, sodass Sie vor dem Doppelpunkt zwei umgekehrte Schrägstriche eingeben. Geben Sie beispielsweise an, dass Sie ein Ding auswählen thingName: MyTeam\\\\:ClientDevice1 möchten, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name des Dings eines Client-Geräts. AWS IoT

Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten mit dem Namen MyClientDevice1 oderMyClientDevice2.

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

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

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

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 Client-Geräte für Client-Geräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, über die 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, anhand dessen Sie diese Autorisierungsrichtlinie leichter identifizieren können. 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 Richtlinienerklä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 Vorgänge, 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 Kerngerä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. Durch die deviceClientIdzu verwendende Client-ID ersetzen.

  • 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 der Grundlage des MQTT-Themas, in dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetzen Sie MQTTTopic durch das zu verwendende Thema.

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

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zum Empfangen von Nachrichten zu abonnieren.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf der 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 + und # MQTT-Themen-Platzhalter. Weitere Informationen finden Sie unter MQTT-Themen im Developer Guide.AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie dem Client-Gerät beispielsweise erlauben, die mqtt:topicfilter:client/+/status Ressource zu abonnieren, kann das Client-Gerät client/+/status zwar abonnieren, 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 zugelassen werden sollen. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie könnten 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 unvollständige Ressourcen-IDs abzugleichen. Sie können beispielsweise angeben"resources": "*", aber Sie können nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

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

certificates

(Optional) Die Zertifikatkonfigurationsoptionen 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 festzulegen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und wieder herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor seinem Ablauf. Der MQTT-Broker, wie 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 nach kurzer Zeit wieder eine Verbindung zum Kerngerät herstellen.

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 Client-Geräte. Sie können diese Anzahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem Single-Core-Gerät herstellen kann, ohne sie erneut authentifizieren zu müssen.

Standard: 2500

cloudRequestQueueSize

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

Standard: 100

maxConcurrentCloudRequests

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

Standard: 1

certificateAuthority

(Optional) Konfigurationsoptionen für Zertifizierungsstellen, um die zwischengeschaltete Zertifizierungsstelle 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 Zertifizierungsstelle verwenden, um Client-Gerätezertifikate auszustellen, umgeht Greengrass Autorisierungsrichtlinienprüfungen für MQTT-Operationen auf Client-Geräten. Die Authentifizierungskomponente für das Client-Gerät vertraut voll und ganz auf Clients, die Zertifikate verwenden, die von der Zertifizierungsstelle 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 Zertifizierungsstelle oder Zwischenzertifizierungsstelle verwenden, und passen Sie dann die certificateChainUri Felder certificateUri und so an, dass sie auf die richtige Zwischenzertifizierungsstelle verweisen.

Dieses Objekt enthält die folgenden Informationen.

Uri des Zertifikats

Der Speicherort des Zertifikats. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Speicherort der Zertifikatskette für die CA des Kerngeräts. Dies sollte die komplette Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

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

security

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

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, während der die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert lautet 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 Authentifizierung auf dem Client-Gerät keine Metriken.

Standard: false

aggregatePeriodSeconds

Der Aggregationszeitraum in Sekunden, der bestimmt, wie oft die Authentifizierung auf dem Client-Gerät Messwerte aggregiert und an den Telemetrieagenten sendet. Dies ändert nichts daran, wie oft Metriken veröffentlicht werden, da der Telemetrieagent sie immer noch einmal täglich veröffentlicht.

Standard: 3600

startupTimeoutSeconds

(Optional) Die maximale Zeit in Sekunden für den Start der Komponente. Der Status der Komponente ändert sich auf, BROKEN wenn dieser Timeout überschritten wird.

Standard: 120

Beispiel: Aktualisierung der Zusammenführung von Konfigurationen (unter Verwendung einer restriktiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen und Informationen MyClientDevice zu allen Themen veröffentlichen/abonnieren dürfen.

{ "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: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen und Informationen zu allen Themen veröffentlichen/abonnieren können.

{ "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 Client-Geräte, die die Berechtigungen für jede Gerätegruppe spezifizieren.

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 Core-Gerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät Mitglied dieser Gerätegruppe ist. Wenn das Client-Gerät 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 Abfrage mit einem einzelnen Ausdruck handelt, die auf Client-Geräte zutreffen 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 mit einem umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie umgekehrte Schrägstriche maskieren, sodass Sie vor dem Doppelpunkt zwei umgekehrte Schrägstriche eingeben. Geben Sie beispielsweise an, dass Sie ein Ding auswählen thingName: MyTeam\\\\:ClientDevice1 möchten, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name des Dings eines Client-Geräts. AWS IoT

Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten mit dem Namen MyClientDevice1 oderMyClientDevice2.

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

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

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

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 Client-Geräte für Client-Geräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, über die 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, anhand dessen Sie diese Autorisierungsrichtlinie leichter identifizieren können. 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 Richtlinienerklä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 Vorgänge, 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 Kerngerä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. Durch die deviceClientIdzu verwendende Client-ID ersetzen.

  • 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 der Grundlage des MQTT-Themas, in dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetzen Sie MQTTTopic durch das zu verwendende Thema.

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

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zum Empfangen von Nachrichten zu abonnieren.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf der 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 + und # MQTT-Themen-Platzhalter. Weitere Informationen finden Sie unter MQTT-Themen im Developer Guide.AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie dem Client-Gerät beispielsweise erlauben, die mqtt:topicfilter:client/+/status Ressource zu abonnieren, kann das Client-Gerät client/+/status zwar abonnieren, 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 zugelassen werden sollen. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie könnten 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 unvollständige Ressourcen-IDs abzugleichen. Sie können beispielsweise angeben"resources": "*", aber Sie können nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

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

certificates

(Optional) Die Zertifikatkonfigurationsoptionen 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 festzulegen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und wieder herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor seinem Ablauf. Der MQTT-Broker, wie 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 nach kurzer Zeit wieder eine Verbindung zum Kerngerät herstellen.

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 Client-Geräte. Sie können diese Anzahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem Single-Core-Gerät herstellen kann, ohne sie erneut authentifizieren zu müssen.

Standard: 2500

cloudRequestQueueSize

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

Standard: 100

maxConcurrentCloudRequests

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

Standard: 1

certificateAuthority

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

Dieses Objekt enthält die folgenden Informationen:

Uri des Zertifikats

Der Speicherort des Zertifikats. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Speicherort der Zertifikatskette für die CA des Kerngeräts. Dies sollte die komplette Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

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

security

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

clientDeviceTrustDurationMinutes

Die Dauer in Minuten, während der die Authentifizierungsinformationen eines Client-Geräts als vertrauenswürdig eingestuft werden können, bevor eine erneute Authentifizierung beim Kerngerät erforderlich ist. Der Standardwert lautet 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 Authentifizierung auf dem Client-Gerät keine Metriken.

Standard: false

aggregatePeriodSeconds

Der Aggregationszeitraum in Sekunden, der bestimmt, wie oft die Authentifizierung auf dem Client-Gerät Messwerte aggregiert und an den Telemetrieagenten sendet. Dies ändert nichts daran, wie oft Metriken veröffentlicht werden, da der Telemetrieagent sie immer noch einmal täglich veröffentlicht.

Standard: 3600

Beispiel: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer restriktiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen und Informationen MyClientDevice zu allen Themen veröffentlichen/abonnieren dürfen.

{ "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: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen und Informationen zu allen Themen veröffentlichen/abonnieren können.

{ "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 Client-Geräte, die die Berechtigungen für jede Gerätegruppe spezifizieren.

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 Core-Gerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät Mitglied dieser Gerätegruppe ist. Wenn das Client-Gerät 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 Abfrage mit einem einzelnen Ausdruck handelt, die auf Client-Geräte zutreffen 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 mit einem umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie umgekehrte Schrägstriche maskieren, sodass Sie vor dem Doppelpunkt zwei umgekehrte Schrägstriche eingeben. Geben Sie beispielsweise an, dass Sie ein Ding auswählen thingName: MyTeam\\\\:ClientDevice1 möchten, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name des Dings eines Client-Geräts. AWS IoT

Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten mit dem Namen MyClientDevice1 oderMyClientDevice2.

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

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

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

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 Client-Geräte für Client-Geräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, über die 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, anhand dessen Sie diese Autorisierungsrichtlinie leichter identifizieren können. 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 Richtlinienerklä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 Vorgänge, 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 Kerngerä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. Durch die deviceClientIdzu verwendende Client-ID ersetzen.

  • 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 der Grundlage des MQTT-Themas, in dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetzen Sie MQTTTopic durch das zu verwendende Thema.

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

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zum Empfangen von Nachrichten zu abonnieren.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf der 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 + und # MQTT-Themen-Platzhalter. Weitere Informationen finden Sie unter MQTT-Themen im Developer Guide.AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie dem Client-Gerät beispielsweise erlauben, die mqtt:topicfilter:client/+/status Ressource zu abonnieren, kann das Client-Gerät client/+/status zwar abonnieren, 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 zugelassen werden sollen. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie könnten 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 unvollständige Ressourcen-IDs abzugleichen. Sie können beispielsweise angeben"resources": "*", aber Sie können nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

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

certificates

(Optional) Die Zertifikatkonfigurationsoptionen 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 festzulegen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und wieder herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor seinem Ablauf. Der MQTT-Broker, wie die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle Client-Geräte, die mit diesem Core-Gerät verbunden sind, getrennt. Client-Geräte können nach kurzer Zeit wieder eine Verbindung zum Kerngerät herstellen.

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 Client-Geräte. Sie können diese Anzahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem Single-Core-Gerät herstellen kann, ohne sie erneut authentifizieren zu müssen.

Standard: 2500

cloudRequestQueueSize

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

Standard: 100

maxConcurrentCloudRequests

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

Standard: 1

certificateAuthority

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

Uri des Zertifikats

Der Speicherort des Zertifikats. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf ein Zertifikat verweist, das in einem Hardware-Sicherheitsmodul gespeichert ist.

certificateChainUri

Der Speicherort der Zertifikatskette für die CA des Kerngeräts. Dies sollte die komplette Zertifikatskette bis zu Ihrer Stammzertifizierungsstelle sein. Dabei kann es sich um einen Dateisystem-URI oder einen URI handeln, der auf eine Zertifikatskette verweist, die in einem Hardware-Sicherheitsmodul gespeichert ist.

privateKeyUri

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

security

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

clientDeviceTrustDurationMinutes

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

Beispiel: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer restriktiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen und Informationen MyClientDevice zu allen Themen veröffentlichen/abonnieren dürfen.

{ "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: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen und Informationen zu allen Themen veröffentlichen/abonnieren können.

{ "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 Client-Geräte, die die Berechtigungen für jede Gerätegruppe spezifizieren.

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 Core-Gerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät Mitglied dieser Gerätegruppe ist. Wenn das Client-Gerät 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 Abfrage mit einem einzelnen Ausdruck handelt, die auf Client-Geräte zutreffen 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 mit einem umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie umgekehrte Schrägstriche maskieren, sodass Sie vor dem Doppelpunkt zwei umgekehrte Schrägstriche eingeben. Geben Sie beispielsweise an, dass Sie ein Ding auswählen thingName: MyTeam\\\\:ClientDevice1 möchten, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name des Dings eines Client-Geräts. AWS IoT

Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten mit dem Namen MyClientDevice1 oderMyClientDevice2.

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

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

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

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 Client-Geräte für Client-Geräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, über die 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, anhand dessen Sie diese Autorisierungsrichtlinie leichter identifizieren können. 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 Richtlinienerklä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 Vorgänge, 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 Kerngerä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. Durch die deviceClientIdzu verwendende Client-ID ersetzen.

  • 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 der Grundlage des MQTT-Themas, in dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetzen Sie MQTTTopic durch das zu verwendende Thema.

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

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zum Empfangen von Nachrichten zu abonnieren.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf der 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 + und # MQTT-Themen-Platzhalter. Weitere Informationen finden Sie unter MQTT-Themen im Developer Guide.AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie dem Client-Gerät beispielsweise erlauben, die mqtt:topicfilter:client/+/status Ressource zu abonnieren, kann das Client-Gerät client/+/status zwar abonnieren, 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 zugelassen werden sollen. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie könnten 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 unvollständige Ressourcen-IDs abzugleichen. Sie können beispielsweise angeben"resources": "*", aber Sie können nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

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

certificates

(Optional) Die Zertifikatkonfigurationsoptionen 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 festzulegen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und wieder herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor seinem Ablauf. Der MQTT-Broker, wie die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle Client-Geräte, die mit diesem Core-Gerät verbunden sind, getrennt. Client-Geräte können nach kurzer Zeit wieder eine Verbindung zum Kerngerät herstellen.

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 Client-Geräte. Sie können diese Anzahl erhöhen, damit eine größere Anzahl von Client-Geräten eine Verbindung zu einem Single-Core-Gerät herstellen kann, ohne sie erneut authentifizieren zu müssen.

Standard: 2500

cloudRequestQueueSize

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

Standard: 100

maxConcurrentCloudRequests

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

Standard: 1

Beispiel: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer restriktiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen und Informationen MyClientDevice zu allen Themen veröffentlichen/abonnieren dürfen.

{ "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: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen und Informationen zu allen Themen veröffentlichen/abonnieren können.

{ "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 Client-Geräte, die die Berechtigungen für jede Gerätegruppe spezifizieren.

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 Core-Gerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät Mitglied dieser Gerätegruppe ist. Wenn das Client-Gerät 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 Abfrage mit einem einzelnen Ausdruck handelt, die auf Client-Geräte zutreffen 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 mit einem umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie umgekehrte Schrägstriche maskieren, sodass Sie vor dem Doppelpunkt zwei umgekehrte Schrägstriche eingeben. Geben Sie beispielsweise an, dass Sie ein Ding auswählen thingName: MyTeam\\\\:ClientDevice1 möchten, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name des Dings eines Client-Geräts. AWS IoT

Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten mit dem Namen MyClientDevice1 oderMyClientDevice2.

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

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

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

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 Client-Geräte für Client-Geräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, über die 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, anhand dessen Sie diese Autorisierungsrichtlinie leichter identifizieren können. 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 Richtlinienerklä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 Vorgänge, 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 Kerngerä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. Durch die deviceClientIdzu verwendende Client-ID ersetzen.

  • 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 der Grundlage des MQTT-Themas, in dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetzen Sie MQTTTopic durch das zu verwendende Thema.

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

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zum Empfangen von Nachrichten zu abonnieren.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf der 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 + und # MQTT-Themen-Platzhalter. Weitere Informationen finden Sie unter MQTT-Themen im Developer Guide.AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie dem Client-Gerät beispielsweise erlauben, die mqtt:topicfilter:client/+/status Ressource zu abonnieren, kann das Client-Gerät client/+/status zwar abonnieren, 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 zugelassen werden sollen. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie könnten 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 unvollständige Ressourcen-IDs abzugleichen. Sie können beispielsweise angeben"resources": "*", aber Sie können nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

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

certificates

(Optional) Die Zertifikatkonfigurationsoptionen 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 festzulegen, wie oft Client-Geräte die Verbindung zum Kerngerät trennen und wieder herstellen.

Diese Komponente rotiert das lokale MQTT-Serverzertifikat 24 Stunden vor seinem Ablauf. Der MQTT-Broker, wie die Moquette MQTT-Broker-Komponente, generiert ein neues Zertifikat und startet neu. In diesem Fall werden alle Client-Geräte, die mit diesem Core-Gerät verbunden sind, getrennt. Client-Geräte können nach kurzer Zeit wieder eine Verbindung zum Kerngerät herstellen.

Standard: 604800 (7 Tage)

Mindestwert: 172800 (2 Tage)

Höchstwert: 864000 (10 Tage)

Beispiel: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer restriktiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen und Informationen MyClientDevice zu allen Themen veröffentlichen/abonnieren dürfen.

{ "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: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen und Informationen zu allen Themen veröffentlichen/abonnieren können.

{ "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 Client-Geräte, die die Berechtigungen für jede Gerätegruppe spezifizieren.

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 Core-Gerät diese Auswahlregel aus, um festzustellen, ob das Client-Gerät Mitglied dieser Gerätegruppe ist. Wenn das Client-Gerät 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 Abfrage mit einem einzelnen Ausdruck handelt, die auf Client-Geräte zutreffen 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 mit einem umgekehrten Schrägstrich (). \\ In Formaten wie JSON müssen Sie umgekehrte Schrägstriche maskieren, sodass Sie vor dem Doppelpunkt zwei umgekehrte Schrägstriche eingeben. Geben Sie beispielsweise an, dass Sie ein Ding auswählen thingName: MyTeam\\\\:ClientDevice1 möchten, dessen Name lautet. MyTeam:ClientDevice1

Sie können den folgenden Selektor angeben:

  • thingName— Der Name des Dings eines Client-Geräts. AWS IoT

Beispiel für eine Auswahlregel

Die folgende Auswahlregel entspricht Client-Geräten mit dem Namen MyClientDevice1 oderMyClientDevice2.

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

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

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

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 Client-Geräte für Client-Geräte, die eine Verbindung zum Kerngerät herstellen. Jede Autorisierungsrichtlinie spezifiziert eine Reihe von Aktionen und die Ressourcen, über die 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, anhand dessen Sie diese Autorisierungsrichtlinie leichter identifizieren können. 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 Richtlinienerklä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 Vorgänge, 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 Kerngerä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. Durch die deviceClientIdzu verwendende Client-ID ersetzen.

  • 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 der Grundlage des MQTT-Themas, in dem ein Client-Gerät eine Nachricht veröffentlicht. Ersetzen Sie MQTTTopic durch das zu verwendende Thema.

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

  • mqtt:subscribe— Erteilt die Erlaubnis, MQTT-Themenfilter zum Empfangen von Nachrichten zu abonnieren.

    Dieser Vorgang unterstützt die folgenden Ressourcen:

    • mqtt:topicfilter:mqttTopicFilter— Beschränken Sie den Zugriff auf der 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 + und # MQTT-Themen-Platzhalter. Weitere Informationen finden Sie unter MQTT-Themen im Developer Guide.AWS IoT Core

      Das Client-Gerät kann genau die Themenfilter abonnieren, die Sie zulassen. Wenn Sie dem Client-Gerät beispielsweise erlauben, die mqtt:topicfilter:client/+/status Ressource zu abonnieren, kann das Client-Gerät client/+/status zwar abonnieren, 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 zugelassen werden sollen. Geben Sie Ressourcen an, die den Vorgängen in dieser Richtlinie entsprechen. Sie könnten 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 unvollständige Ressourcen-IDs abzugleichen. Sie können beispielsweise angeben"resources": "*", aber Sie können nicht angeben. "resources": "mqtt:clientId:*"

statementDescription

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

Beispiel: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer restriktiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass Client-Geräte, deren Namen mit beginnen, eine Verbindung herstellen und Informationen MyClientDevice zu allen Themen veröffentlichen/abonnieren dürfen.

{ "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: Update zur Zusammenführung von Konfigurationen (unter Verwendung einer permissiven Richtlinie)

In der folgenden Beispielkonfiguration wird festgelegt, dass alle Client-Geräte eine Verbindung herstellen und Informationen zu allen Themen veröffentlichen/abonnieren können.

{ "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 Protokolldatei

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.0

Neue Features
  • Ermöglicht die Ersetzung von Richtlinienressourcen durch ${iot:Connection.Thing.ThingName} Variablen.

  • Ermöglicht Richtlinienressourcen mit Platzhaltern wie. mqtt:topic:my*

2.4.5

Neue Features

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

Fehlerkorrekturen und Verbesserungen

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

2.4.4

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

2.4.3

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

2.4.2

Neue Features

Fügt eine neue startupTimeoutSeconds Konfigurationsoption hinzu.

2.4.1

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

2.4.0

Neue Features
  • Integriert die Unterstützung für die Authentifizierung von Client-Geräten zur Ausgabe von Betriebsmetriken, die vom Telemetrieagent veröffentlicht werden.

Fehlerkorrekturen 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.

  • Zusätzliche kleinere Korrekturen und Verbesserungen.

2.3.2

Fehlerkorrekturen und Verbesserungen
  • Integriert die Unterstützung für das Zwischenspeichern von Hostnameninformationen, sodass die Komponente die Zertifikatsanträge korrekt generiert, wenn sie offline neu gestartet wird.

2.3.1

Fehlerkorrekturen 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 Kerngerät herstellen können, wenn das Core-Gerät nicht mit dem Internet verbunden ist.

  • Integriert die Unterstützung für vom Kunden bereitgestellte Zertifizierungsstellen, die das Kerngerät als Stammzertifikat zur Generierung von MQTT-Brokerzertifikaten verwendet.

2.2.3

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

2.2.2

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

2.2.1

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

2.2.0

Neue Features
  • Integriert die Unterstützung für benutzerdefinierte Komponenten zum Aufrufen von Interprozesskommunikation (IPC) 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 anpassen können, wann das MQTT-Broker-Serverzertifikat abläuft. Sie können das Serverzertifikat so konfigurieren, dass es nach 2 bis 10 Tagen abläuft.

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

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

    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 Version 2.6.0 von Greengrass Nucleus aktualisiert.

2.0.4

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

2.0.3

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

  • Aktualisierungen, um Protokollnachrichten klarer zu machen.

2.0.2

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

2.0.1

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

2.0.0

Erste Version