保留訊息政策範例 - 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" ] } ] }

列出和取得保留訊息的政策

服務和應用程式可以存取保留的訊息,而無需透過呼叫 ListRetainedMessages和 來支援MQTT用戶端GetRetainedMessage。必須透過使用如下範例的政策來對呼叫這些動作的服務和應用程式進行授權。

{ "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" ] } ] }