保持されたメッセージポリシーの例
保持されているメッセージの使用には、特定のポリシーが必要です。保持されるメッセージとは、AWS IoT Coreによって設定保管された RETAIN フラッグで発行される MQTT メッセージです。このセクションでは、保持されたメッセージの一般的な使用を許可するポリシーの例を紹介します。
保持されたメッセージを接続して発行するためのポリシー
デバイスが保持されたメッセージを発行するには、デバイスが、接続、発行 (任意のMQTTメッセージ)、そして保持されたMQTTメッセージを発行できる必要があります。次のポリシーにより、トピックに対するアクセス権限が付与されます。クライアントdevice1にdevice/sample/configuration。接続のアクセス許可を付与する別の例については、接続および公開ポリシーの例を参照。
- JSON
-
-
{
"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 はこのようなメッセージをウィルメッセージと呼びます。それらを包括するために、クライアントは、接続許可に追加して追加条件を持つ必要があります。
次のポリシードキュメントは、AWS IoT Coreも保持するであろうトピックwillにより明確になった Will メッセージに接続発行する権限をすべてのクライアントに付与します。
- JSON
-
-
{
"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"
]
}
]
}
保持されたメッセージを一覧表示して取得するためのポリシー
サービスとアプリケーションは、MQTT クライアントをサポートしなくても、ListRetainedMessagesおよびGetRetainedMessageを呼び出す事によって保持されたメッセージにアクセスする事ができます。これらのアクションを呼び出すサービスとアプリケーションは、次の例のようなポリシーを使用して認証される必要があります。
- JSON
-
-
{
"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"
]
}
]
}