【发布时间】:2018-02-27 10:45:42
【问题描述】:
我想知道是否有人知道 AWS IoT 关于策略处理的最佳实践,例如,我们可能有两种不同的情况:
案例 1: 调用 lambda(identity-id as param) 动态创建策略,然后将策略附加到身份 ID。该策略将包含硬编码的事物名称,例如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "arn:aws:iot:us-west-2:XXXX:client/hardcodedClient1"
},
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Subscribe",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-west-2:XXXX:topic/$aws/things/THINGNAME1/*",
"arn:aws:iot:us-west-2:XXXX:topicfilter/$aws/things/THINGNAME1/*"
]
}
]
}
案例 2:通过使用 ${iot:ClientId}、${iot:ThingName} 等策略变量,我们可以将一个策略附加到所有 congito-identity-users;
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "arn:aws:iot:us-west-2:XXXX:client/${iot:ClientId}"
},
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Subscribe",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-west-2:XXXX:topic/$aws/things/${iot:Connection.Thing.ThingName}/*",
"arn:aws:iot:us-west-2:XXXX:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/*"
]
}
]
}
所以,问题是。那么哪一个是最佳实践,而且对于 Cognito 用户只能与他自己的设备进行交互,它们都是安全的?
【问题讨论】:
-
您是否回答了自己的一些问题?
标签: amazon-web-services iot aws-iot