本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「SORACOM KryptonでAzure IoT Edgeデバイスを登録する」を再編集したものです。
こんにちは、ソラコムの須田(ニックネーム:kei)です。
SORACOM Kryptonはブートストラップの連携先としてAzure IoT Hub Device Provisioning Service(以降DPS)をサポートしています。本ブログでは、SORACOM Kryptonを使って、デバイスをAzure IoT EdgeとしてAzure IoT Hubへ登録する方法をご紹介します。
なお本ブログでは、SORACOM Kryptonを使ったAzure IoT Hubへのデバイス登録の詳細手順はリンク先のドキュメントを参照いただき、Azure IoT Edgeとして登録するための追加手順を中心にご紹介します。
SORACOM Kryptonとは
IoT において重要な課題の一つに、デバイスとクラウドサービス間の認証があります。たとえばデバイスのデータを Azure IoT Hub へ安全に送信したいのであれば、認証が必要です。このとき、証明書などの認証情報をどのようにデバイスへ配布すればよいでしょうか。デバイスが 1 台であれば PC をデバイスに接続して手作業で配布しても良いかもしれません。しかし 100 台、1000 台になったらどうでしょう。セキュア・プロビジョニングサービスの SORACOM Krypton は、デバイスへ認証情報を安全かつ効率的に配布するために利用できます。
手順
デバイスへAzure IoT Edgeをインストールする
事前にMicrosoftのドキュメントをもとにデバイスへIoT Edgeをインストールしておいてください。IoT Edgeの設定ファイルの編集や動作確認は『デバイスを登録する』、『動作確認をする』にて実施します。
事前セットアップ
ユーザードキュメントに沿ってAzureやSORACOMのセットアップ、IoT デバイスとSORACOM IoT SIM のセットアップをします。IoT デバイスはSORACOM Onyx LTE USBドングルで IoT SIM を利用しています。
Azure IoT Edgeデバイスとして登録する際は、「Azure IoT Hub Device Provisioning Service に登録グループを追加する」にて、「IoT Edge デバイス」をTrue
にしてください。
デバイスを登録する
デバイスをAzure IoT EdgeデバイスとしてAzure IoT Hubへ登録していきます。SORACOM KryptonのAPIを実行するまでの流れは『ステップ 6: Krypton を使用して IoT Hub にデバイスを登録して接続する』と同様です。以下のAPIを順次実行していきます。
- registerAzureIotDevice: Azure IoT Hubへのデバイスの登録
- getAzureIotDeviceRegistrationStatus: 登録したAzure IoT Hubデバイス用の認証情報の取得
2.で取得した認証情報をもとにAzure IoT Hubへ接続をします。Azure IoT Edgeデバイスとして接続する際には取得した認証情報をもとにAzure IoT Edgeの設定ファイル(config.toml)を作成する必要があります。
SORACOM Kryptonを介してAzure IoT Edgeデバイスを登録する場合、SORACOM Kryptonがデバイスに代わってDPSへデバイス登録のためのAPIを実行します。そして、デバイスはSORACOM KryptonのgetAzureIotDeviceRegistrationStatus APIにより取得したデバイス証明書を用いて、直接Azure IoT Hubへ接続します。そのため、Azure IoT Edgeの設定ファイルであるconfig.toml内で指定するprovisioning
のsource
はmanual
となります。デバイスが直接DPSと連携しないのでsource
はdps
とならない点に注意してください。
[provisioning] source = "manual" # getAzureIotDeviceRegistrationStatus APIのレスポンスにあるhostの値を指定 iothub_hostname = "IOTHUB_HOSTNAME" # getAzureIotDeviceRegistrationStatus APIのレスポンスにあるdeviceIdの値を指定 device_id = "DEVICE_ID" [provisioning.authentication] method = "x509" # getAzureIotDeviceRegistrationStatus APIのレスポンスにあるcertificateの値をファイル保存し、そのファイルパスを指定 identity_cert = "file:///<path to device cert>" # getAzureIotDeviceRegistrationStatus APIのレスポンスにあるprivateKeyの値をファイル保存し、そのファイルパスを指定 identity_pk = "file:///<path to private cert>"
動作確認をする
最後に動作確認を進めます。デバイス上でAzure IoT EdgeがAzure IoT Hubと連携し正常に稼働できているかを確認します。まず設定ファイルの内容をIoT Edgeへ反映します。
sudo iotedge config apply
次にMicrosoftドキュメントをもとにAzure IoT EdgeへモジュールデプロイとAzure IoT Edgeのランタイムの動作確認及びデプロイしたモジュールが動作していることを確認してください。Azure IoT Edgeのランタイムが正常に稼働し、edgeAgentモジュールのRuntime Status
がrunning
となっていればプロビジョニングは成功です。
さいごに
SORACOM Kryptonにより、デバイスをAzure IoT EdgeデバイスとしてAzure IoT Hubへ登録する方法をご紹介しました。SORACOM Kryptonを利用することで、デバイスの初期キッティングとしてAzure IoT Edgeのデバイス登録を自動化できます。ぜひお試しください。
― ソラコム須田(kei)
投稿 SORACOM KryptonでAzure IoT Edgeデバイスを登録する は SORACOM公式ブログ に最初に表示されました。
この連載の記事
-
第474回
デジタル
SORACOM Flux の AI アクションに Amazon Bedrock – Anthropic Claude 3.5 Haiku を追加、Teltonika RUT240 の価格を改訂 takuyaのほぼ週刊ソラコム 11/02-11/15 -
第473回
デジタル
IoTセキュリティの基本知識と実践をご紹介 ― 10/31開催:SORACOMユーザー向けオンラインセミナー開催レポート -
第472回
デジタル
SORACOM Flux に追加された Incoming Webhook をつかってインタラクティブな Flux アプリを作る -
第471回
デジタル
サーバールームの異常な温度上昇を通知する新規掲載レシピのご紹介 -
第470回
デジタル
Virtual Private Gateway (VPG) Type-F2 が正式リリースになりました! -
第469回
デジタル
暗号化非対応のTCPクライアントでもNapterまでの通信を暗号化する方法 -
第468回
デジタル
SORACOM Beam や SORACOM Flux の開発・デバッグに使える HTTP モックサーバーを素早く作る方法 -
第467回
デジタル
IoTプラットフォームSORACOMの契約回線数が700万を突破、次世代SIMテクノロジー「iSIM」を商用化、搭載モジュールを提供開始 takuyaのほぼ週刊ソラコム 10/12-11/02 -
第466回
デジタル
カメラとAIで楽器演奏シーンを簡単に残す、IoTプロトタイピングの裏側 -
第465回
デジタル
数千を超えるIoT機器を管理!生成AIで設備運用を効率化するhacomonoの挑戦
この記事の編集者は以下の記事もオススメしています
-
デジタル
IoTの「時系列データ」をChatGPTで分析・未来予測するには? ― IoT-Tech Meetup レポート -
デジタル
IoTを体験できる、3つのワークショップのご紹介 【SORACOM Discovery 2023】 -
デジタル
グローバルDXもワンストップで支援|KDDI【SORACOM Discovery 2023】 -
デジタル
大規模事業から研究的PoCまで二人三脚でサポート|Fusic【SORACOM Discovery 2023】 -
デジタル
ソラカメ専用セルラーパック ルーター新機種(L13)提供開始 -
デジタル
ColaboratoryでChatGPTのAPIを使うには?― IoT-Tech Meetup #1