【发布时间】:2018-03-02 22:22:45
【问题描述】:
根据文档,我了解了如何创建 IoT 事物以及如何使用 AWS IoT 创建经过身份验证的用户。我的问题是针对如何有效地组合这些服务,以便每个用户可以安全地访问他或她的多个设备。
假设 Jane 刚刚注册了该平台并希望将她的灯泡设备连接到她的帐户。我们还假设她的灯泡设备上已经有证书和 IoT 中的策略,以便它可以连接到 IoT 平台,然后发布和订阅一些主题。为简单起见,假设 Jane 可以通过简单地调用名为 pairDevice 的 API 调用来创建此连接,该调用接受认知身份(即 59700b18-94c7-XXXX-857a-d820a68c0ec6)和设备序列号。
基本上我设想这个函数做两件事:
它将调用“AttachPrincipalPolicy”,将与该灯泡关联的策略链接到认知用户。我假设此时 cognito 用户将能够发布和订阅该特定灯泡的主题,并且仅该灯泡。
它将在事物 ARN 的用户帐户中添加一个 DynamoDB 条目,以便以后可以轻松引用和查询它。
因此,如果我的理解是正确的,我将为物联网中的每个设备制定这样的政策(他们是否也应该使用序列号发布和订阅主题?我想确保用户无法连接到设备他们显然是不允许的):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-west-1:123456789012:client/SerialNumber",
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Subscribe",
"iot:Receive"
],
"Resource": [
"*"
]
}
]
}
然后我会简单地使用 AttachPrincipalPolicy 将此策略附加到 cognito 用户?我是否需要在 Amazon Cognito 身份池中为 IoT 访问制定明确的策略,或者该链接是否专门通过 AttachPrincipalPolicy 完成?
【问题讨论】:
标签: amazon-web-services aws-iot