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.
Basic 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
Beispiele für ClientIdund SourceIpRichtlinienvariablen
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-Diensten zur Nutzung von Jobs AWS IoT.
-
{ "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/clientid" ] } ] }
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 die DomainName Richtlinienvariable iot:
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": "arn:aws:iot:us-east-1:123456789012:client/clientid", "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": "arn:aws:iot:us-east-1:123456789012:client/clientid", "Condition": { "StringEquals": { "iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com" } } } }
Weitere Informationen zum Bedingungsoperator für Richtlinien finden Sie unter IAM-JSON-Richtlinienelemente: Bedingungsoperatoren. Weitere Informationen zu Domänenkonfigurationen finden Sie unter Was ist eine Domänenkonfiguration? .