本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
保留訊息政策範例
使用保留訊息需要特定的政策。保留的訊息是使用 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
和 GetRetainedMessage
來存取保留訊息,不需支援 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" ] } ] }