Azure Private Link を使用した仮想ネットワークの IoT Hub サポート

既定では、IoT Hub のホスト名は、インターネット経由でパブリックにルーティング可能な IP アドレスを持つパブリック エンドポイントにマップされます。 この IoT Hub パブリック エンドポイントはさまざまな顧客によって共有され、IoT デバイスはワイドエリア ネットワークやオンプレミス ネットワーク経由ですべてアクセスできます。

IoT Hub のパブリック エンドポイントの図。

メッセージのルーティングファイルのアップロードデバイスの一括インポートとエクスポートなどの一部の IoT Hub 機能では、パブリック エンドポイント経由での IoT Hub から顧客所有の Azure リソースへの接続も必要になります。 IoT Hub から顧客リソースへのエグレス トラフィックは、これらの接続パスで構成されています。

以下のようないくつかの理由で、自分が所有して運用する VNet を介した Azure リソース (IoT Hub を含む) への接続を制限したい場合があります。

  • パブリック インターネットへの接続の露出を防ぐことにより、IoT Hub にネットワークの分離を導入する。

  • オンプレミスのネットワーク資産からのプライベート接続エクスペリエンスを有効にすることで、データとトラフィックが Azure バックボーン ネットワークに直接送信されるようにする。

  • 機微なオンプレミス ネットワークからの抜き取り攻撃を防ぐ。

  • プライベート エンドポイントを使用して確立された Azure 全体の接続パターンに従う。

この記事では、IoT Hub へのイングレス接続に Azure Private Link を使用し、IoT Hub から他の Azure リソースへのエグレス接続に信頼された Microsoft サービスの例外を使用して、これらの目標を達成する方法について説明します。

プライベート エンドポイントは、Azure リソースに到達可能な、顧客所有の VNet 内に割り当てられたプライベート IP アドレスです。 Azure Private Link を使用すると、IoT ハブ用にプライベート エンドポイントを設定して、IoT Hub のパブリック エンドポイントにトラフィックを送信しなくても、VNet 内のサービスが IoT Hub に到達できるようにすることができます。 同様に、オンプレミスのデバイスでは 仮想プライベート ネットワーク (VPN) または ExpressRoute ピアリングを使用して、VNet と (プライベート エンドポイント経由で) IoT ハブに接続することができます。 その結果、IoT Hub の IP フィルターまたはパブリック ネットワーク アクセスの切り替えを使用することで、IoT Hub のパブリック エンドポイントへの接続を制限または完全にブロックすることができます。 この方法では、デバイスのプライベート エンドポイントを使用して、ハブへの接続を維持します。 この設定の主な対象は、オンプレミス ネットワーク内のデバイスです。 ワイドエリア ネットワークにデプロイされているデバイスには、この設定はお勧めできません。

IoT Hub 仮想ネットワークのイングレスの図。

続行する前に、確実に次の前提条件が満たされているようにしてください。

IoT Hub のイングレス用のプライベート エンドポイントを設定する

プライベート エンドポイントは、IoT Hub デバイス API (device-to-cloud メッセージなど) とサービス API (デバイスの作成や更新など) で機能します。

  1. Azure Portal で、IoT ハブに移動します。

  2. [ネットワーク]>[プライベート アクセス] を選択し、[プライベート エンドポイントの作成] を選択します。

    IoT Hub 用にプライベート エンドポイントを追加する場所を示すスクリーンショット。

  3. サブスクリプション、リソース グループ、名前、およびリージョンを指定して、新しいプライベート エンドポイントを作成します。 理想としては、プライベート エンドポイントをハブと同じリージョンに作成することをお勧めします。

  4. [次へ: リソース] を選択し、IoT Hub リソースのサブスクリプションを指定し、リソースの種類として "Microsoft.Devices/IotHubs"リソースとして IoT Hub の名前、ターゲット サブリソースとして iotHub を選択します。

  5. [次へ: 構成] を選択し、プライベート エンドポイントの作成先となる仮想ネットワークとサブネットを指定します。 必要に応じて、Azure プライベート DNS ゾーンと統合するオプションを選択します。

  6. [次へ: タグ] を選択し、必要に応じて、リソースのタグを指定します。

  7. [確認および作成] を選択して、プライベート リンク リソースを作成します。

組み込みの Event Hubs 互換エンドポイント

組み込みの Event Hubs 互換エンドポイントには、プライベート エンドポイント経由でもアクセスできます。 プライベート リンクを構成すると、組み込みエンドポイントの別のプライベート エンドポイント接続が表示されます。 FQDN に servicebus.windows.net が含まれているものです。

それぞれ IoT Hub プライベート リンクが指定されている、2 つのプライベート エンドポイントを示すスクリーンショット

IoT Hub の IP フィルターによって、必要に応じて、組み込みのエンドポイントへのパブリック アクセスを制御できます。

IoT Hub へのパブリック ネットワーク アクセスを完全にブロックするには、パブリック ネットワーク アクセスをオフにするか、IP フィルターを使用してすべての IP をブロックし、組み込みのエンドポイントに規則を適用するオプションを選択します。

料金の詳細については、「Azure Private Link の料金」をご覧ください。

IoT Hub から他の Azure リソースへのエグレス接続

IoT Hub は、リソースのパブリック エンドポイントを経由したメッセージのルーティングファイルのアップロードデバイスの一括インポートとエクスポートのために Azure BLOB ストレージ、イベント ハブ、Service Bus のリソースに接続できます。 リソースを VNet にバインドすると、リソースへの接続が既定でブロックされます。 その結果、この構成では、IoT ハブがリソースにデータを送信できなくなります。 この問題を解決するには、信頼された Microsoft サービス オプションを使用して、IoT Hub リソースからストレージ アカウント、イベント ハブ、または Service Bus のリソースへの接続を有効にします。

他のサービスが IoT ハブを信頼された Microsoft サービスとして検出できるようにするには、ハブでマネージド ID を使用する必要があります。 マネージド ID がプロビジョニングされたら、カスタム エンドポイントにアクセスするために、ハブのマネージド ID にアクセス許可を付与します。 IoT Hub でのマネージド ID のサポートに関する記事に従って、Azure ロールベースのアクセス制御 (RBAC) のアクセス許可でマネージド ID をプロビジョニングし、カスタム エンドポイントを IoT ハブに追加します。 ファイアウォールの構成が整っている場合は、信頼された Microsoft ファースト パーティの例外をオンにして、IoT ハブがカスタム エンドポイントにアクセスできるようにしてください。

信頼された Microsoft サービス オプションの価格

信頼された Microsoft ファースト パーティ サービスの例外機能は、無料でご利用いただけます。 プロビジョニング済みのストレージ アカウント、Event Hubs、または Service Bus リソースの料金は個別に適用されます。

次のステップ

IoT Hub の機能の詳細について、下記のリンク使用してください。