Grundlegende Richtlinienvariablen AWS IoT Core - 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.

Grundlegende Richtlinienvariablen AWS IoT Core

AWS IoT Core definiert die folgenden grundlegenden Richtlinienvariablen:

  • iot:ClientId: Die Client-ID für die Verbindung zum AWS IoT Core Message Broker.

  • aws:SourceIp: Die IP-Adresse des Clients, der mit dem AWS IoT Core Message Broker verbunden ist.

Die folgende AWS IoT Core Richtlinie zeigt eine Richtlinie, die Richtlinienvariablen verwendet. aws:SourceIpkann im Condition-Element Ihrer Richtlinie verwendet werden, um es Prinzipalen zu ermöglichen, API-Anfragen nur innerhalb eines bestimmten Adressbereichs zu stellen. Beispiele finden Sie unter Autorisieren von Benutzern und Cloud-Services zur Nutzung von AWS IoT -Aufträgen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/clientid1" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}" ], "Condition": { "IpAddress": { "aws:SourceIp": "123.45.167.89" } } } ] }

In diesen Beispielen ${iot:ClientId} wird bei der Auswertung der Richtlinie durch die ID des Clients ersetzt, der mit dem AWS IoT Core Message Broker verbunden ist. Wenn Sie Richtlinienvariablen wie beispielsweise ${iot:ClientId} verwenden, können Sie versehentlich den Zugriff auf Themen ermöglichen. Wenn Sie beispielsweise eine Richtlinie nutzen, in der mit ${iot:ClientId} ein bestimmter Topic-Filter angegeben wird:

{ "Effect": "Allow", "Action": ["iot:Subscribe"], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/my/${iot:ClientId}/topic" ] }

... kann ein Client mit der Client-ID + eine Verbindung zum &IoT; Message Broker herstellen. Damit könnte der Benutzer jedes Thema abonnieren, das dem Themenfilter my/+/topic entspricht. Nutzen Sie zum Schutz gegen solche Sicherheitslücken die Richtlinienaktion iot:Connect, mit der Sie steuern können, welche Client-IDs eine Verbindung herstellen dürfen. Mit dieser Richtlinie zum Beispiel dürfen nur die Clients mit der Client-ID clientid1 eine Verbindung herstellen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iot:Connect"], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/clientid1" ] } ] }
Anmerkung

Die Verwendung der Richtlinienvariable ${iot:ClientId} mit Connect wird nicht empfohlen. Der ClientId-Wert wird nicht überprüft, sodass eine Anfügung mit einer anderen Client-ID die Validierung zwar bestehen, aber einen Verbindungsabbruch verursachen kann. Da jede ClientId erlaubt ist, können mit einer zufälligen Client-ID die Richtlinien für Objektgruppen umgangen werden.