AWS IoTのPolicyのTopicとTopicfilterの違い
Published in
2 min readMay 28, 2020
AWS IoTのPolicyのARNにおいてTopicを示すものとして、topicとtopicfilterの二種がある。この二種の明確な使い分けがドキュメントに無く、少し手間取ったのでメモしておく。
- arn:aws:iot:*:*:topic/hoge/fuga
- arn:aws:iot:*:*:topicfilter/hoge/fuga/*
ずばり、actionによって使い分ける。違いはそれだけ。topicfilterはワイルドカードが使えるけどtopicは使えない、のような機能的な違いがあるわけではない。topicもtopicfilterもワイルドカードが使える。action毎のtopic/topicfilterの使い分けは以下。
- iot:subscribe: topicfilter
- iot:publish: topic
- iot:receive: topic
確かに実際にMQTTでSubscribeするときは # や + のワイルドカードを使って広い範囲でSubscribeできる一方、Publishはワイルドカードを使えない。こう考えるとわからなくもないが、名前以外の違いが無いため、わかりにくい…。
ちなみに、Policyでは # や + のワイルドカードは使えず、 * を使う必要があるので注意(この件はちゃんとドキュメントに書いてある)。