使用 Windows 上的 TPM 大規模建立及布建 IoT Edge 裝置
適用於: IoT Edge 1.1
重要
IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版IoT Edge的詳細資訊,請參閱 更新IoT Edge。
本文提供使用信賴平台模組 (TPM) 自動布建適用於 Windows 裝置的 Azure IoT Edge 的指示。 您可以使用 Azure IoT 中樞裝置佈建服務自動佈建 IoT Edge 裝置。 如果您不熟悉自動佈建程序,請先檢閱佈建概觀再繼續。
注意
從 Azure IoT Edge 1.2 版開始,不支援使用 Windows 容器的 Azure IoT Edge。
請考慮使用新的方法來在 Windows 裝置上執行 IoT Edge、 Windows 上的 Azure IoT Edge for Linux。
如果您想要在 Windows 上使用適用於 Linux 的 Azure IoT Edge,您可以遵循對等操作指南中的步驟。
本文概述兩種方法。 請根據您的解決方案架構選取您的喜好設定:
- 使用實體 TPM 硬體自動布建 Windows 裝置。
- 自動布建執行模擬 TPM 的 Windows 裝置。 我們僅建議將此方法作為測試案例。 模擬 TPM 不會提供與實體 TPM 相同的安全性。
指示會根據您的方法而有所不同,因此請確定您位於正確的索引標籤上。
工作如下所示:
必要條件
實體 TPM 和虛擬 TPM 解決方案的必要條件相同。
雲端資源
- 使用中的 IoT 中樞
- Azure 中的 IoT 中樞裝置佈建服務執行個體,其與您的 IoT 中樞連結
- 如果您沒有裝置佈建服務執行個體,則可以遵循 IoT 中樞裝置佈建服務快速入門建立新的 IoT 中樞裝置佈建服務和連結 IoT 中樞與裝置佈建服務章節的指示。
- 裝置佈建服務開始執行之後,請從 [概觀] 頁面中複製 [識別碼範圍] 的值。 當您設定 IoT Edge 執行階段時會用到此值。
裝置需求
Windows 開發電腦。 本文使用 Windows 10。
注意
當您搭配裝置佈建服務並使用 TPM 證明時,需要 TPM 2.0。
當您使用 TPM 時,僅可建立個別裝置佈建服務註冊,無法建立群組裝置佈建服務註冊。
設定 TPM
在本節中,您會建置可用來擷取 TPM 註冊標識碼和簽署密鑰的工具。
請遵循設定 Windows 開發環境中的步驟來安裝和建置適用於 C 的 Azure IoT 裝置 SDK。
在提升許可權的 PowerShell 工作階段中執行下列命令,以建置 SDK 工具,以擷取 TPM 的裝置布建資訊。
cd azure-iot-sdk-c\cmake cmake -Duse_prov_client:BOOL=ON .. cd provisioning_client\tools\tpm_device_provision make .\tpm_device_provision
輸出視窗會顯示裝置的 註冊標識碼 和 簽署金鑰。 當您在裝置佈建服務中建立裝置的個別註冊時,請複製這些值以供稍後使用。
提示
如果您不想使用 SDK 工具來擷取資訊,您需要尋找另一種方法來取得布建資訊。 簽署金鑰是每個 TPM 晶片或從與其相關聯 TPM 晶片製造商所取得的唯一簽署金鑰。 您可以為 TPM 裝置衍生唯一的註冊識別碼。 例如,您可以建立簽署密鑰的 SHA-256 哈希。
在您擁有註冊識別碼和簽署金鑰之後,即可繼續。
建立裝置佈建服務註冊
使用 TPM 的佈建資訊,在裝置佈建服務中建立個別註冊。
在裝置佈建服務中建立註冊時,您就有機會宣告初始裝置對應項狀態。 在裝置對應項中,您可以根據解決方案中使用的任何計量 (例如區域、環境、位置或裝置類型) 來設定標記,來將裝置分組。 這些標記會用來建立自動部署。
提示
本文中的步驟適用於 Azure 入口網站,但您也可以使用 Azure CLI 建立個別註冊。 如需詳細資訊,請參閱 az iot dps enrollment。 CLI 命令中會使用啟用 Edge 旗標來指定 IoT Edge 裝置的註冊。
在 Azure 入口網站中,前往 IoT 中樞裝置佈建服務的執行個體。
在 [設定] 下方,選取 [管理註冊]。
選取 [新增個別註冊],然後完成下列步驟以設定註冊:
針對 [機制],選取 [TPM]。
提供您從 VM 或實體裝置複製的簽署金鑰和註冊識別碼。
視需要提供裝置的識別碼。 如果您未提供裝置識別碼,則會使用註冊識別碼。
選取 [True] 以宣告您的 VM 或實體裝置為 IoT Edge 裝置。
選擇您要將裝置連線到的連結 IoT 中樞,或選取 [連結到新的 IoT 中樞]。 您可以選擇多個中樞,然後系統會根據所選取的指派原則,將裝置指派給其中一個中樞。
視需要將標記值新增至 [初始裝置對應項狀態]。 您可以使用標記將裝置群組設定為模組部署的目標。 如需詳細資訊,請參閱大規模部署 IoT Edge 模組。
選取 [儲存]。
現在此裝置已有註冊,因此 IoT Edge 執行階段可以在安裝期間自動佈建此裝置。
安裝 IoT Edge
在本節中,您會準備適用於IoT Edge的 Windows VM 或實體裝置。 然後,您會安裝 IoT Edge。
Azure IoT Edge 會依賴 OCI 相容的容器執行階段。 Moby 是 Moby 型引擎,包含在安裝腳本中,這表示沒有額外的步驟可安裝引擎。
若要安裝 IoT Edge 執行時間:
以系統管理員身分執行 PowerShell。
使用 PowerShell 的 AMD64 工作階段,而不是 PowerShell(x86)。 如果您不確定所使用的工作階段類型,請執行下列命令:
(Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
執行 Deploy-IoTEdge 命令,其會執行下列工作:
- 檢查您的 Windows 電腦是否處於支援的版本
- 開啟容器功能
- 下載Moby引擎和IoT Edge運行時間
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Deploy-IoTEdge
如果出現提示,請重新啟動您的裝置。
當您在裝置上安裝 IoT Edge 時,您可以使用其他參數來修改程式,包括:
- 引導流量通過 Proxy 伺服器
- 將安裝程式指向本機目錄以進行離線安裝
如需這些其他參數的詳細資訊,請參閱 搭配 Windows 容器使用 IoT Edge 的 PowerShell 腳本。
使用雲端身分識別來佈建裝置
在裝置上安裝執行階段之後,請使用裝置用來連線到裝置佈建服務和 IoT 中樞的資訊,來設定裝置。
瞭解您在先前各節中收集的裝置布建服務 標識碼範圍 和裝置 註冊標識碼 。
在系統管理員模式下開啟 [Azure PowerShell] 視窗。 當您安裝 IoT Edge 而非 PowerShell 時,請務必使用 PowerShell 的 AMD64 會話。
命令
Initialize-IoTEdge
會在您的電腦上設定IoT Edge執行時間。 命令預設為使用 Windows 容器手動佈建。-Dps
使用旗標來使用裝置布建服務,而不是手動布建。將和
paste_registration_id_here
的佔位元值paste_scope_id_here
取代為您先前收集的數據。. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Initialize-IoTEdge -Dps -ScopeId paste_scope_id_here -RegistrationId paste_registration_id_here
確認安裝成功
如果運行時間已成功啟動,請移至IoT中樞,並開始將IoT Edge模組部署到您的裝置。 在您的裝置上使用下列命令來確認運行時間是否已安裝並成功啟動。
檢查 IoT Edge 服務的狀態。
Get-Service iotedge
檢查過去 5 分鐘內的服務記錄。
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
列出執行中的模組。
iotedge list
下一步
佈建新裝置時,裝置佈建服務註冊程序可讓您同時設定裝置識別碼和裝置對應項標記。 您可以使用自動裝置管理來使用這些值鎖定個別裝置或裝置群組。
了解如何使用 Azure 入口網站大規模部署和監視 IoT Edge 模組,或使用 Azure CLI 執行相同作業。