既定では、IoT Hub のホスト名は、インターネット経由でパブリックにルーティング可能な IP アドレスを持つパブリック エンドポイントにマップされます。 この IoT Hub パブリック エンドポイントはさまざまな顧客によって共有され、IoT デバイスはワイドエリア ネットワークやオンプレミス ネットワーク経由ですべてアクセスできます。
メッセージ ルーティング、ファイル のアップロード、デバイスの一括インポート/エクスポートなど、一部の IoT Hub 機能では、パブリック エンドポイント経由で IoT Hub から顧客所有の Azure リソースへの接続も必要です。 これらの接続パスは、IoT Hub から顧客リソースへのエグレス トラフィックを構成します。
次のようないくつかの理由で、所有および運用する仮想ネットワークを介して Azure リソース (IoT Hub を含む) への接続を制限したい場合があります。
パブリック インターネットへの接続の露出を防ぐことで、IoT ハブのネットワーク分離を導入します。
オンプレミスのネットワーク資産からプライベート接続エクスペリエンスを有効にすると、データとトラフィックが Azure バックボーン ネットワークに直接送信されます。
機密性の高いオンプレミス ネットワークからの流出攻撃を防ぎます。
プライベート エンドポイントを使用して確立された Azure 全体の接続パターンに従います。
この記事では、IoT Hub へのイングレス接続に Azure Private Link を使用し、IoT Hub から他の Azure リソースへのエグレス接続に信頼された Microsoft サービス例外を使用して、これらの目標を達成する方法について説明します。
Azure Private Link を使用した IoT Hub へのイングレス接続
プライベート エンドポイントは、Azure リソースに到達できる顧客所有の仮想ネットワーク内に割り当てられたプライベート IP アドレスです。 Azure Private Link を使用すると、IoT Hub のパブリック エンドポイントにトラフィックを送信しなくても、仮想ネットワーク内のサービスが IoT Hub に到達できるように、IoT ハブのプライベート エンドポイントを設定できます。 同様に、オンプレミスのデバイスでは、 Azure VPN Gateway または Azure ExpressRoute ピアリングを使用して、仮想ネットワークと IoT ハブ (プライベート エンドポイント経由) への接続を取得できます。 その結果、IoT Hub の IP フィルターまたはパブリック ネットワーク アクセスの切り替えを使用して、IoT Hub のパブリック エンドポイントへの接続を制限または完全にブロックできます。 この方法では、デバイスのプライベート エンドポイントを使用してハブへの接続を維持します。 このセットアップの主な焦点は、オンプレミス ネットワーク内のデバイスです。 このセットアップは、ワイド エリア ネットワークに展開されているデバイスには推奨されません。
続行する前に、次の前提条件が満たされていることを確認してください。
プライベート エンドポイントを作成するサブネットを含む Azure 仮想ネットワーク を作成しました。
オンプレミス ネットワークで動作するデバイスの場合は、 Azure VPN Gateway または Azure ExpressRoute プライベート ピアリングを Azure 仮想ネットワークに設定します。
IoT Hub イングレス用のプライベート エンドポイントを設定する
プライベート エンドポイントは、IoT Hub デバイス API (デバイスからクラウドへのメッセージなど) とサービス API (デバイスの作成や更新など) で機能します。
Azure Portal で、IoT ハブに移動します。
左側のウィンドウの [ セキュリティ設定] で、[ ネットワーク>プライベート アクセス] を選択し、[ プライベート エンドポイントの作成] を選択します。
サブスクリプション、リソース グループ、名前、ネットワーク インターフェイス名、リージョンを指定して、新しいプライベート エンドポイントを作成します。 理想的には、ハブと同じリージョンにプライベート エンドポイントを作成する必要があります。
[次へ: リソース] を選択し、IoT Hub リソースのサブスクリプションを指定します。 次に、リソースの種類として Microsoft.Devices/IotHubs 、リソースとして IoT ハブ名、ターゲット サブリソースとして iotHub を選択します。
[次へ: 仮想ネットワーク] を選択し、プライベート エンドポイントを作成する仮想ネットワークとサブネットを指定します。
[次へ: DNS] を選択し、必要に応じてプライベート DNS ゾーンと統合するオプションを選択します。
[次へ: タグ] を選択し、必要に応じてリソースのタグを指定します。
[次へ: 確認と作成] を選択してプライベート リンク リソースの詳細を確認し、[作成] を選択してリソースを作成します。
組み込みの Event Hubs 互換エンドポイント
組み込みの Event Hubs 互換エンドポイントには、プライベート エンドポイント経由でアクセスすることもできます。 プライベート リンクを構成すると、組み込みエンドポイントの別のプライベート エンドポイント接続と構成が表示されます。 FQDN に servicebus.windows.net
が含まれるものになります。
IoT Hub の IP フィルターによって、必要に応じて、組み込みのエンドポイントへのパブリック アクセスを制御できます。
IoT ハブへのパブリック ネットワーク アクセスを完全にブロックするには、 パブリック ネットワーク アクセスをオフに するか、IP フィルターを使用してすべての IP をブロックし、組み込みのエンドポイントに規則を適用するオプションを選択します。
Private Link の価格
料金の詳細については、「Azure Private Link の料金」をご覧ください。
IoT Hub から他の Azure リソースへのエグレス接続
IoT Hub は、リソースのパブリック エンドポイントを経由したメッセージのルーティング、ファイルのアップロード、デバイスの一括インポートとエクスポートのために Azure BLOB ストレージ、イベント ハブ、Service Bus のリソースに接続できます。 リソースを仮想ネットワークにバインドすると、既定でリソースへの接続がブロックされます。 その結果、この構成により、IoT ハブがリソースにデータを送信できなくなります。 この問題を解決するには、 信頼できる Microsoft サービス オプションを使用して、IoT Hub リソースからストレージ アカウント、イベント ハブ、または Service Bus リソースへの接続を有効にします。
他のサービスが信頼できる Microsoft サービスとして IoT ハブを検索できるようにするには、ハブでマネージド ID を使用する必要があります。 マネージド ID がプロビジョニングされたら、カスタム エンドポイントにアクセスするためのアクセス許可をハブのマネージド ID に付与します。 マネージド ID の IoT Hub サポートに記載されている手順に従って、Azure ロールベースのアクセス制御 (RBAC) アクセス許可を持つマネージド ID をプロビジョニングし、カスタム エンドポイントを IoT ハブに追加します。 IoT ハブがカスタム エンドポイントにアクセスできるようにするには、ファイアウォール構成が設定されている場合は、信頼された Microsoft ファースト パーティの例外を有効にしてください。
信頼できる Microsoft サービス オプションの価格
信頼された Microsoft ファースト パーティ サービスの例外機能は無料です。 プロビジョニングされたストレージ アカウント、イベント ハブ、または Service Bus リソースの料金は個別に適用されます。
次のステップ
IoT Hub の機能の詳細については、次のリンクを参照してください。