View a markdown version of this page

Beispiele für Richtlinien für Direktnachrichten - AWS IoT Core

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.

Beispiele für Richtlinien für Direktnachrichten

Für die Verwendung von Direktnachrichten sind spezielle Richtlinien erforderlich. Direct Messaging verwendet die SendDirectMessage HTTP-API, um Nachrichten von einem Absender an einen einzelnen Empfänger zu übermitteln, der anhand seiner MQTT-Client-ID identifiziert wird. In diesem Abschnitt werden Beispiele für Richtlinien vorgestellt, die die allgemeine Verwendung von Direktnachrichten ermöglichen.

Richtlinie zum Senden einer Direktnachricht an einen bestimmten Kunden zu bestimmten Themen

Damit ein Absender Direktnachrichten senden kann, muss er die iot:SendDirectMessage Erlaubnis haben, die Ziel-Client-ID als Ressource zu verwenden. Der iot:Topic Bedingungsschlüssel (optional) schränkt ein, zu welchen Themen der Absender Nachrichten senden kann.

  • Fügen Sie dies für SigV4-authenticated Backend-Server zu einer IAM-Richtlinie hinzu.

  • Fügen Sie dies für X.509-authenticated IoT-Geräte einer AWS IoT Core Richtlinie hinzu.

  • Für benutzerdefinierte, vom Authorizer authentifizierte Clients muss die Lambda-Funktion ein Policy-Dokument zurückgeben, das für die Ziel-Client-Ressource mit iot:SendDirectMessage dem Bedingungsschlüssel gewährt wird iot:Topic

Die folgende Richtlinie ermöglicht es dem Kundendevice1, Direktnachrichten zu den Themen und an den Kunden myDevice zu senden. commands/reboot commands/update

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:SendDirectMessage", "Resource": "arn:aws:iot:us-west-2:123456789012:client/myDevice", "Condition": { "StringEquals": { "iot:Topic": ["commands/reboot", "commands/update"] } } } ] }

Richtlinie zum Empfangen von Direktnachrichten

Die Richtlinien des Empfängers müssen iot:Receive zu diesem Thema gelten. Der Empfänger benötigt keine iot:Subscribe Genehmigung — er AWS IoT Core übermittelt Direktnachrichten, ohne dass ein Themenabonnement erforderlich ist. Der Empfänger kann sich mithilfe eines X.509 Client-Zertifikats (AWS IoT Core Richtlinie) oder SigV4 (IAM-Richtlinie) authentifizieren. In beiden Fällen ist die iot:Receive Genehmigung für das empfangende Thema erforderlich.

Die folgende Richtlinie ermöglicht es dem EmpfängerclientmyDevice, Direktnachrichten zu den Themen commands/reboot und zu empfangencommands/update.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:us-west-2:123456789012:topic/commands/reboot" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:us-west-2:123456789012:topic/commands/update" } ] }

In der folgenden Richtlinie wird ein Platzhalter verwendet, damit der Empfänger Direktnachrichten zu jedem beliebigen Thema unter dem commands/ Präfix empfangen kann.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:us-west-2:123456789012:topic/commands/*" } ] }
Anmerkung

Der Empfänger muss eine MQTT-Verbindung zu herstellen, AWS IoT Core bevor er eine Direktnachricht empfängt. Direktnachrichten werden für Offline-Geräte nicht in die Warteschlange gestellt.

Richtlinie zum Senden einer Direktnachricht an einen beliebigen Kunden zu bestimmten Themen

Die folgende Richtlinie ermöglicht es dem Absender, Direktnachrichten an jeden Kunden zu senden, jedoch nur zu Themen, die dem commands/* Präfix entsprechen. Dies ist nützlich für Flottenmanagementdienste, die jedes Gerät erreichen müssen, jedoch nur für bestimmte Befehlsthemen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:SendDirectMessage", "Resource": "arn:aws:iot:us-west-2:123456789012:client/*", "Condition": { "StringLike": { "iot:Topic": "commands/*" } } } ] }
Anmerkung

Der iot:Topic Bedingungsschlüssel unterstützt den Platzhalterabgleich mit dem StringLike Bedingungsoperator.

Richtlinie zum Senden einer Direktnachricht an einen beliebigen Kunden zu einem beliebigen Thema

Die folgende Richtlinie ermöglicht es dem Absender, Direktnachrichten zu einem beliebigen Thema an jeden Kunden zu senden. Dies eignet sich für administrative oder Flottenmanagement-Anwendungsfälle, in denen ein Backend-Service uneingeschränkten Zugriff benötigt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:SendDirectMessage", "Resource": "arn:aws:iot:us-west-2:123456789012:client/*", "Condition": { "StringLike": { "iot:Topic": "*" } } } ] }