如何連結和管理 IoT 中樞

Azure IoT 中樞裝置佈建服務 (DPS) 可以跨一或多個 IoT 中樞佈建裝置。 在 DPS 可以將裝置布建至 IoT 中樞之前,它必須能夠寫入 IoT 中樞裝置登錄。 本文提供如何連結 IoT 中樞並在 DPS 執行個體中進行管理的指示。 連結後,IoT 中樞就可以在配置原則中使用。 配置原則會決定 DPS 如何將裝置指派給 IoT 中樞。

連結的IoT中樞設定

[裝置佈建服務] 只能將裝置佈建至已連結的 IoT 中樞。 將 IoT 中樞連結至 DPS 執行個體,會讓 DPS 執行個體擁有 IoT 中樞裝置登錄的讀取/寫入權限。 有了這些權限,DPS 就能註冊裝置識別碼,並在裝置對應項中設定初始組態。 連結的 IoT 中樞可能位於任何 Azure 區域中。 您可以將其他訂用帳戶中的中樞連結到您的 DPS 執行個體。

IoT 中樞連結至 DPS 之後,就有資格參與配置。 其是否參與指派以及如何參與,取決於裝置透過註冊項目進行佈建時所用的設定,以及已連結的 IoT 中樞本身的設定。

下列設定可控制 DPS 如何使用連結的 IoT 中樞:

  • 連接字串:設定 DPS 用來連線至連結 IoT 中樞的 IoT 中樞連接字串。 連接字串是以其中一個 IoT 中樞的共用存取原則為基礎。 DPS 需要 IoT 中樞的下列權限:RegistryWriteServiceConnect。 連接字串必須適用於具有這些權限的共用存取原則。 若要深入瞭解 IoT 中樞共用存取原則,請參閱 IoT 中樞存取控制和權限

  • 認證類型:控制 DPS 如何與連結的物聯網集線進行認證。 支援的值為 KeyBased(連接字串)、SystemAssigned(系統指派的受控識別)及 UserAssigned(使用者指派的受控識別)。 請參考 「利用管理身份連結物聯網中樞」。

  • 主機名稱類型:設定 DPS 在佈建裝置時使用哪種類型的 IoT 中樞 端點。 classic可用於標準端點或device支援 TLS 1.3 的裝置端點。 請參見 「使用 TLS 1.3 端點來連結集線器」。

  • 分配權重:決定當 DPS 在一組 IoT 中樞之間對裝置指派進行雜湊時,某個 IoT 中樞被選中的可能性。 此值可介於 1 到 1000 之間。 預設值是 1 (或 null)。 較高的值會增加選取 IoT 中樞的機率。

  • 套用配置原則:設定 IoT 中樞是否參與配置原則。 預設值為 [是] (true)。 如果設定為 [否 ] (false),則不會將裝置指派給 IoT 中樞。 仍可在註冊項目中選取 IoT 中樞,但其不會參與指派。 您可以使用此設定,將 IoT 中樞暫時或永久設為不參與指派;例如,當其接近允許的裝置數量上限時。

若要瞭解 DPS 配置原則,以及連結 IoT 中樞如何參與配置,請參閱管理配置原則

限制

新增連結 IoT 中樞

您可以新增位於訂用帳戶內部或外部的 IoT 中樞。 當您連結 IoT 中樞時,它在現有註冊項目的指派中可能會或可能不會可供使用:

  • 對於未明確設定要對哪些 IoT 中樞套用配置原則的註冊項目,新連結的 IoT 中樞會立即開始參與配置。

  • 對於明確設定 IoT 中樞以套用配置原則的註冊,您必須手動或以程式設計方式將新的 IoT 中樞新增至註冊設定,使其參與配置。

在 Azure 入口網站中,您可以從 DPS 執行個體的左側功能表連結 IoT 中樞,或在建立或更新註冊項目時,從註冊項目中連結 IoT 中樞。 在這兩種情況下,IoT 中樞的範圍及於 DPS 執行個體 (不只是註冊)。

若要在 Azure 入口網站中將 IoT 中樞連結至您的 DPS 執行個體:

  1. 在 DPS 執行個體的左側功能表上,選取 [連結的 IoT 中樞]

  2. 在頁面頂端,選取+ 新增

  3. 在 [將連結新增至 IoT 中樞] 頁面上,選取包含 IoT 中樞的訂用帳戶,然後從 [IoT 中樞清單] 中選擇 IoT 中樞的名稱。

  4. 選取 IoT 中樞之後,請選擇 DPS 將用來連線至 IoT 中樞的存取原則。 [存取原則] 清單會顯示在已定義 RegistryWriteServiceConnect 權限之所選 IoT 中樞上定義的所有共用存取原則。 預設值為 iothubowner 原則。 選取您要使用的原則。

  5. 選取 儲存

附註

在 Azure 入口網站中,您無法在新增連結 IoT 中樞時設定 [配置權數] 和 [套用配置原則] 設定。 相反地,在連結IoT中樞之後更新這些設定。

DPS 也支援使用建立或更新 DPS 資源 REST API、Resource Manager 範本DPS 管理 SDK 來連結 IoT 中樞。

你可以使用受控識別將 IoT 中樞連結至 DPS,而不使用共用存取金鑰連接字串。 DPS 支援系統指派與使用者指派的管理身份。

先決條件

  • 你必須在你的 DPS 實例啟用管理身份後再連結。
  • 受管理身份必須在目標 IoT hub 上擁有 IoT 中樞 資料貢獻者角色(或自訂RegistryWriteServiceConnect角色,並具備權限)。

要為你的 DPS 實例指派系統指定的身份:

az iot dps identity assign --name <dps-name> --resource-group <resource-group> --system

若要指派使用者指派的身分識別:

az identity create --name <identity-name> --resource-group <resource-group>
UAMI_ID=$(az identity show --name <identity-name> --resource-group <resource-group> --query id --output tsv)
az iot dps identity assign --name <dps-name> --resource-group <resource-group> --user $UAMI_ID
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --authentication-type SystemAssigned
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --authentication-type UserAssigned \
  --user-assigned-identity <identity-resource-id>

附註

--hostname-type service這個選項不支援 DPS 的連結集線器操作。

使用 TLS 1.3 端點來連結集線器(預覽版)

當你將物聯網集線器連結到 DPS 時,可以選擇 DPS 在配置裝置時使用的端點。 預設情況下,新連結會使用 TLS 1.3 支援的裝置端點。

主機名稱類型 DPS 使用的端點
classic <hub>.azure-devices.net
device (新連結預設) <hub>.device.azure-devices.net

連結時要指定端點類型:

# Link using the TLS 1.3 device endpoint (default)
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --hostname-type device

# Link using the classic endpoint
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --hostname-type classic

將連結中樞遷移到 TLS 1.3 端點

這個 az iot dps linked-hub update 指令不支援在現有連結上更改 --hostname-type ;它被拒絕為未被識別的參數。 若要將已連結的中樞移至另一個端點,請使用所需的 --hostname-type 建立新的連結,然後依其完整主機名稱刪除舊連結。

# Create a new link that uses the TLS 1.3 device endpoint
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --hostname-type device

# Delete the old link by its full hostname (for example, the classic endpoint)
az iot dps linked-hub delete \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --linked-hub <hub-name>.azure-devices.net

Important

如果配置政策將裝置分散到多個使用不同端點類型的連結集線器,請確保所有裝置都支援它們可能被指派的端點。 配置至 TLS 1.3 端點的裝置必須支援 SNI 及所需的密碼套件。 如需詳細資訊,請參閱 TLS 1.3 支援

更新已連結的 IoT 中樞

您可以更新已連結 IoT 中樞的設定,以變更其指派權數、是否可對其套用指派原則,以及 DPS 用來與其連線的連線字串。 當您更新 IoT 中樞的設定時,變更會立即生效,無論 IoT 中樞是在註冊上指定還是根據預設使用。

在 Azure 入口網站中,您可以更新 [配置權數] 和 [套用配置原則] 設定。

若要使用 Azure 入口網站更新連結 IoT 中樞的設定:

  1. 在 DPS 執行個體的左側功能表上,選取 [連結的 IoT 中樞],然後從清單中選取 IoT 中樞。

  2. 已連結的 IoT 中樞詳細資料 頁面上:

    顯示連結IoT中樞詳細數據頁面的螢幕快照。

    • 使用 [配置權數] 滑杆或文字方塊來選擇介於 1 到 1000 之間的權數。 預設值為 1。

    • 設定 [套用配置原則] 切換,以指定連結的 IoT 中樞是否應該包含在配置中。

  3. 儲存您的設定。

附註

您無法更新 DPS 用來從 Azure 入口網站連線至 IoT 中樞的連接字串。 請改用 Azure CLI 來更新 連接字串,或從 DPS 實例刪除連結的 IoT 中樞,然後重新連結。 若要深入瞭解,請參閱 連結IoT中樞的 更新金鑰一節。

DPS 也支援使用建立或更新 DPS 資源 REST API、Resource Manager 範本DPS 管理 SDK 來更新連結 IoT 中樞。

刪除已連結的 IoT 中樞

當您從 DPS 執行個體刪除連結的 IoT 中樞時,將無法再在未來註冊中設定。 不過,在現有登錄項目的指派中,它可能會被移除,也可能不會被移除:

  • 若註冊項目未明確設定要套用配置原則的 IoT 中樞,則已刪除的已連結 IoT 中樞將不再可供配置。

  • 對於明確設定要套用配置原則之 IoT 中樞的註冊,您必須手動或以程式設計方式從註冊設定中移除該 IoT 中樞,才能將其從配置參與中移除。 如果未這麼做,當裝置嘗試透過註冊程序進行佈建時,可能會發生錯誤。

若要從 Azure 入口網站中的您的 DPS 執行個體刪除已連結的 IoT 中樞:

  1. 在 DPS 執行個體的左側功能表上,選取 [連結的 IoT 中樞]

  2. 在 IoT 中樞清單中,選取您要刪除之 IoT 中樞或多個 IoT 中樞旁的核取方塊。 然後選取頁面頂端的 [刪除],並在出現提示時確認您的選擇。

DPS 也支援使用建立或更新 DPS 資源 REST API、Resource Manager 範本DPS 管理 SDK 從 DPS 執行個體刪除連結 IoT 中樞。

更新連結 IoT 中樞的金鑰

可能需要輪替或更新已連結至 DPS 之 IoT 中樞的對稱金鑰。 在此情況下,您也需要更新 DPS 中連結 IoT 中樞的連接字串設定。

在更新 IoT 中樞上的金鑰之後,到使用根據該金鑰產生的新連接字串更新 DPS 執行個體之前的這段期間,佈建到 IoT 中樞將會失敗。 基於這個理由,建議您使用 Azure CLI 來更新金鑰,因為您可以直接更新鏈接中樞上的 連接字串。 在 Azure 入口網站中,您必須先從 DPS 執行個體刪除 IoT 中樞,然後再重新連結,才能更新連線字串。

使用 Azure 入口網站 時,您無法更新連結 IoT 中樞的連接字串設定。 相反地,您必須從 DPS 實例刪除連結的 IoT 中樞,然後加以讀取。

若要更新 Azure 入口網站中連結 IoT 中樞的對稱金鑰:

  1. 在 Azure 入口網站 中 DPS 實例的左側功能表上,選取您要更新一或多個密鑰的 IoT 中樞。

  2. 在 [連結的 IoT 中樞詳細數據] 頁面上,記下 [配置權數] 和 [套用配置原則] 的值。 當您稍後將IoT中樞重新連結至 DPS 實例時,您需要這些值。 然後,選取 [管理資源] 以移至 IoT 中樞。

  3. 在 IoT 中樞的左側功能表中,於 [安全性設定] 底下,選取 [共用存取原則]

  4. 在 [共用存取原則] 的 [管理共用存取原則] 底下,選取 DPS 執行個體用來連線至連結 IoT 中樞的原則。

  5. 在頁面頂端,選取 [重新產生主索引鍵]、[重新產生次要金鑰] 或 [交換金鑰],並在出現提示時確認您的選擇。

  6. 返回您的 DPS 執行個體。

  7. 請遵循刪除連結的IoT中樞一節中的步驟,從 DPS 實例中刪除IoT中樞。

  8. 請依照 新增連結的 IoT 中樞 一節中的步驟,使用該原則的新連接字串,將 IoT 中樞重新連結至您的 DPS 執行個體。

  9. 如果您需要還原配置權數並套用配置原則設定,請遵循使用您在步驟 2 中儲存的值更新連結的 IoT 中樞一節中的步驟。

下一步