建立和設定 IoT Central 的私人端點
您可以使用 Azure 虛擬網路中的私人端點,將裝置連線到 IoT Central 應用程式。
私人端點會使用虛擬網路位址空間的私人 IP 位址,將裝置私下連線到 IoT Central 應用程式。 虛擬網路上的裝置和 IoT 平台之間的網路流量,會流經虛擬網路和 Microsoft 骨幹網路上的私人連結,以排除公開至網際網路的風險。 本文說明如何為您的 IoT Central 應用程式建立私人端點。
必要條件
- 啟用中的 Azure 訂用帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
- IoT Central 應用程式。 若要深入了解,請查看建立 IoT Central 應用程式。
- Azure 訂用帳戶中的虛擬網路。 若要深入了解,請參閱建立虛擬網路。 若要完成本指南中的步驟,不需要 Bastion 主機或虛擬機器。
建立私人端點
有數種方式可以建立 IoT Central 應用程式的私人端點:
- 使用 Azure 入口網站直接建立私人端點資源。 如果您沒有權限可存取需要私人端點的 IoT Central 應用程式,請使用此選項。
- 在現有的 IoT Central 應用程式上建立私人端點
若要在現有的 IoT Central 應用程式上建立私人端點:
在 Azure 入口網站中,瀏覽至您的應用程式,然後選取 [網路]。
選取 [私人端點連線] 索引標籤,然後選取 [+ 私人端點]。
在 [基本] 索引標籤上,輸入名稱並選取私人端點的區域。 然後選取 [下一步:資源]。
[資源] 索引標籤的內容會自動為您填入。 選取 [下一步:虛擬網路]。
在 [虛擬網路] 索引標籤上,選取您要在其中部署私人端點的虛擬網路和子網路。
在相同的索引標籤上,從 [私人 IP 設定] 區段中選取 [動態配置 IP 位址]。
選取 [下一步:DNS]。
在 [DNS] 索引標籤上,針對 [與私人 DNS 區域整合] 選取 [是]。私人 DNS 會將所有必要的端點解析為虛擬網路中的私人 IP 位址:
注意
由於 IoT Central 中的自動調整功能,您應盡可能使用私人 DNS 整合選項。 如果基於某些原因而無法使用此選項,請參閱使用自訂 DNS 伺服器。
選取 [下一步:標記]。
在 [標籤] 索引標籤上,設定您需要的任何標籤,然後選取 [下一步:檢閱 + 建立]。
檢閱設定詳細資料,然後選取 [建立] 以建立私人端點資源。
確認私人端點的建立
完成私人端點的建立時,您可以在 Azure 入口網站中存取端點。
若要查看已為您應用程式建立的所有私人端點:
在 Azure 入口網站中,瀏覽至您的 IoT Central 應用程式,然後選取 [網路]。
選取 [私人端點連線] 索引標籤。下表顯示已為您應用程式建立的所有私人端點。
使用自訂的 DNS 伺服器
在某些情況下,您可能無法與虛擬網路的私人 DNS 區域整合。 例如,您可以使用自己的 DNS 伺服器,或使用虛擬機上的主機檔案建立 DNS 記錄。 本節說明如何取得 DNS 區域。
安裝 chocolatey。
安裝 ARMClient:
choco install armclient
使用 ARMClient 登入:
armclient login
使用下列命令來取得 IoT Central 應用程式的私人 DNS 區域。 以您 IoT Central 應用程式的詳細資料取代預留位置:
armclient GET /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.IoTCentral/IoTApps/<AppName>/privateLinkResources?api-version=2021-11-01-preview
檢查回應。 所需的 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"} } ] }
在 Azure 入口網站中,瀏覽至您的私人端點,然後選取 [DNS 設定]。 在此頁面上,您可以找到 IP 位址對應至 DNS 名稱的必要資訊。
警告
此資訊可讓您將必要的記錄填入自訂 DNS 伺服器。 如果可能的話,您應該與虛擬網路的私人 DNS 區域整合,而不是設定您自己的自訂 DNS 伺服器。 IoT Central 應用程式的私人端點與其他 Azure PaaS 服務不同。 在某些情況下,例如 IoT Central 自動調整時,IoT Central 會擴增可透過私人端點存取的 IoT 中樞數目。 如果您選擇填入自己的自訂 DNS 伺服器,則每當 IoT Central 自動調整時,您必須更新 DNS 記錄,然後在 IoT 中樞縮減時移除記錄。
限制公用存取
若要限制裝置對 IoT Central 的公用存取,請關閉來自公用端點的存取。 關閉公用存取之後,裝置即無法從公用網路連線到 IoT Central,而且必須使用私人端點:
在 Azure 入口網站中,瀏覽至您的 IoT Central 應用程式,然後選取 [網路]。
在 [公用存取] 索引標籤上,針對公用網路存取選取 [停用]。
您可以選擇性地定義可連線到 IoT Central 應用程式公用端點的 IP 位址/範圍清單。
選取 [儲存]。
提示
如果您選擇定義可連線至 IoT Central 應用程式公用端點的 IP 位址/範圍清單,請務必包含裝置用於連線至 IoT Central 應用程式的任何 Proxy 的 IP 位址。
連線到私人端點
當您停用 IoT Central 應用程式的公用網路存取時,您的裝置無法連線至裝置佈建服務 (DPS) 全域端點。 這是因為 DPS 的唯一 FQDN 在您的虛擬網路中具有直接 IP 位址。 全域端點現在無法連線。
當您為 IoT Central 應用程式設定私人端點時,IoT Central 服務端點會更新以反映直接 DPS 端點。
更新您的裝置程式碼以使用直接 DPS 端點。
最佳作法
請勿使用私人連結子網域 URL 將裝置連線到 IoT Central。 建立私人端點之後,請一律使用 IoT Central 應用程式中顯示的 DPS URL。
使用 Azure 提供的私人 DNS 區域進行 DNS 管理。 請避免使用您自己的 DNS 伺服器,因為您將必須持續更新 DNS 設定,才能在 IoT Central 自動調整其資源時正常運作。
如果您為相同的IoT Central資源建立多個私人端點,DNS 區域可能會覆寫 FQDN,因此您應該再次新增它們。
限制
目前,僅針對裝置與 IoT Central 應用程式中基礎 IoT 中樞和 DPS 的連線啟用私人連線。 IoT Central Web UI 和 API 會繼續透過其公用端點運作。
私人端點必須與虛擬網路位於相同的區域中。
停用公用網路存取時:
IoT Central 模擬裝置無法連線至您的虛擬網路,因此無法運作。
無法存取全域 DPS 端點 (
global.device-provisioning.net
)。 更新您的裝置韌體以連線到直接 DPS 執行個體。 您可以在 IoT Central 應用程式的 [裝置連線群組] 頁面中找到直接 DPS URL。
設定私人端點之後,您無法重新命名 IoT Central 應用程式。
您無法將私人端點或 IoT Central 應用程式移至另一個資源群組或訂用帳戶。
支援僅限於 IPv4。 不支援 IPv6。
疑難排解
如果您在連線到私人端點時遇到問題,請使用下列疑難排解指引:
檢查連線狀態
請確定私人端點的連線狀態已設定為已核准。
- 在 Azure 入口網站中,瀏覽至您的應用程式,然後選取 [網路]。
- 選取 [私人端點連線] 索引標籤。請驗證已為您的私人端點核准連線狀態。
在虛擬網路內執行檢查
使用下列檢查來調查相同虛擬網路內的連線問題。 在建立私人端點的相同虛擬網路中部署虛擬機器。 登入虛擬機器,以執行下列測試。
若要確定名稱解析正常運作,請逐一查看私人端點 DNS 設定中的所有 FQDN,並使用 nslookup
、Test-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
如果您發現 FQDN 不符合其對應的 IP 位址,請修正您的自訂 DNS 伺服器。 如果您未使用自訂 DNS 伺服器,請建立支援票證。
檢查您是否有多個私人端點
如果您對單一 IoT Central 應用程式建立或刪除多個私人端點,則 DNS 設定可能遭到覆寫:
- 在 Azure 入口網站中,瀏覽至私人端點資源。
- 在 [DNS] 區段中,確定所有必要資源都有專案:IoT 中樞、事件中樞、DPS 和 IoT Central FQDN。
- 確認 IP (以及使用此 DNS 區域的其他私人端點 IP) 都反映在 DNS 的 A 記錄中。
- 從先前刪除的舊版私人端點中移除IP的任何 A 記錄。
更多疑難排解提示
如果嘗試過所有這些檢查之後,您仍然遇到問題,請嘗試使用私人端點疑難排解指南。
如果所有檢查都成功,且您的裝置仍然無法建立與 IoT Central 的連線,請連絡一般負責防火牆和網路的公司安全性小組。 可能的失敗原因包括:
- Azure 虛擬網路的設定錯誤
- 防火牆設備的設定錯誤
- Azure 虛擬網路中的使用者定義路由設定錯誤
- 裝置與 IoT Central 資源之間的 Proxy 設定錯誤
下一步
現在您已了解如何為應用程式建立私人端點,以下是建議的下一個步驟: