本記事はソラコムが提供する「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公式ブログ に最初に表示されました。
この連載の記事
-
第466回
デジタル
カメラとAIで楽器演奏シーンを簡単に残す、IoTプロトタイピングの裏側 -
第465回
デジタル
数千を超えるIoT機器を管理!生成AIで設備運用を効率化するhacomonoの挑戦 -
第464回
デジタル
SORACOMのビジネスパートナープログラムに、新たに5社の認定済パートナーが参画、SORACOM Harvest Data で日時データをタイムスタンプとして利用可能に takuyaのほぼ週刊ソラコム 08/31-09/13 -
第463回
デジタル
SORACOM Lagoon 3 の Alert rule の考え方をマスターして、最適な通知を作成 -
第462回
デジタル
LTE USB ドングル UD-USC1 を SORACOM サービスと組み合わせて利用する -
第461回
デジタル
EV充電インフラを保護する5つの方法 -
第460回
デジタル
IoT プロジェクトの課題を解決する、SORACOM サービスの活用事例 -
第459回
デジタル
ATOM Cam 2 専用 LAN アダプターを販売開始、ソラカメのクラウド録画マルチストリーミング再生機能をリリース takuyaのほぼ週刊ソラコム 08/17-08/30 -
第458回
デジタル
IoTで接続された充電ステーションがEVの普及を促進する -
第457回
デジタル
SORACOM Napterがさらに便利に!リモートアクセスの安全性と利便性を両立したWebターミナルのご紹介
この記事の編集者は以下の記事もオススメしています
-
デジタル
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