设备接入 IOTDA-设备策略使用说明:策略变量
策略变量
在策略中定义resource时,如果不知道对设备资源或条件键的精确值,可以使用策略变量作为占位符,进行发布/订阅主题筛选。策略变量在校验MQTT的主题时,会把变量变为接入设备对应的ID值,再进行匹配。
变量使用前缀“$”标记,后面跟一对大括号“{ }”,其中包含请求中值的变量名称。现如今支持的变量如下表,假设MQTT设备是在客户端ID为test_clientId,产品ID为test_productId,设备ID为test_deviceId。
策略变量 |
描述 |
MQTT中主题示例 |
适用于MQTT主题示例的策略示例 |
---|---|---|---|
${devices.deviceId} |
设备ID |
test/test_deviceId/topic |
test/${devices.deviceId}/topic |
${devices.clientId} |
客户端ID |
test/test_clientId/topic |
test/${devices.clientId}/topic |
${devices.productId} |
产品ID |
test/test_productId/topic |
test/${devices.productId}/topic |
定义策略变量示例:
{ "app_id": "jeQDJQZltU8iKgFFoW060F5SGZka", "policy_id": "5c90fa7d3c4e4405e8525079", "policy_name": "myPolicy", "statement": [ { "effect": "ALLOW", "actions": [ "iotda:devices:publish", "iotda:devices:subscribe" ], "resources": [ "topic:test/${devices.deviceId}/topic" ] } ], "create_time": "20190303T081011Z", "update_time": "20190303T081011Z" }