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.
中没有SerialNumber属性
它们本身就是一个属性。
我应该使用 ${iot:Certificate.SerialNumber}
而不是 ${iot:Certificate.Subject.SerialNumber}
它现在可以工作了,我的设备不能再访问彼此的影子了。
我在使用指定证书限制对设备的影子访问的策略中使用 ${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.
中没有SerialNumber属性它们本身就是一个属性。
我应该使用 ${iot:Certificate.SerialNumber}
而不是 ${iot:Certificate.Subject.SerialNumber}
它现在可以工作了,我的设备不能再访问彼此的影子了。