View a markdown version of this page

Variables de la política de objeto - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Variables de la política de objeto

Las variables de política de cosas permiten escribir AWS IoT Core políticas que concedan o denieguen permisos en función de las propiedades de las cosas, como los nombres, los tipos de cosas y los valores de los atributos de las cosas. Puede usar variables de política de cosas para aplicar la misma política a fin de controlar muchos AWS IoT Core dispositivos. Para obtener más información acerca del aprovisionamiento de dispositivos, consulte Aprovisionamiento de dispositivos.

Si utiliza una asociación de objetos no exclusiva, se puede asociar el mismo certificado a varios objetos. Para mantener una asociación clara y evitar posibles conflictos, debe hacer coincidir el ID de cliente con el nombre del objeto. En este caso, el nombre de la cosa se obtiene del ID de cliente del Connect mensaje de MQTT que se envía cuando una cosa se conecta a AWS IoT Core ella.

Tenga en cuenta lo siguiente cuando utilice variables en las políticas de AWS IoT Core .

  • Utilice la AttachThingPrincipal API para adjuntar certificados o entidades principales (identidades autenticadas de Amazon Cognito) a una cosa.

  • Si existe una asociación de objetos no exclusiva, al reemplazar los nombres de objeto con variables de política de objeto, el valor de clientId en el mensaje de conexión de MQTT o la conexión TLS deben coincidir exactamente con el nombre del objeto.

Las siguientes variables de política de objeto están disponibles:

  • iot:Connection.Thing.ThingName

    Esto se traduce en el nombre de la cosa del AWS IoT Core registro para la que se está evaluando la política. AWS IoT Core usa el certificado que presenta el dispositivo cuando se autentica para determinar qué elemento usar para verificar la conexión. Esta variable de política solo está disponible cuando un dispositivo se conecta a través de MQTT o MQTT a través del protocolo. WebSocket

  • iot:Connection.Thing.ThingTypeName

    Esta variable se resuelve en el tipo de objeto asociado al objeto para el que se evalúa la política. El ID de cliente de la MQTT/WebSocket conexión debe ser el mismo que el nombre de la cosa. Esta variable de política solo está disponible cuando se conecta a través de MQTT o MQTT a través del WebSocket protocolo.

  • iot:Connection.Thing.Attributes[attributeName]

    Esta variable se resuelve en el valor del atributo especificado asociado al objeto para el que se evalúa la política. Un objeto puede tener hasta 50 atributos. Cada atributo está disponible como variable de política: iot:Connection.Thing.Attributes[attributeName] donde attributeName está el nombre del atributo. El ID de cliente de la MQTT/WebSocket conexión debe ser el mismo que el nombre de la cosa. Esta variable de política solo está disponible cuando se conecta a través de MQTT o MQTT a través del WebSocket protocolo.

  • iot:Connection.Thing.IsAttached

    iot:Connection.Thing.IsAttached: ["true"]establece que solo los dispositivos que estén registrados AWS IoT y conectados al principal puedan acceder a los permisos incluidos en la política. Puede usar esta variable para impedir que un dispositivo se conecte AWS IoT Core si presenta un certificado que no esté asociado a ningún elemento de IoT del AWS IoT Core registro. Esta variable contiene valores que false indican que el elemento que se conecta está adjunto al certificado true o a la identidad de Amazon Cognito del registro mediante la API. AttachThingPrincipal El nombre de la cosa se toma como identificador de cliente.

Si el ID de cliente coincide con el nombre de objeto o si asocia el certificado a un objeto de forma exclusiva, el uso de variables de política en la definición de la política puede simplificar la administración de políticas. En lugar de crear políticas individuales para cada elemento de IoT, puede definir una única política mediante las variables de política del objeto. Esta política se puede aplicar a todos los dispositivos de forma dinámica. A continuación, se muestra un ejemplo de política que muestra cómo funciona. Para obtener más información, consulte Asociar cualquier AWS IoT cosa a una conexión de cliente MQTT.

{ "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/*" } ] }

En este ejemplo de política se permite la conexión de objetos AWS IoT Core si su ID de cliente termina en el valor de su atributo. envType Solo se permitirá la conexión a los objetos con un patrón de ID de cliente que coincide.