パブリック プレビューの IoT Hub デバイス ストリームの導入

1月 23, 2019 に投稿済み

Senior Program Manager, Azure IoT

今日のセキュリティ優先のデジタル時代では、IoT デバイスへの安全な接続の確保が非常に重要です。IoT 空間の広い運用シナリオおよびメンテナンス シナリオでは、ユーザーおよびサービスがデバイスとのデータのやり取り、ログイン、トラブルシューティングまたはデバイスとのデータの送受信を行うために、エンドツーエンドのデバイス接続に依存しています。したがって、セキュリティおよび組織のポリシーの遵守は、これらすべてのシナリオにわたって重要な要素です。

Azure IoT Hub デバイス ストリームは、IoT デバイスへのセキュアなエンドツーエンド接続の基盤を提供することによって、これらのニーズに対処する新しい PaaS サービスです。お客様、パートナー、アプリケーション開発者、サードパーティのプラットフォーム プロバイダーは、デバイス ストリームを利用して、ファイアウォールの背後に常駐しているまたはプライベート ネットワークの内部にデプロイされている IoT デバイスと安全に通信できます。さらに、TCP/IP スタックとの互換性が組み込まれているため、デバイス ストリームは、カスタムの独自プロトコルやリモート シェル、Web、ファイル転送、動画ストリーミングなどの標準ベースのプロトコルの両方を含む広範なアプリケーションに適用できるようになります。

IoT Hub デバイス ストリームの中心には、2 つの TCP/IP 対応のエンドポイント間の接続を提供するデータ転送トンネルがあります。このトンネルの片側は IoT デバイス、反対側はそのデバイスと通信するお客様のエンドポイントです (ここでは後者をサービス エンドポイントと呼びます)。組織のセキュリティ ポリシーおよび組織のネットワークに適用されている接続制限に基づいて、デバイスへの直接接続が禁止されているセットアップが多数あります。これらの制限は妥当ですが、IoT デバイスに接続する必要があるさまざまな理に適ったシナリオに影響することが多いです。

これらのシナリオの例:

  • オペレーターが検査またはメンテナンスのためにデバイスにログインする場合。このシナリオでは、Linux ではセキュア シェル (SSH)、Windows ではリモート デスクトップ プロトコル (RDP) を使用してデバイスにログインすることが一般的です。デバイスまたはネットワークのファイアウォール設定によって、オペレーターのワークステーションがデバイスにアクセスできないことがよくあります。
  • オペレーターがデバイスの診断ポータルにリモートでアクセスしてトラブルシューティングする必要がある場合。診断ポータルは、通常、デバイスにホストされている Web サーバーの形式です。同様に、デバイスのプライベート IP またはファイアウォール設定によって、ユーザーがデバイスの Web サーバーとやり取りできない場合があります。
  • アプリケーション開発者がデバイスのファイル システムからログなどの実行時診断情報をリモートで取得する必要がある場合。この目的で一般的に使用されるプロトコルには、ファイル転送プロトコル (FTP) または Secure Copy (SCP) などが含まれている場合があります。ここでも、ファイアウォールの設定によって、これらのタイプのトラフィックが制限されます。

IoT Hub デバイス ストリームは、デバイスとサービスの間で交換されるアプリケーション トラフィックのプロキシとして機能する IoT Hub クラウドのエンドポイントを利用して、上記のシナリオのエンドツーエンド接続のニーズに対処します。このセットアップは、下図で描写され、次のように機能します。

IoT Hub デバイス ストリームの概要

  • デバイスとサービスのエンドポイントはそれぞれ、両者の間で送受信されるトラフィックのプロキシとして機能する IoT Hub エンドポイントへの個別のアウトバウンド接続を作成します。
  • IoT Hub のエンドポイントは、デバイスからサービスおよびその逆方向のトラフィック パケットを中継します。この動作によって、エンドツーエンドの双方向トンネルが確立され、そのトンネルを通じてデバイスとサービス アプリケーションが通信します。
  • IoT Hub を通る確立されたトンネルによって、信頼性の高い、整然としたパケット配信が保証されます。さらに、中継点として IoT Hub を通るトラフィックの転送は、アプリケーションからマスクされ、TCP と同様のシームレスな直接双方向通信が実現します。

利点

IoT Hub デバイス ストリームには次の利点があります。

  • ファイアウォール フレンドリなセキュア接続: デバイスまたはネットワーク周辺でインバウンド ファイアウォール ポートを開かずにサービスのエンドポイントから IoT デバイスにアクセスできます。必要な作業は、ポート 443 から IoT Hub クラウドのエンドポイントへのアウトバウンド接続を作成することだけです (IoT Hub SDK を使うデバイスはこのような接続をメンテナンス済みです)。
  • 認証の適用:ストリームを確立するには、デバイスとサービスのエンドポイントの両方で対応する資格情報を使って IoT Hub を認証する必要があります。この要件によって、トンネス間で通信が行われる前にトンネルの両側の ID が必ず確認されることによって、デバイス通信層のセキュリティが強化されます。
  • 暗号化: 既定では、IoT Hub デバイス ストリームは TLS 対応の接続を使います。このため、アプリケーションが暗号化を使っているかどうかに関係なく、アプリケーション トラフィックは暗号化されます。
  • 接続の簡素化:デバイス ストリームを使うことによって、IoT デバイスに接続できるようにするための仮想プライベート ネットワーク (VPN) の複雑なセットアップの必要がなくなります。さらに、ネットワーク全体への広いアクセスを提供する VPN と異なり、デバイス ストリームは、トンネルの両側にある 1 台のデバイスと 1 つのサービスが関わるポイントツーポイント アクセスです。
  • TCP/IP スタックとの互換性:IoT Hub デバイス ストリームは TCP/IP アプリケーション トラフィックを適用できます。つまり、広範な独自プロトコルおよび標準ベースのプロトコルがこの機能を利用できます。これには、リモート デスクトップ プロトコル (RDP)、セキュア シェル (SSH)、ファイル転送プロトコル (FTP)、HTTP/REST など、実績のあるプロトコルが含まれています。
  • プライベート ネットワーク セットアップの簡単な使用: プライベート ネットワーク内部にデプロイされているデバイスには、パブリックにルーティングできる IP アドレスを各デバイスにアサインせずにアクセスできます。別の似たケースは、サービスが認識できない場合がある動的 IP アサインのデバイスを使う場合です。どちらの場合も、デバイス ストリームでは、(IP アドレスではなく) デバイス ID を ID として使ってターゲット デバイスに接続できます。

上記のように、IoT Hub デバイス ストリームは、ファイアウォールの背後または (パブリックにアクセスできる IP アドレスがない) プライベート ネットワーク内部にデバイスが配置されている場合に特に便利です。次に、デバイスへの直接接続が制限されているセットアップの 1 つをケース スタディとして確認します。

ケース スタディ:製造セットアップでのリモート デバイス アクセス

実際の IoT シナリオでの適用性をさらに詳しく説明するために、工場に設置されていて、工場のローカル エリア ネットワークに接続されている機器と機械 (すなわち IoT デバイス) のセットアップについて考えてみましょう。LAN は通常、ネットワーク ゲートウェイまたは HTTP プロキシを通じてインターネットに接続されていて、ネットワークの境界でファイアウォールによって保護されています。このセットアップでは、ファイアウォールは、組織のセキュリティ ポリシーに基づいて設定されていて、特定のファイアウォール ポートを開くことを禁止している場合があります。例えば、リモート デスクトップ プロトコルが使用するポート 3389 はブロックされていることが多いです。したがって、ネットワーク外からのユーザーは、このポートからはデバイスにアクセスできません。

このようなネットワーク セットアップは広く使われていますが、多くの一般的な IoT シナリオで問題になっています。例えば、オペレーターが LAN の外部から機器にアクセスする必要がある場合、アプリケーションが使用する任意のポートでのインバウンド接続をファイアウォールが許可する必要が生じます。RDP プロトコルを使用する Windows マシンの場合、これはポート 3389 をブロックするセキュリティ ポリシーと相反します。

デバイス ストリームを使用すると、ターゲット デバイスへの RDP トラフィックは IoT Hub を通じてトンネル化されます。具体的には、このトンネルは、デバイスとサービスから通じるアウトバウンド接続を使用してポート 443 を介して確立されます。その結果、工場のネットワークのファイアウォール ポリシーを緩和する必要はありません。C、C#、および NodeJS の各言語で利用できる弊社のクイックスタート ガイドには、IoT Hub デバイス ストリームを利用して RDP シナリオを有効にする手順が含まれています。その他のプロトコルは、対応する通信ポートを設定するだけで同様のアプローチを使えます。

次の手順

IoT Hub デバイス ストリームによって IoT デバイスに安全に通信できることはすばらしいことです。パブリック プレビュー中、機能は特定のリージョンで作成された IoT Hub で利用可能になります。詳細については、以下のリンクをご覧ください。