你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

保护 IoT 解决方案

使用 IoT 解决方案可以大规模连接、监视和控制 IoT 设备和资产。 在基于云的解决方案中,设备和资产直接连接到云。 在基于边缘的解决方案中,设备和资产连接到边缘运行时环境。 必须保护物理资产和设备、边缘基础结构和云服务,以保护 IoT 解决方案免受威胁。 此外,还必须保护流经 IoT 解决方案的数据,无论是在边缘还是云中。

本文提供有关如何最好地保护 IoT 解决方案的指导。 每个部分都包含指向提供进一步详细信息和指导的内容的链接。

下图显示了 典型基于边缘的 IoT 解决方案中组件的概要视图。 本文重点介绍基于边缘的 IoT 解决方案的安全性:

显示重点关注安全的 IoT 基于边缘的解决方案体系结构概览的示意图。

在基于边缘的 IoT 解决方案中,可以将安全性划分为以下四个方面:

  • 资产安全性:在本地部署 IoT 资产时保护它。

  • 连接安全:确保资产、边缘和云服务之间传输的所有数据受到严格保密并且不受篡改。

  • 边缘安全性:在数据移动和存储于边缘的过程中保护数据。

  • 云安全性:在数据移动时保护数据,并将其存储在云中。

Microsoft Defender for IoT 和 for Containers

Microsoft Defender for IoT 是一种统一的安全解决方案,专门为识别 IoT 和 OT 设备、漏洞和威胁而构建。 Microsoft Defender for Containers 是一款原生云解决方案,用于跨多云和本地环境改进、监视和维护容器化资产(Kubernetes 群集、Kubernetes 节点、Kubernetes 工作负载、容器注册表、容器映像等)及其应用程序的安全性。

Microsoft Defender for IoT 和 Defender for Containers 均可以自动监视本文中包含的一些建议。 Defender for IoT 和 Defender for Containers 应该作为一线防御手段,保护基于边缘的解决方案。 若要了解更多信息,请参阅以下文章:

资产安全

本部分提供有关如何保护资产(如工业设备、传感器和其他 IoT 解决方案一部分的设备)的指导。 资产的安全性对于确保其生成和传输的数据的完整性和机密性至关重要。

  • 使用 Azure Key Vault 和机密存储扩展:使用 Azure Key Vault 来存储和管理资产的敏感信息,例如密钥、密码、证书和机密。 Azure IoT 操作使用 Azure Key Vault 作为云端的托管保管库解决方案,同时使用 Kubernetes 的 Azure Key Vault 机密存储扩展将机密从云端同步下来并将其作为 Kubernetes 机密存储在边缘。 若要了解详细信息,请参阅管理 Azure IoT 操作部署的机密

  • 设置安全证书管理:管理证书对于确保资产与边缘运行时环境之间的安全通信至关重要。 Azure IoT 操作可以提供证书管理工具,包括颁发、续订和撤销证书。 更多内容,请参阅 Azure IoT 操作内部通信的证书管理

  • 选择防篡改硬件:选择具有内置机制的资产硬件来检测物理篡改,例如打开设备盖或删除设备的一部分。 这些篡改信号可以是上传到云的数据流的一部分,提醒操作员这些事件。

  • 为资产固件启用安全更新:使用为资产启用无线更新的服务。 构建具有安全更新路径和固件版本加密保证的资产,以保护设备在更新期间和更新之后的安全性。

  • 安全部署资产硬件:确保资产硬件部署尽可能实现防篡改,尤其是在不安全的位置(如公共空间或不受监管的地点)。 仅启用必要的功能来最大程度地减少物理攻击占用情况,例如,如果不需要,请安全地覆盖 USB 端口。

  • 遵循设备制造商安全和部署最佳做法:如果设备制造商提供安全和部署指南,请按照本指南以及本文中的一般指南进行作。

连接安全性

本部分提供有关如何保护资产、边缘运行时环境和云服务之间的连接的指导。 连接的安全性对于确保传输的数据的完整性和机密性至关重要。

  • 使用传输层安全性(TLS)保护来自资产的连接:Azure IoT 操作中的所有通信均使用 TLS 进行加密。 为了提供默认的安全体验,以最大程度地防止在无意中将基于边缘的解决方案暴露给攻击者,Azure IoT 操作使用 TLS 服务器证书的默认根 CA 证书和颁发者进行部署。 对于生产部署,我们建议使用自己的 CA 颁发者和企业 PKI 解决方案。

  • 自带 CA 进行生产:对于生产部署,请将默认自签名根 CA 替换为自己的 CA 颁发者,并与企业 PKI 集成,以确保信任和符合性。 更多内容,请参阅 Azure IoT 操作内部通信的证书管理

  • 考虑使用企业防火墙或代理来管理出站流量:如果你使用企业防火墙或代理,请将 Azure IoT 操作终结点添加到允许列表。

  • 加密消息代理的内部流量:确保边缘基础结构内部通信的安全性对于维护数据完整性和保密性非常重要。 你应当配置 MQTT 代理以加密在 MQTT 代理前端和后端 Pod 之间传输的内部流量。 更多内容,请参阅配置代理内部流量加密和内部证书

  • 为 MQTT 代理中的侦听器配置带自动证书管理的 TLS:Azure IoT 操作可为 MQTT 代理中的侦听器提供自动证书管理。 此功能可减少手动管理证书的管理开销,确保及时续订,并帮助维护安全策略的符合性。 更多内容,请参阅使用 BrokerListener 保证 MQTT 代理通信

  • 设置与 OPC UA 服务器的安全连接:连接到 OPC UA 服务器时,应确定要安全建立会话的受信任 OPC UA 服务器。 要了解详细信息,请参阅为 OPC UA 连接器配置 OPC UA 证书基础结构

  • 隔离和分段网络:使用网络分段和防火墙将 IoT作群集和边缘设备与其他网络资源隔离开来。 如果使用企业防火墙或代理,请将所需的终结点添加到允许列表。 若要了解详细信息,请参阅 生产部署指南 - 网络

边缘安全

本部分提供有关如何保护边缘运行时环境(即在边缘平台上运行的软件)的指导。 此软件处理资产数据并管理资产与云服务之间的通信。 边缘运行时环境的安全性对于确保处理和传输的数据的完整性和机密性至关重要。

  • 确实边缘运行时环境得到及时更新:使用最新的修补程序和次要版本获取所有可用的安全和 bug 修复,使群集和 Azure IoT 操作部署保持最新状态。 对于生产部署, 请关闭 Azure Arc 的自动升级 ,以完全控制何时将新更新应用到群集。 改为根据需要手动升级代理

  • 验证容器映像和 helm 映像的完整性:在将任何映像部署到群集之前,请验证映像是否已由Microsoft签名。 更多内容,请参阅验证映像签名

  • 始终使用 X.509 证书或 Kubernetes 服务帐户令牌通过 MQTT 代理进行身份验证:MQTT 代理支持客户端的多种身份验证方法。 可以使用 BrokerAuthentication 资源将每个侦听器端口配置为具有其自己的身份验证设置。 更多内容,请参阅配置 MQTT 代理身份验证

  • 提供 MQTT 代理中的主题资产所需的最低权限:授权策略确定客户端可以在代理上执行的操作,例如连接、发布或订阅主题。 将 MQTT 代理配置为将一个或多个授权策略与 BrokerAuthorization 资源配合使用。 更多内容,请参阅配置 MQTT 代理授权

云安全性

本部分提供有关如何保护云服务(即处理和存储资产数据的服务)的指导。 云服务的安全性对于确保数据的完整性和机密性至关重要。

  • 使用用户分配的托管标识进行云连接:始终使用托管标识身份验证。 如果可能,在数据流终结点中使用用户分配的托管标识,以实现灵活性和可审核性。 若要了解详细信息,请参阅 “在 Azure IoT作中启用安全设置”。

  • 部署可观测性资源并设置日志:可观测性提供对 Azure IoT 操作配置的每一层的可见性。 它让你深入了解问题的实际行为,从而提高站点可靠性工程的有效性。 Azure IoT 操作通过托管在 Azure 中的自定义策展 Grafana 仪表板提供可观测性。 这些仪表板由适用于 Prometheus 的 Azure Monitor 托管服务和容器见解提供支持。 在部署 Azure IoT 操作之前,先在群集上部署可观测性资源

  • 通过 Azure RBAC 安全访问资产和资产终结点:Azure IoT 操作中的资产和资产终结点在 Kubernetes 群集和 Azure 门户中都有表示形式。 使用 Azure RBAC 保护对这些资源的访问。 Azure RBAC 是一种授权系统,可用于管理对 Azure 资源的访问。 使用 Azure RBAC 向特定范围内的用户、组和应用程序授予权限。 更多内容,请参阅保护对资产和资产终结点的访问