AWS IoT Core Fleet Provisioning の Thing Name の重複登録

AWS IoT Core Fleet Provisioning の Thing Name の重複登録

2026.04.30

こんにちは!コンサルティング部のくろすけです!

IoT Core では、「モノの名前」は同一アカウントの同一リージョンごとに一意である必要があります。
マネジメントコンソールでは、モノの名前に重複があると登録時にエラーとなりますが、Fleet Provisioning ではどうなるかを確認してみました。

結論

  • Fleet Provisioning では、モノの名前が重複していても RegisterThing は成功する
  • ただし、新規でモノが登録されるのではなく、既存のモノが上書きされる

概要

今回検証には、下記で紹介したスクリプトを使用しています。

https://dev.classmethod.jp/articles/try-aws-iot-fleet-provisioning-auto/

このスクリプト(Fleet Provisioning)は主に下記のような処理を行って、デバイスを自動登録します。

  1. claim 証明書を使って AWS IoT Core の MQTT エンドポイントに接続
  2. CreateKeysAndCertificate で新しいデバイス証明書・秘密鍵・certificateOwnershipToken を取得
  3. RegisterThing で provisioning template に従って Thing や証明書アタッチなどを行いモノを登録
  4. MQTT 接続を切断

つまり、モノの名前が重複した場合には RegisterThing が失敗するのではと考えました。

やってみた

1. ユニークな名前のモノの登録

まず、先ほどのスクリプトを使用して、ユニークな名前のモノを登録します。

CleanShot20260430at09.53.29.png

CleanShot20260430at09.52.48.png

2. 重複した名前のモノを登録

次に、先ほどのスクリプトを使用して、重複した名前のモノを登録(設定をそのまま、スクリプトを再実行)します。

モノの名前が重複しているのに、スクリプト自体は成功しました。

CleanShot20260430at10.32.05.png

が、マネジメントコンソールから確認すると、やはり重複して登録はされていない...

CleanShot20260430at10.33.03.png

スクリプトのバグかと思いましたが、証明書の欄を見て理由がわかりました。
証明書が追加されています。つまり、RegisterThing では既存のモノを上書きする挙動になっているようです。

初回登録時

CleanShot20260430at10.30.09.png

2回目登録時

CleanShot20260430at10.35.51.png

補足

ちなみに Provisioning Template では、一部の設定において上書き時の挙動を制御できるようです。

https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html

あとがき

今回は、Fleet Provisioning でモノの名前が重複した場合の挙動を確認しました。
重複していてもエラーとはならず、上書きをしてしまうため、モノの名前の管理や渡し方には十分注意が必要なことがわかりました。

要件によっては、事前プロビジョニングフックなどを使用して重複チェックを行うなどの対策も検討してみると良いかもしれません。

https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/pre-provisioning-hook.html

以上、くろすけでした!

この記事をシェアする

関連記事