保留的消息策略示例 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

保留的消息策略示例

使用保留的消息需要具体策略。保留的消息是在设置了 RETAIN 标志并由 Amazon IoT Core存储的情况下发布的 MQTT 消息。本节介绍了允许常见使用保留消息的策略示例。

连接和发布保留消息的策略

对于要发布保留消息的设备,设备必须能够连接、发布(任何 MQTT 消息)和发布 MQTT 保留的消息。以下策略为主题授予了这些权限:device/sample/configuration 到客户端 device1。有关授予连接权限的另一个示例,请参阅 连接和发布策略示例

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/device1" ] }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:RetainPublish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/device/sample/configuration" ] } ] }

连接和发布保留的 Will 消息的策略

客户端可以配置一条消息,该消息 Amazon IoT Core 将在客户端意外断开连接时发布。MQTT 称这样的消息为 Will消息。客户端必须在连接权限中添加附加条件才能包含这些条件。

以下策略文档授予所有客户端连接和发布由主题、will 标识的 Will 消息的权限, Amazon IoT Core 也将保留。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/device1" ], "Condition": { "ForAllValues:StringEquals": { "iot:ConnectAttributes": [ "LastWill" ] } } }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:RetainPublish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/will" ] } ] }

列出和获取保留消息的策略

服务和应用程序可以通过调用 ListRetainedMessagesGetRetainedMessage 来访问保留的消息,而无需支持 MQTT 客户端。调用这些操作的服务和应用程序必须使用如下示例的策略进行授权。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:ListRetainedMessages" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/device1" ], }, { "Effect": "Allow", "Action": [ "iot:GetRetainedMessage" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/foo" ] } ] }