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

AWS IoT Core definiert die folgenden grundlegenden Richtlinienvariablen:

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

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

  • iot:DomainName: Der Domainname des Clients, mit dem eine Verbindung hergestellt wurde AWS IoT Core.

Beispiele für ClientId und SourceIp Richtlinienvariablen

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. Um sich vor solchen Sicherheitslücken zu schützen, verwenden Sie die iot:Connect Richtlinienaktion, um zu kontrollieren, welcher Client eine Verbindung herstellen IDs kann. 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.

Beispiele für iot:DomainName Richtlinienvariablen

Sie können die iot:DomainName Richtlinienvariable hinzufügen, um einzuschränken, welche Domänen verwendet werden dürfen. Durch das Hinzufügen der iot:DomainName Richtlinienvariablen können Geräte nur eine Verbindung zu bestimmten konfigurierten Endpunkten herstellen.

Die folgende Richtlinie ermöglicht es Geräten, eine Verbindung mit der angegebenen Domäne herzustellen.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowConnectionsToSpecifiedDomain", "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "*", "Condition": { "StringEquals": { "iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com" } } } }

Die folgende Richtlinie verweigert Geräten die Verbindung mit der angegebenen Domäne.

{ "Version": "2012-10-17", "Statement": { "Sid": "DenyConnectionsToSpecifiedDomain", "Effect": "Deny", "Action": [ "iot:Connect" ], "Resource": "*", "Condition": { "StringEquals": { "iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com" } } } }

Weitere Informationen zum Bedingungsoperator für Richtlinien finden Sie unter IAMJSONRichtlinienelemente: Bedingungsoperatoren. Weitere Informationen zu Domänenkonfigurationen finden Sie unter Was ist eine Domänenkonfiguration? .