保留訊息政策範例 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

保留訊息政策範例

使用保留訊息需要特定的政策。保留的郵件是使用 RETAIN 旗標設定和儲存的發佈 MQTT 訊息。 AWS IoT Core本節提供允許保留訊息常見用途的政策範例。

連線和發佈保留訊息的政策

對於發佈保留訊息的裝置,裝置必須能夠連線和發佈任何 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 訊息的政策

用戶端可以設定在用戶端意外中斷連線時發佈的訊息。 AWS IoT Core MQTT 會將這類訊息稱為 Will 訊息。用戶端必須將擁有的其他條件新增至其連線許可,才能包含這些條件。

下列政策文件會授予所有用戶端連線和發佈 Will 訊息的許可;此類訊息由其主題 (will) 識別, AWS 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" ] } ] }