第257回 SORACOM公式ブログ

ソラコム公式ブログ

SORACOM KryptonでAzure IoT Edgeデバイスを登録する

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はソラコムが提供する「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を順次実行していきます。

  1. registerAzureIotDevice: Azure IoT Hubへのデバイスの登録
  2. 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内で指定するprovisioningsourcemanualとなります。デバイスが直接DPSと連携しないのでsourcedpsとならない点に注意してください。

[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 Statusrunningとなっていればプロビジョニングは成功です。

さいごに

SORACOM Kryptonにより、デバイスをAzure IoT EdgeデバイスとしてAzure IoT Hubへ登録する方法をご紹介しました。SORACOM Kryptonを利用することで、デバイスの初期キッティングとしてAzure IoT Edgeのデバイス登録を自動化できます。ぜひお試しください。

― ソラコム須田(kei)

投稿 SORACOM KryptonでAzure IoT Edgeデバイスを登録するSORACOM公式ブログ に最初に表示されました。

この連載の記事

過去記事アーカイブ

2024年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
2023年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2022年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2021年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月