iot:Certificate.Subject.SerialNumber 用于限制影子访问
Posted
技术标签:
【中文标题】iot:Certificate.Subject.SerialNumber 用于限制影子访问【英文标题】:iot:Certificate.Subject.SerialNumber used to restrict shadow access 【发布时间】:2019-10-05 10:51:27 【问题描述】:我在策略中使用 $iot:Certificate.Subject.SerialNumber 来限制使用指定证书的设备的影子访问时遇到困难。
我有一个由 aws-iot 颁发的证书,其序列号为十六进制:00 FC 63 F4 3D D8 8D 92 B1 19 5E 3C 6B D4 1B 99 1E 60 7C 86 34
如果我将其转换为十进制字符串,我会得到:1440894724465102159684825527826579699971598878260
我已将此证书附加到具有以下名称的事物上: Scoot-1440894724465102159684825527826579699971598878260
我的政策是:
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "arn:aws:iot:eu-central-1:XXXXXXXXXX:client/*"
,
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Subscribe",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:eu-central-1:XXXXXXXXXX:topic/$aws/things/Scoot-$iot:Certificate.Subject.SerialNumber/*",
"arn:aws:iot:eu-central-1:XXXXXXXXXX:topicfilter/$aws/things/Scoot-$iot:Certificate.Subject.SerialNumber/*"
]
]
设备无法向影子主题发布消息。
我做错了什么?
【问题讨论】:
【参考方案1】:我想通了。 AWS 颁发的证书在 subject 中没有 SerialNumber 属性。
它们本身就是一个属性。
我应该使用 $iot:Certificate.SerialNumber 而不是 $iot:Certificate.Subject.SerialNumber
它现在可以工作了,我的设备不能再访问彼此的影子了。
【讨论】:
以上是关于iot:Certificate.Subject.SerialNumber 用于限制影子访问的主要内容,如果未能解决你的问题,请参考以下文章