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

IoT 解决方案的安全性最佳做法

本概述介绍了有关保护典型 Azure IoT 解决方案的关键概念。 每个部分都包含指向提供进一步详细信息和指导的内容的链接。

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

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

你可以将基于边缘的解决方案的安全工作分为以下三个领域:

  • 资产安全:确保需要管理、监视并从中收集数据的高价值实物或虚拟物品的安全。

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

  • 边缘安全:确保数据在云中移动或存储到云中时得到安全保护。

  • 云安全:在数据移动期间及存储在云中时保护数据。

通常,在基于边缘的解决方案中,你希望使用 Azure 安全功能来保护端到端操作。 Azure IoT 操作具有内置的安全功能,例如在支持 Azure Arc 的 Kubernetes 群集上的机密管理证书管理安全设置。 当 Kubernetes 群集连接到 Azure 时,会发起到 Azure 的出站连接,并采用行业标准 SSL 来保护传输中的数据,同时会启用其他几个安全功能,例如:

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 应该作为一线防御手段,保护基于边缘的解决方案。 若要了解更多信息,请参阅以下文章:

资产安全

  • 机密管理:使用 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 解决方案。

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

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

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

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

边缘安全

  • 确实边缘运行时环境得到及时更新:使用最新的修补程序和次要版本获取所有可用的安全和 bug 修复,使群集和 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 Monitor 托管服务和容器见解提供支持。 在部署 Azure IoT 操作之前,先在群集上部署可观测性资源

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

后续步骤

若要了解有关 IoT 安全性的详细信息,请参阅: