Objektrichtlinienvariablen - 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.

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 Ding-Richtlinienvariablen 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 Zuordnung von Dingen verwenden, kann dasselbe Zertifikat an mehrere Dinge angehängt werden. Um eine klare Zuordnung aufrechtzuerhalten und mögliche Konflikte zu vermeiden, müssen Sie Ihre Client-ID mit dem Namen des Dings abgleichen. In diesem Fall erhalten Sie den Namen des Dings aus der Client-ID in der Connect MQTT-Nachricht, die gesendet wird, wenn ein Ding eine Verbindung AWS IoT Core herstellt.

Beachten Sie Folgendes, wenn Sie Objektrichtlinienvariablen in AWS IoT Core -Richtlinien verwenden.

  • Verwenden Sie die AttachThingPrincipalAPI, um Zertifikate oder Principals (authentifizierte Amazon Cognito Cognito-Identitäten) an eine Sache anzuhängen.

  • Wenn eine nicht ausschließliche Ding-Assoziation vorhanden ist und Sie Ding-Namen durch Ding-Richtlinienvariablen ersetzen, muss der Wert von clientId in der MQTT-Verbindungsnachricht oder der TLS-Verbindung exakt mit dem Ding-Namen übereinstimmen.

Folgende Thing-Richtlinienvariablen stehen zur Verfügung:

  • iot:Connection.Thing.ThingName

    Dies 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.ThingTypeName

    Dies wird in den Objekttyp aufgelöst, auf das die Richtlinie angewendet wurde. Die Client-ID der WebSocket MQTT/-Verbindung muss mit dem Namen der Sache identisch sein. Diese Richtlinienvariable ist nur verfügbar, wenn eine Verbindung über MQTT oder MQTT über das Protokoll hergestellt wird. WebSocket

  • 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[attributeName] wo attributeName ist der Name des Attributs. Die Client-ID der WebSocket MQTT/-Verbindung muss mit dem Namen der Sache identisch sein. Diese Richtlinienvariable ist nur verfügbar, wenn eine Verbindung über MQTT oder MQTT über das Protokoll hergestellt wird. WebSocket

  • iot:Connection.Thing.IsAttached

    iot:Connection.Thing.IsAttached: ["true"]erzwingt, dass nur die Geräte, die sowohl im AWS IoT Principal registriert als auch mit diesem verbunden sind, auf die in 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-Ding in der AWS IoT Core Registrierung angehängt ist. Diese Variable hat Werte true oder false gibt an, dass das verbindende Ding über die API an das Zertifikat oder die Amazon Cognito 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 individuelle Richtlinien für jedes IoT-Ding 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.