編輯

共用方式為


使用 Azure IoT 中樞 私下將檔案上傳至 Azure 儲存體 帳戶

Azure IoT 中樞
Azure 儲存體
Azure 防火牆
Azure 虛擬網路
Azure 應用程式閘道

解決方案構想

本文說明解決方案概念。 您的雲端架構設計人員可以使用本指南,協助可視化此架構的一般實作的主要元件。 使用本文作為起點,設計符合您工作負載特定需求的架構良好解決方案。

本文說明如何使用專用網將檔案上傳至 Azure 儲存體 帳戶。

針對一般的 Azure IoT 部署,IoT 用戶端裝置必須直接與記憶體帳戶通訊,才能上傳檔案。 IoT 用戶端裝置通常會分散於不同的位置,而且它們不屬於專用網,因此它們會透過公用因特網連線。 您無法將這些裝置整合到專用網中,因此記憶體帳戶會要求您允許連入因特網流量。

但是,如果您有更嚴格的網路分割需求,則可以限制從專用網記憶體取記憶體帳戶。 此解決方案會封鎖直接因特網流量到記憶體帳戶,讓記憶體帳戶只接受通過輸入 Azure 應用程式閘道 實例的流量。 如果您實作中樞輪輻網路拓撲,Azure 防火牆 通常必須檢查流量,以提供額外的安全性層。

架構

顯示 Azure IoT 中樞 私人檔案上傳架構的圖表。

下載此架構的 Visio 檔案

工作流程

下列工作流程會對應至上圖。

  1. 中樞輪輻網路拓撲具有與每個資源虛擬網路對等互連的中樞虛擬網路,也稱為 輪輻。 所有流量都會通過 Azure 防火牆 進行交通檢查。

  2. Azure Blob 儲存體 帳戶會拒絕公用因特網存取。 它只允許來自其他虛擬網路的連線。 資源實例規則可讓所選 Azure IoT 中樞 服務透過受控識別進行連線。 Blob 記憶體帳戶僅支援 Azure 角色型存取控制 (RBAC) 以進行資料平面存取。

  3. 應用程式閘道具有自定義功能變數名稱系統(DNS),並終止傳輸層安全性 (TLS) 流量。 它位於虛擬網路內。 此虛擬網路會與 Blob 記憶體帳戶的私人連結所使用的虛擬網路對等互連。 透過中樞虛擬網路的強制通道會建立連線。

  4. 使用 IoT 中樞 SDK 的 IoT 用戶端裝置會要求共用存取簽章 (SAS) URI,以上傳檔案至 IoT 中樞。 IoT 用戶端裝置會透過公用因特網傳送要求。

  5. IoT 中樞 處理裝置的這個要求。 它會透過受控識別驗證直接連線到 Blob 記憶體帳戶,其具有 使用者委派密鑰要求的記憶體 Blob 資料參與者 許可權。

    IoT 中樞 要求使用者委派密鑰給 Blob 記憶體帳戶。 短期 SAS 令牌會授與 Blob 容器中要求 Blob 的裝置讀寫許可權。

  6. IoT 中樞 將公用 Blob 記憶體帳戶 URI 和 SAS 令牌傳送至 IoT 用戶端裝置,以及相互關聯識別符。

  7. IoT 用戶端裝置具有邏輯,以自定義網域取代公用 Blob 記憶體 URI,例如 裝置對應項。 IoT 裝置會使用標準 Blob 記憶體 SDK,透過自訂 Blob 記憶體 DNS 上傳檔案。

  8. 應用程式閘道 從用戶端裝置接收 HTTP POST,並透過 Azure Private Link 將其傳送至 Blob 記憶體帳戶。

  9. 檔案上傳完成後,IoT 用戶端裝置會使用 Azure IoT SDK 來通知 IoT 中樞。

    如果已設定通知,IoT 用戶端裝置會更新檔案上傳狀態,讓 IoT 中樞 可以觸發檔案上傳通知至後端服務。 用戶端裝置也會在 IoT 中樞 中釋放與檔案上傳相關聯的資源。

元件

  • 應用程式閘道 是一種平臺即服務(PaaS)受控解決方案,可用來建置高度安全、可調整且高可用性的前端。 在此架構中,應用程式閘道 處理連入因特網 HTTPS 流量、套用 TLS 終止、與 Blob 記憶體帳戶交涉 TLS,以及透過專用網將流量轉送至 Blob 儲存器帳戶。

  • Azure 防火牆 為您的 Azure 虛擬網絡 資源提供保護。 在此架構中,Azure 防火牆 篩選和路由周邊網路與輪輻網路之間的流量。

  • IoT 中樞 是 PaaS 管理的解決方案,可作為 IoT 應用程式與其管理裝置之間雙向通訊的中央訊息中樞。 在此架構中,IoT 中樞 是IoT用戶端裝置連線以進行控制和數據平面作業的中央端點。

  • Private Link 提供 Azure 平台上裝載之服務的私人存取權,同時將數據保留在Microsoft網路上。 在此架構中,Private Link 提供 應用程式閘道 與 Blob 記憶體帳戶之間的私人通訊。

  • 記憶體提供持久、高可用性且可大幅調整的雲端記憶體解決方案。 它包含物件、檔案、磁碟、佇列和數據表記憶體功能。 在此架構中,裝置會使用 Blob 記憶體,透過 IoT 中樞 透過使用者委派提供的短期 SAS 令牌,將檔案上傳至雲端。

  • 私用 DNS 區域提供可靠的增強式安全性 DNS 服務,以管理及解析虛擬網路中的功能變數名稱,而不需要自定義 DNS 解決方案。 在此架構中,私人 DNS 區域會提供 Blob 記憶體的私人 DNS 專案,讓記憶體 Blob 端點轉譯為網路內的私人 IP 端點。

  • 虛擬網絡 是 Azure 中專用網的基本建置組塊。 此服務可讓許多類型的 Azure 資源,例如 Azure 虛擬機,以增強安全性彼此通訊、因特網和內部部署網路。 此架構會使用 虛擬網絡 來建置專用網拓撲,以避免 Azure 型服務的因特網公用端點。

案例詳細資料

針對一般部署,Azure IoT 用戶端裝置必須直接與記憶體帳戶通訊以上傳檔案。 停用記憶體帳戶上的因特網流量會封鎖任何用戶端IoT用戶端裝置上傳檔案。 IoT 中樞 檔案上傳功能只能做為使用者委派,以產生具有 Blob 讀寫許可權的 SAS 令牌。 檔案上傳本身不會通過 IoT 中樞。 IoT 用戶端裝置會使用一般 Blob 記憶體 SDK 進行實際上傳。

在此案例中,IoT 中樞 與記憶體帳戶之間的通訊仍會通過公用端點。 此例外狀況可透過資源實例的記憶體網路設定來達成。 您可以停用記憶體帳戶的公用因特網存取,並允許 Azure 服務和特定資源實例透過 Azure 骨幹連線。 此網路周邊會與使用 Azure RBAC 限制數據平面存取的Microsoft Entra ID 型身分識別周邊配對。

此架構會將受控識別指派給 IoT 中樞。 受控識別會指派記憶體 Blob 數據參與者的角色給指定的記憶體帳戶。 透過此許可權,IoT 中樞 可以要求使用者委派密鑰來建構 SAS 令牌。 IoT 用戶端裝置會接收檔案上傳程式的SAS令牌。

應用程式閘道 做為進入記憶體帳戶私人端點的要求進入點,該端點設定為唯一的後端。 應用程式閘道 使用公用IP位址。 您可以設定自訂 DNS 提供者,將公用 IP 位址對應至 A 記錄或 CNAME 記錄。

如果您有內部安全性需求來針對許多 Azure PaaS 服務使用私人端點,您可以實作此案例,以提供較短的驗證週期,以在生產環境中部署 IoT 解決方案。

潛在使用案例

此架構可以套用至任何使用需要與未公開公開記憶體帳戶通訊之裝置的案例。

例如,工業自動化廠商提供受控連線邊緣控制器和感測器。 這些感測器需要透過公用因特網與 Azure 雲端通訊,但廠商的安全性小組需要拒絕記憶體帳戶的公用因特網存取。 此架構符合此需求。

替代項目

如果您不需要具有 Azure 防火牆 流量檢查的中樞輪輻網路拓撲,您可以實作簡化的網路拓撲,以受益於此方法。 您可以使用具有不同子網的單一虛擬網路來容納 應用程式閘道、Private Link 和私人 DNS 區域。 記憶體帳戶和 IoT 中樞 可以使用與原始架構相同的組態。

簡化架構的優點包括降低複雜度和成本。 如果您沒有中樞輪輻拓撲的特定商務或企業需求,請使用簡化的架構來消除記憶體帳戶中的公用因特網端點。 這種方法也有助於確保使用 IoT 中樞 檔案上傳功能的IoT應用程式正常運作。

如需部署類似架構的範例,請參閱透過私人端點設定 IoT 中樞 檔案上傳至記憶體。 此範例會部署仿真的IoT用戶端裝置,並使用裝置對應項來取代記憶體帳戶的自定義功能變數名稱。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

其他投稿人:

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

後續步驟

瞭解如何使用 IoT 中樞 上傳檔案。