Share via


IoT Central のプライベート エンドポイントを作成して構成する

Azure Virtual Network のプライベート エンドポイントを使用して、デバイスを IoT Central アプリケーションに接続することができます。

プライベート エンドポイントでは、仮想ネットワーク アドレス空間のプライベート IP アドレスを使用して、デバイスを IoT Central アプリケーションにプライベートに接続します。 仮想ネットワーク上のデバイスと IoT プラットフォーム間のネットワーク トラフィックでは、仮想ネットワークおよび Microsoft バックボーン ネットワーク上のプライベート リンクを経由することで、パブリック インターネットでさらされないようにします。 この記事では、IoT Central アプリケーションのプライベート エンドポイントを作成する方法を示します。

前提条件

  • 有効な Azure サブスクリプション Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
  • IoT Central アプリケーション 詳細については、「IoT Central アプリケーションを作成する」を参照してください。
  • ご利用の Azure サブスクリプションの仮想ネットワーク。 詳細については、「仮想ネットワークを作成する」を参照してください。 このガイドの手順を完了するために、Bastion ホストまたは仮想マシンは必要ありません。

プライベート エンドポイントの作成

IoT Central アプリケーションのプライベート エンドポイントを作成するためのいくつかの方法があります。

既存の IoT Central アプリケーションでプライベート エンドポイントを作成するには:

  1. Azure portal で、アプリケーションに移動してから [ネットワーク] を選択します。

  2. [プライベート エンドポイント接続] タブを選択してから、[+ プライベート エンドポイント] を選択します。

  3. [基本] タブで、名前を入力してプライベート エンドポイントのリージョンを選択します。 その後、[次へ: リソース] を選択します。

  4. [ リソース ] タブが自動的に設定されます。 [次へ: 仮想ネットワーク] を選択します。

  5. [仮想ネットワーク] タブで、プライベート エンドポイントをデプロイする [仮想ネットワーク][サブネット] を選択します。

  6. 同じタブの [プライベート IP 構成] セクションで、[IP アドレスを動的に割り当てる] を選択します。

  7. [次: DNS] を選びます。

  8. [DNS] タブで、[プライベート DNS ゾーンと統合する] で [はい] を選択します。プライベート DNS は、必要なすべてのエンドポイントを仮想ネットワーク内のプライベート IP アドレスに解決します。

    プライベート DNS 統合を示す Azure portal のスクリーンショット。

    注意

    IoT Central には自動スケーリング機能があるため、可能な限り [プライベート DNS 統合] オプションを使用する必要があります。 何らかの理由でこのオプションを使用できない場合は、「カスタム DNS サーバーを使用する」を参照してください。

  9. タグを選択します。

  10. [タグ] タブで、必要なタグを構成し、[次へ: 確認と作成] を選択します。

  11. 構成の詳細を確認し、[作成] を選択してプライベート エンドポイント リソースを作成します。

プライベート エンドポイントの作成の要約を示す Azure portal のスクリーンショット。

プライベート エンドポイントの作成を確認する

プライベート エンドポイントの作成が完了したら、Azure portal でアクセスできます。

アプリケーション用に作成されたプライベート エンドポイントをすべて表示するには:

  1. Azure portal で、IoT Central アプリケーションに移動してから、[ネットワーク] を選択します。

  2. [プライベート エンドポイント接続] タブを選択します。次の表にはアプリケーション用に作成されたすべてのプライベート エンドポイントが示されています。

カスタム DNS サーバーを使用する

状況によっては、仮想ネットワークのプライベート DNS ゾーンと統合できない場合があります。 たとえば、独自の DNS サーバーを使用したり、仮想マシン上のホスト ファイルを使って DNS レコードを作成したりする場合があります。 このセクションでは、DNS ゾーンにアクセスする方法について説明します。

  1. chocolatey をインストールします。

  2. ARMClient をインストールします。

    choco install armclient
    
  3. ARMClient でサインインします。

    armclient login 
    
  4. 次のコマンドを使用して、IoT Central アプリケーションのプライベート DNS ゾーンを取得します。 プレースホルダーは、IoT Central アプリケーションの詳細に置き換えてください。

    armclient GET /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.IoTCentral/IoTApps/<AppName>/privateLinkResources?api-version=2021-11-01-preview
    
  5. 応答を確認します。 必要な DNS ゾーンは、応答ペイロードの requiredZoneNames 配列内にあります。

    {  
      "value": [  
        {  
          "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.IoTCentral/IoTApps/<AppName>/privateLinkResources/iotApp",  
          "name": "ioTApp",  
          "type": "Microsoft.IoTCentral/IoTApps/privateLinkResources",  
          "location": "<the region of your application>",  
          "properties": {  
          "groupId": "iotApp",  
          "requiredMembers":[  
            "<IoTCentral Name>",  
            "<DPS Name>",  
            "<IoTHub1 Name>",  
            "<IoTHub2 Name>",  
            "<EH1 Name>",  
            "<EH2 Name>"],  
          "requiredZoneNames": [  
            "privatelink.azureiotcentral.com",  
            "privatelink.azure-devices.net",  
            "privatelink.servicebus.windows.net",  
            "privatelink.azure-devices-provisioning.net"],  
          "provisioningState": "Succeeded"}  
        }  
      ]  
    }
    
  6. Azure portal で、プライベート エンドポイントに移動し、[DNS の構成] を選択します。 このページでは、DNS 名への IP アドレス マッピングに必要な情報を確認できます。

プライベート DNS 構成を示す Azure portal のスクリーンショット。

警告

この情報を使用して、カスタム DNS サーバーに必要なレコードを設定することができます。 可能な限り、仮想ネットワークのプライベート DNS ゾーンと統合し、独自のカスタム DNS サーバーを構成しないようにしてください。 IoT Central アプリケーションのプライベート エンドポイントは、他の Azure PaaS サービスとは異なります。 IoT Central の自動スケールなど、場合によっては、IoT Central により、プライベート エンドポイントを介してアクセスできる IoT Hub の数がスケールアウトされます。 独自のカスタム DNS サーバーを設定することにした場合は、IoT Central によって自動スケールされるたびに DNS レコードを更新し、後で IoT ハブの数がスケールインされたときにレコードを削除する必要があります。

パブリック アクセスを制限する

IoT Central へのデバイスのパブリック アクセスを制限するには、パブリック エンドポイントからのアクセスをオフにします。 パブリック アクセスをオフにした後、デバイスではパブリック ネットワークから IoT Central に接続できず、プライベート エンドポイントを使用する必要があります。

  1. Azure portal で、IoT Central アプリケーションに移動してから [ネットワーク] を選択します。

  2. [ パブリック アクセス ] タブで、パブリック ネットワーク アクセスに 対して [無効 ] を選択します。

  3. 必要に応じて、IoT Central アプリケーションのパブリック エンドポイントに接続できる IP アドレスと範囲のリストを定義できます。

  4. [保存] を選択します。

プライベート エンドポイントへの接続

IoT Central アプリケーションのパブリック ネットワーク アクセスを無効にすると、デバイスは Device Provisioning Service (DPS) グローバル エンドポイントに接続できません。 これは、DPS の唯一の FQDN に仮想ネットワークのダイレクト IP アドレスが含まれるためです。 現在、グローバル エンドポイントに到達できません。

IoT Central アプリケーションのプライベート エンドポイントを構成すると、IoT Central サービス エンドポイントがダイレクト DPS エンドポイントを反映するように更新されます。

ダイレクト DPS エンドポイントを使用するためにデバイス コードを更新します。

ダイレクト DPS エンドポイントを示す IoT Central アプリケーションのスクリーンショット。

ベスト プラクティス

  • プライベート リンク サブドメイン URL を使用して、IoT Central にデバイスを接続しないでください。 プライベート エンドポイントを作成した後は、IoT Central アプリケーションに表示される DPS URL を常に使用してください。

  • DNS 管理には Azure によって提供されるプライベート DNS ゾーンを使用します。 独自の DNS サーバーは使用しないようにしてください。IoT Central によってリソースが自動スケールされるので、DNS 構成を維持するために常に更新する必要があるためです。

  • 同じ IoT Central リソースに対して複数のプライベート エンドポイントを作成する場合、FQDN は DNS ゾーンで上書きされる可能性があるため、再度追加する必要があります。

制限事項

  • 現在、プライベート接続は、IoT Central アプリケーション内の基になる IoT ハブと DPS へのデバイス接続でのみ有効になっています。 IoT Central Web UI および API は引き続きパブリック エンドポイントを介して動作します。

  • プライベート エンドポイントは、仮想ネットワークと同じリージョンに存在する必要があります。

  • パブリック ネットワーク アクセスを無効にする場合:

    • IoT Central のシミュレートされたデバイスは、仮想ネットワークへの接続がないため、機能しません。

    • グローバル DPS エンドポイント (global.device-provisioning.net) にはアクセスできません。 デバイス ファームウェアを更新して、ダイレクト DPS インスタンスに接続します。 ダイレクト DPS URL は、IoT Central アプリケーションの [デバイス接続グループ] ページで確認できます。

  • プライベート エンドポイントを構成した後で、IoT Central アプリケーションの名前を変更することはできません。

  • プライベート エンドポイントや IoT Central アプリケーションを別のリソース グループやサブスクリプションに移動することはできません。

  • サポートは IPv4 に制限されています。 IPv6 はサポートされていません。

トラブルシューティング

プライベート エンドポイントへの接続で問題が発生した場合は、次のトラブルシューティング ガイダンスを使用してください。

接続状態を確認する

プライベート エンドポイントの接続状態が [承認済み] に設定されていることを確認します。

  1. Azure portal で、アプリケーションに移動してから [ネットワーク] を選択します。
  2. [プライベート エンドポイント接続] タブを選択します。接続状態がプライベート エンドポイントに対して [承認済み] であることを確認します。

仮想ネットワーク内でチェックを行う

次のチェックを使用して、同じ仮想ネットワーク内からの接続の問題を調べます。 プライベート エンドポイントを作成したのと同じ仮想ネットワークに仮想マシンをデプロイします。 仮想マシンにサインインして、次のテストを実行します。

名前解決が正しく機能していることを確認するには、プライベート エンドポイント DNS 構成内のすべての FQDN を反復処理し、nslookupTest-NetConnection、または他の同様のツールを使用してテストを実行し、各 DNS が対応する IP アドレスと一致することを確認します。

さらに、次のコマンドを実行して、各 FQDN の DNS 名が対応する IP アドレスと一致することを確認します。

#replace the <...> placeholders with the correct values 
nslookup iotc-….azure-devices.net 

結果は次の出力のようになります。

#Results in the following output: 
Server:127.0.0.53 
Address:127.0.0.53#53 

Non-authoritative answer: xyz.azure-devices.net
canonical name = xyz.privatelink.azure-devices.net
Name:xyz.privatelink.azure-devices.net
Address: 10.1.1.12

対応する IP アドレスと一致しない FQDN を見つけた場合は、カスタム DNS サーバーを修正します。 カスタム DNS サーバーを使用していない場合は、サポート チケットを作成します。

複数のプライベート エンドポイントがあるかどうかを確認する

1 つの IoT Central アプリケーションに対する複数のプライベート エンドポイントを作成または削除すると、DNS 構成が上書きされる可能性があります。

  • Azure portal で、プライベート エンドポイント リソースに移動します。
  • [DNS] セクションで、必要なすべてのリソース (IoT Hub、Event Hubs、DPS、IoT Central FQDN) のエントリがあることを確認します。
  • DNS の A レコードに、IP (およびこの DNS ゾーンを使用する他のプライベート エンドポイントの IP) が反映されていることを確認します。
  • 既に削除されている古いプライベート エンドポイントから IP の A レコードを削除します。

その他のトラブルシューティングのヒント

これらのチェックをすべて試した後も問題が発生する場合は、プライベート エンドポイントのトラブルシューティング ガイドを確認してみてください。

すべてのチェックが成功してもまだデバイスで IoT Central への接続を確立できない場合は、ファイアウォールとネットワーク全般を担当する企業セキュリティ チームに連絡してください。 エラーの潜在的理由は次のとおりです。

  • Azure 仮想ネットワークの構成ミス
  • ファイアウォール アプライアンスの構成ミス
  • Azure 仮想ネットワークでのユーザー定義ルートの構成ミス
  • デバイスと IoT Central リソース間のプロキシが正しく構成されていない

次のステップ

これで、アプリケーションのプライベート エンドポイントを作成する方法を学習しました。推奨される次の手順を以下に示します。