IoT 解決方案的安全性最佳做法
本概觀介紹了保護典型 Azure IoT 解決方案方面的重要概念。 每一節都包含可提供進一步詳細資料和指引的內容連結。
下圖顯示一般邊緣型IoT解決方案中元件的高階檢視。 本文著重於邊緣型IoT解決方案的安全性:
您可以將邊緣型IoT解決方案中的安全性分成下列三個區域:
資產安全性:保護您想要管理、監視及收集數據的實體或虛擬專案。
線上安全性:確保資產、邊緣和雲端服務之間的傳輸中所有數據都是機密且防竄改的。
邊緣安全性:在數據移動時保護數據,並儲存在邊緣中。
雲端安全性:保護資料在雲端移動和儲存的安全性。
通常,在以邊緣為基礎的解決方案上,您想要使用 Azure 安全性功能來保護端對端作業。 Azure IoT 作業具有內建的安全性功能,例如已啟用 Azure Arc 的 Kubernetes 叢集上的秘密管理、憑證管理和安全設定。 當 Kubernetes 叢集連線到 Azure 時,會起始對 Azure 的輸出連線,使用業界標準 SSL 來保護傳輸中的數據,並啟用數個其他安全性功能,例如:
- 使用適用於容器的 Azure 監視器來檢視並監視您的叢集。
- 使用 適用於容器的 Defender Microsoft 強制執行威脅防護。
- 透過套用原則 (包含適用於 Kubernetes 的 Azure 原則) 來確保治理。
- 從任何地方授與存取權並連線到 Kubernetes 叢集,並使用叢集上的 Azure 角色型存取控制 (Azure RBAC) 來管理存取權。
適用於IoT和適用於容器的Defender Microsoft
Microsoft適用於IoT的Defender是專為識別IoT和作業技術 (OT) 裝置、弱點和威脅而建置的統一安全性解決方案。 適用於容器的 Microsoft Defender 是一種雲端原生解決方案,可改善、監視和維護容器化資產 (Kubernetes 叢集、Kubernetes 節點、Kubernetes 工作負載、容器登錄、容器映像等等) 的安全性,以及其跨多雲端和內部部署環境之應用程式的安全性。
適用於 IoT 的 Defender 和適用於容器的 Defender 都可以自動監視本文中包含的一些建議。 適用於IoT的Defender和適用於容器的Defender應該是防禦的前線,以保護邊緣式解決方案。 若要深入了解,請參閱:
資產安全性
秘密管理:使用 Azure 金鑰保存庫 來儲存和管理資產的敏感性資訊,例如密鑰、密碼、憑證和秘密。 Azure IoT 作業會使用 Azure 金鑰保存庫 作為雲端上的受控保存庫解決方案,並使用適用於 Kubernetes 的 Azure 金鑰保存庫 秘密存放區擴充功能,將秘密從雲端同步處理,並將其儲存在邊緣作為 Kubernetes 秘密。 若要深入瞭解,請參閱 管理 Azure IoT 作業部署的秘密。
憑證管理:管理憑證對於確保資產與邊緣運行時間環境之間的安全通訊至關重要。 Azure IoT 作業提供管理憑證的工具,包括發行、更新和撤銷憑證。 若要深入瞭解,請參閱 Azure IoT 作業內部通訊的憑證管理。
針對資產選取防竄改硬體:選擇具有內建機制的資產硬體來偵測實體竄改,例如開啟裝置封面或移除裝置的一部分。 這些竄改訊號可以是上傳至雲端的數據流的一部分,向作員發出這些事件的警示。
啟用資產韌體的安全更新:使用可為您的資產啟用無線更新的服務。 使用安全路徑建置資產,以確保韌體版本的更新和密碼編譯保證,以在更新期間和之後保護您的資產。
安全地部署資產硬體:確保資產硬體部署盡可能防竄改,特別是在不安全的位置,例如公用空間或未監督的地區設定。 只啟用必要的功能,以將實體攻擊使用量降到最低,例如,如果不需要,請安全地涵蓋USB埠。
遵循裝置製造商安全性和部署最佳做法:如果裝置製造商提供安全性和部署指引,除了本文所列的一般指引之外,也請遵循該指引。
連線安全性
使用傳輸層安全性 (TLS) 來保護資產的連線:Azure IoT 作業中的所有通訊都會使用 TLS 加密。 為了提供安全默認體驗,以將邊緣型解決方案無意中暴露給攻擊者,Azure IoT 作業會使用預設根 CA 和 TLS 伺服器證書的簽發者來部署。 針對生產部署,我們建議使用您自己的 CA 簽發者和企業 PKI 解決方案。
請考慮使用企業防火牆或 Proxy 來管理輸出流量:如果您使用企業防火牆或 Proxy,請將 Azure IoT 作業端點 新增至您的允許清單。
加密訊息代理程序的內部流量:確保邊緣基礎結構內部通訊的安全性對於維護數據完整性和機密性很重要。 您應該設定 MQTT 訊息代理程式,以加密 MQTT 訊息代理程式前端與後端 Pod 之間的傳輸中內部流量和數據。 若要深入瞭解,請參閱 設定訊息代理程序內部流量和內部憑證的加密。
為 MQTT 訊息代理程式中的接聽程式設定具有自動憑證管理的 TLS:Azure IoT 作業可為 MQTT 訊息代理程式中的接聽程式提供自動憑證管理。 這樣可減少手動管理憑證的系統管理額外負荷、確保及時更新,並協助維護安全策略的合規性。 若要深入瞭解,請參閱 使用 BrokerListener 保護 MQTT 訊息代理程序通訊。
設定與 OPC UA 伺服器的安全連線:連線到 OPC UA 伺服器時,您應該判斷信任哪些 OPC UA 伺服器可安全地建立會話。 若要深入瞭解,請參閱 為 OPC UA 的連接器設定 OPC UA 憑證基礎結構。
Edge 安全性
讓邊緣運行時間環境保持最新狀態:使用最新的修補程式和次要版本,讓您的叢集和 Azure IoT 作業部署保持最新狀態,以取得所有可用的安全性和錯誤修正。 針對生產環境部署, 請關閉 Azure Arc 的自動升級,以完全控制何時將新更新套用至您的叢集。 相反地, 請視需要手動升級代理程式 。
確認 docker 和 helm 映射的完整性:將任何映射部署至叢集之前,請確認映射已由Microsoft簽署。 若要深入瞭解,請參閱 驗證映像簽署。
一律使用 X.509 憑證或 Kubernetes 服務帳戶令牌向 MQTT 訊息代理程式進行驗證:MQTT 訊息代理程式支援用戶端的多個驗證方法。 您可以將每個接聽程式埠設定為使用 BrokerAuthentication 資源有自己的驗證設定。 若要深入瞭解,請參閱 設定 MQTT 訊息代理程序驗證。
提供 MQTT 訊息代理程式中主題資產所需的最低許可權:授權原則會決定用戶端可以在訊息代理程式上執行的動作,例如連線、發佈或訂閱主題。 將 MQTT 訊息代理程式設定為搭配 BrokerAuthorization 資源使用一或多個授權原則。 若要深入瞭解,請參閱 設定 MQTT 訊息代理程序授權。
使用 Azure IoT 分層網路管理設定隔離網路環境(預覽版):Azure IoT 分層網路管理(預覽)是一個元件,可協助 Azure 與隔離網路環境中的叢集之間的連線。 在產業案例中,隔離的網路會遵循 ISA-95/Purdue 網路架構。 若要深入瞭解,請參閱 什麼是 Azure IoT 分層網路管理(預覽版)?。
雲端安全性
針對雲端聯機使用使用者指派的受控識別:一律使用受控識別驗證。 可能的話, 請在數據流端點中使用使用者指派的受控識別 ,以彈性和可稽核性。
部署可檢視性資源並設定記錄:可檢視性可讓您查看 Azure IoT 作業設定的每個層。 它可讓您深入解析問題的實際行為,進而提升網站可靠性工程的效益。 Azure IoT 作業可透過裝載在 Azure 中的自訂策展 Grafana 儀錶板來提供可檢視性。 這些儀錶板由適用於 Prometheus 的 Azure 監視器受管理服務和 Container Insights 技術支援。 在部署 Azure IoT 作業之前,先在叢集上部署可觀察性資源 。
使用 Azure RBAC 保護資產和資產端點的存取:Azure IoT Operations 中的資產和資產端點在 Kubernetes 叢集和 Azure 入口網站 中都有表示法。 您可以使用 Azure RBAC 來保護對這些資源的存取。 Azure RBAC 是一種授權系統,可讓您管理 Azure 資源的存取權。 您可以使用 Azure RBAC 來將權限授與特定範圍的使用者、群組及應用程式。 若要深入瞭解,請參閱 保護資產和資產端點的存取。
下一步
如需深入了解 IoT 安全性,請參閱: