AWS IoTのPolicyのTopicとTopicfilterの違い

GALACTIC1969
GALACTIC1969
2 min readMay 28, 2020

--

AWS IoTのPolicyのARNにおいてTopicを示すものとして、topicとtopicfilterの二種がある。この二種の明確な使い分けがドキュメントに無く、少し手間取ったのでメモしておく。

  • arn:aws:iot:*:*:topic/hoge/fuga
  • arn:aws:iot:*:*:topicfilter/hoge/fuga/*
Photo by Alexandre Debiève on Unsplash

ずばり、actionによって使い分ける。違いはそれだけ。topicfilterはワイルドカードが使えるけどtopicは使えない、のような機能的な違いがあるわけではない。topicもtopicfilterもワイルドカードが使える。action毎のtopic/topicfilterの使い分けは以下。

  • iot:subscribe: topicfilter
  • iot:publish: topic
  • iot:receive: topic

確かに実際にMQTTでSubscribeするときは # や + のワイルドカードを使って広い範囲でSubscribeできる一方、Publishはワイルドカードを使えない。こう考えるとわからなくもないが、名前以外の違いが無いため、わかりにくい…。

ちなみに、Policyでは # や + のワイルドカードは使えず、 * を使う必要があるので注意(この件はちゃんとドキュメントに書いてある)。

--

--