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. Direktnachrichten verwenden die SendDirectMessage HTTP-API, um Nachrichten von einem Absender an einen einzelnen Empfänger zu senden, der durch seine MQTT-Client-ID identifiziert wird. In diesem Abschnitt werden Beispiele für Richtlinien vorgestellt, die eine allgemeine Verwendung von Direktnachrichten ermöglichen.
In diesem Abschnitt:
Richtlinie zum Senden einer Direktnachricht zu bestimmten Themen an einen bestimmten Kunden
Damit ein Absender Direktnachrichten senden kann, muss der Absender über die iot:SendDirectMessage entsprechende Berechtigung mit der Zielclient-ID als Ressource verfügen. 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 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, autorisierte Clients muss die Lambda-Funktion ein Richtliniendokument zurückgeben, das der Zielclient-Ressource
iot:SendDirectMessageden Bedingungsschlüssel zuweistiot:Topic
Die folgende Richtlinie ermöglicht es dem Kundendevice1, Direktnachrichten zu den Themen und zu senden. myDevice 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 Richtlinie des Empfängers muss in Bezug iot:Receive auf das Thema gelten. Der Empfänger benötigt keine iot:Subscribe Genehmigung — AWS IoT Core übermittelt Direktnachrichten, ohne dass ein Themenabonnement erforderlich ist. Der Empfänger kann sich mithilfe des 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änger-ClientmyDevice, 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" } ] }
Die folgende Richtlinie verwendet einen Platzhalter, um es dem Empfänger zu ermöglichen, Direktnachrichten zu einem beliebigen Thema unter dem commands/ Präfix zu empfangen.
{ "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 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 zu bestimmten Themen an jeden Kunden
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, aber 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 jeden Kunden zu einem beliebigen Thema
Die folgende Richtlinie ermöglicht es dem Absender, Direktnachrichten zu jedem beliebigen Thema an jeden Kunden zu senden. Dies eignet sich für Verwaltungs- 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": "*" } } } ] }