Политика AWS IOT - ограничена указанным ClientID
Я создал следующую политику ниже, которая предназначена для ограничения соединений ClientID, разрешенных для клиентов MQTT. Предполагается, что он ограничивается одним жестко заданным ClientID «test» и одним CLientID, который является именем AWS Thing. Использование имени AWS Thing работает, но мой жестко запрограммированный «тестовый» ClientId не работает?
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "*",
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": [
"true"
]
},
"ForAnyValue:StringEquals": {
"iot:ClientId": [
"test",
"${iot:Connection.Thing.ThingName}"
]
}
}
},
{
"Effect": "Allow",
"Action": "iot:Publish",
"Resource": "arn:aws:iot:us-east-1:xxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/*"
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:us-east-1:xxx:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/*"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"Resource": "arn:aws:iot:us-east-1:xxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/*"
}
]
}
1 ответ
Поскольку у вас есть
"iot:Connection.Thing.IsAttached": ["true"]
набор, я считаю Вещь с именем
test
должен быть зарегистрирован в Реестре вещей с привязанным к нему принципалом.