У меня есть приложение, в котором у каждого клиента есть своя вещь, для каждой вещи я создаю сертификат и прикрепляю его к вещи, я также прикрепляю к сертификату следующую политику.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": ["arn:aws:iot:us-east-1:*********:topic/${iot:Connection.Thing.ThingName}"]
}
]
}
Я хочу ограничить доступ клиента к вещам других клиентов, и каждый клиент может иметь полный доступ к своей теме.
Указанная выше политика не работает, клиенты вообще не могут подключиться.
Однако работает следующее (с точки зрения функциональности), но клиенты могут публиковать все темы.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "*"
}
]
}
Также успешно подключается следующее, но не публикуется:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iot:Publish",
"Resource": [
"arn:aws:iot:us-east-1:******:topic/${iot:Connection.Thing.ThingName}"
]
}
]
}
Наконец, следующее соединение успешно подключается и публикуется.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iot:Publish",
"Resource": [
"arn:aws:iot:us-east-1:******:topic/*"
]
}
]
}
Конфигурации клиента MQTTBox:
Издатель:
Что я делаю не так?