AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS IoT 策略

AWS IoT 策略是 JSON 文档。它们与 IAM 策略遵循相同的约定。AWS IoT 支持命名策略,因此,许多身份都可以参考相同的策略文档。命名策略采用版本化,以便可以轻松回滚。

AWS IoT 定义一组策略操作,描述了可以授予或拒绝其访问权限的操作和资源:

  • iot:Connect 代表连接到 AWS IoT 消息代理的权限。

  • iot:Subscribe 代表订阅 MQTT 主题或主题筛选条件的权限。

  • iot:GetThingShadow 表示获取设备的影子的权限。

AWS IoT 策略允许您控制对 AWS IoT 数据层面的访问。AWS IoT 数据层面由以下操作组成:允许您连接到 AWS IoT 消息代理,发送和接收 MQTT 消息以及获取或更新设备的影子。有关更多信息,请参阅AWS IoT 策略操作

AWS IoT 策略是包含一个或多个策略语句的 JSON 文档。每个语句都包含一个 Effect、一个 Action和一个 ResourceEffect 指定是允许还是拒绝该操作。Action 指定策略允许或拒绝的操作。Resource 指定允许或拒绝对其执行操作的资源。

Registered devices (1)Unregistered devices (1)
Registered devices (1)

对于在 AWS IoT 注册表中注册为事物的设备,以下策略授予权限以使用与事物名称匹配的客户端 ID 连接到 AWS IoT,并将设备限制为在事物名称特定的 MQTT 主题上发布。要成功建立连接,必须在 AWS IoT 注册表中注册事物名称,并使用附加到事物的身份或委托人对事物名称进行身份验证:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action":["iot:Publish"], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:Connection.Thing.ThingName}"] }, { "Effect": "Allow",         "Action": ["iot:Connect"],         "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"]     } ] }
Unregistered devices (1)

对于未在 AWS IoT 注册表中注册为事物的设备,以下策略授予权限以使用客户端 ID client1 连接到 AWS IoT,并将设备限制为在客户端 ID 特定的 MQTT 主题上发布:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action":["iot:Publish"], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:clientId}"] }, { "Effect": "Allow",         "Action": ["iot:Connect"],         "Resource": ["arn:aws:iot:us-east-1:123456789012:client/client1"]     } ] }