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.
Objektrichtlinienvariablen
Mithilfe von Dingrichtlinienvariablen können Sie AWS IoT Core Richtlinien schreiben, die Berechtigungen auf der Grundlage von Dingeigenschaften wie Dingnamen, Dingtypen und Dingattributwerten gewähren oder verweigern. Sie können Dingrichtlinienvariablen verwenden, um dieselbe Richtlinie auf die Steuerung vieler AWS IoT Core Geräte anzuwenden. Weitere Informationen zur Gerätebereitstellung finden Sie unter Gerätebereitstellung.
Wenn Sie eine nicht ausschließliche Dingzuordnung verwenden, kann dasselbe Zertifikat an mehrere Dinge angehängt werden. Um eine klare Zuordnung aufrechtzuerhalten und potenzielle Konflikte zu vermeiden, müssen Sie Ihre Client-ID mit dem Namen des Dings abgleichen. In diesem Fall erhalten Sie den Dingnamen von der Client-ID in der Connect MQTT-Nachricht, die gesendet wird, wenn ein Ding eine Verbindung zu AWS IoT Core herstellt.
Beachten Sie Folgendes, wenn Sie Objektrichtlinienvariablen in AWS IoT Core -Richtlinien verwenden.
-
Verwenden Sie die AttachThingPrincipal API, um Zertifikate oder Principals (authentifizierte Amazon Cognito-Identitäten) an ein Ding anzuhängen.
-
Wenn eine nicht exklusive Dingzuordnung besteht und Sie Dingnamen durch Ding-Richtlinienvariablen ersetzen, muss der Wert von
clientIdin der MQTT-Verbindungsnachricht oder der TLS-Verbindung exakt mit dem Dingnamen übereinstimmen.
Folgende Thing-Richtlinienvariablen stehen zur Verfügung:
-
iot:Connection.Thing.ThingNameDas ergibt den Namen der Sache in der AWS IoT Core Registrierung, für die die Richtlinie ausgewertet wird. AWS IoT Core verwendet das Zertifikat, das das Gerät bei der Authentifizierung vorlegt, um zu ermitteln, welches Objekt zur Überprüfung der Verbindung verwendet werden soll. Diese Richtlinienvariable ist nur verfügbar, wenn ein Gerät eine Verbindung über MQTT oder MQTT über das Protokoll herstellt. WebSocket
-
iot:Connection.Thing.ThingTypeNameDies wird in den Objekttyp aufgelöst, auf das die Richtlinie angewendet wurde. Die Client-ID der MQTT/WebSocket Verbindung muss mit dem Namen des Dings übereinstimmen. Diese Richtlinienvariable ist nur verfügbar, wenn eine Verbindung über MQTT oder MQTT über das WebSocket Protokoll hergestellt wird.
-
iot:Connection.Thing.Attributes[attributeName]Dies wird in den Wert des angegebenen Attributs aufgelöst, das mit dem Thing verknüpft ist, auf das die Richtlinie angewendet wurde. Ein Thing kann bis zu 50 Attribute aufweisen. Jedes Attribut ist als Richtlinienvariable verfügbar:
iot:Connection.Thing.Attributes[woattributeName]attributeNameist der Name des Attributs. Die Client-ID der MQTT/WebSocket Verbindung muss mit dem Namen des Dings übereinstimmen. Diese Richtlinienvariable ist nur verfügbar, wenn eine Verbindung über MQTT oder MQTT über das WebSocket Protokoll hergestellt wird. -
iot:Connection.Thing.IsAttachediot:Connection.Thing.IsAttached: ["true"]erzwingt, dass nur die Geräte, die sowohl im Principal registriert als auch mit dem Principal verbunden sind, auf die in AWS IoT der Richtlinie enthaltenen Berechtigungen zugreifen können. Sie können diese Variable verwenden, um zu verhindern, dass ein Gerät eine Verbindung herstellt, AWS IoT Core wenn es ein Zertifikat vorlegt, das nicht an ein IoT-Objekt in der AWS IoT Core Registrierung angehängt ist. Diese Variable hat Wertetrueoderfalsegibt an, dass das verbindende Ding mithilfe der API an das Zertifikat oder die Amazon Cognito-Identität in der Registrierung angehängt ist. AttachThingPrincipal Der Objektname wird als Client-ID verwendet.
Wenn Ihre Client-ID mit Ihrem Ding-Namen übereinstimmt oder wenn Sie Ihr Zertifikat ausschließlich an eine Sache anhängen, kann die Verwendung von Richtlinienvariablen in der Richtliniendefinition die Richtlinienverwaltung vereinfachen. Anstatt für jedes IoT-Ding individuelle Richtlinien zu erstellen, können Sie mithilfe der Ding-Richtlinienvariablen eine einzelne Richtlinie definieren. Diese Richtlinie kann dynamisch auf alle Geräte angewendet werden. Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die zeigt, wie sie funktioniert. Weitere Informationen finden Sie unter Einer AWS IoT MQTT-Clientverbindung ein Ding zuordnen.
-
{ "Version":"2012-10-17", "Statement": [ { "Condition": { "StringLike": { "iot:ClientId": "*${iot:Connection.Thing.Attributes[envType]}" } }, "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:aws:iot:us-east-1:123456789012:client/*" } ] }
In diesem Richtlinienbeispiel können Dinge eine Verbindung herstellen, AWS IoT Core wenn ihre Client-ID mit dem Wert ihres envType Attributs endet. Nur Dinge mit einem passenden Client-ID-Muster dürfen eine Verbindung herstellen.