iot:Certificate.Subject.SerialNumber 用于限制影子访问

iot:Certificate.Subject.SerialNumber used to restrict shadow access

我在使用指定证书限制对设备的影子访问的策略中使用 ${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}/*" ] } ] }

设备无法向影子主题发布消息。

我做错了什么?

我想通了。 AWS颁发的证书在subject.

中没有Seri​​alNumber属性

它们本身就是一个属性。

我应该使用 ${iot:Certificate.SerialNumber}
而不是 ${iot:Certificate.Subject.SerialNumber}

它现在可以工作了,我的设备不能再访问彼此的影子了。