如何管理 AWS IoT Greengrass 核心设备证书 官方博客 物联网

管理 AWS IoT Greengrass 核心设备证书的指南

主要观点

本文介绍了 AWS IoT Greengrass 的新组件证书轮换器,用于管理核心设备证书和私钥的轮换。设备证书和私钥是核心设备身份和认证的基础,建议定期轮换以增强安全性。AWS 提供一系列工具和最佳实践,以支持用户根据操作需要进行证书管理。

引言

我们非常高兴地介绍 AWS IoT Greengrass 的 证书轮换器组件,这是 Greengrass 软件目录 中的新组件。

AWS IoT Greengrass 将 AWS 云与边缘设备紧密连接,支持需要本地数据处理和低延迟的应用程序。随着消费、企业和工业领域边缘设备数量的增加,如何应对 IoT 边缘设备带来的安全风险,尤其是与云通信时的风险,成为一个重要的课题。在有着几十年历史的工业控制系统ICS的操作技术环境中,边缘设备往往充当网关,保护和连接这些能力较弱的系统。

我们推荐采用多层次的安全策略来保护 IoT 解决方案。为确保数据从 IoT 边缘设备到云的传输安全、加密,AWS IoT Core 支持基于 TLS 的双向认证,使用 X509 证书。用户必须为每个 IoT 边缘设备配置唯一的身份,包括唯一的私钥和 X509 证书。虽然证书是长期有效的凭证,但在设备的生命周期内可能需要进行证书续签。管理设备证书的生命周期,包括证书和私钥的定期轮换,是 AWS WellArchitected Framework 中 IoT 设计最佳实践之一。

在本文中,您将学习如何使用证书轮换器组件,以及如何利用 AWS 服务轮换 AWS IoT Greengrass 核心设备证书和私钥。这个解决方案可直接部署,但也是一个 开源参考实现,您可以根据需要进行定制。

背景

AWS IoT Greengrass 是一款边缘计算的 IoT 运行时和云服务,帮助您构建、部署和管理智能 IoT 设备软件。它提供了常见功能的 预构建组件,例如 本地/云 MQTT 消息传递、支持本地边缘处理的 机器学习推理、日志记录与监控、与 AWS 服务的开箱即用集成,以及 本地数据聚合、过滤和传输到云目标。完成开发后,您可以 无缝部署 并远程管理数百万设备的软件。

AWS IoT Greengrass 核心设备通过其设备证书和私钥来 认证 和连接到 AWS IoT Core。一个 AWS IoT 策略 授权访问 AWS IoT Core 和 AWS IoT Greengrass 数据平面。当核心设备被授权后,AWS IoT Greengrass 组件可以通过进程间通信发送和接收 MQTT 消息,无需额外的身份验证或授权。为了获得对非 IoT AWS 服务的 授权访问,AWS IoT Greengrass 使用 令牌交换服务 和 AWS IoT Core 凭证提供程序 将 X509 设备证书交换为时效性 AWS 凭证。这些时效性凭证被授权执行 AWS IoT Greengrass 核心设备角色也称为令牌交换角色 中定义的操作。

因此,X509 设备证书和私钥是 AWS IoT Greengrass 核心设备身份和认证的基础。您有责任根据您的操作需要轮换设备证书和私钥。为了指导您实施这一过程,AWS 提供了 设备证书轮换的博客、IoT Jumpstart 工作坊,以及 连接设备框架CDF证书供应商模块。这些文档化的轮换流程提供了部分实现参考。

对于许多 AWS IoT 设备类型,由于设备软件极度依赖设备硬件,因此提供完整的端到端设备证书轮换参考实现会比较困难。尤其是证书和私钥的存储及 API 强烈受硬件和硬件抽象层HAL的影响。不过,通过 AWS IoT Greengrass 核心软件安装配置 ,AWS 标准化了证书和私钥的存储。证书和私钥的位置由 certificateFilePath 和 privateKeyPath 配置参数定义。因此,可以提供可部署的端到端证书轮换参考实现。

解决方案概述

证书轮换器组件由两部分组成:一个名为 awsgreengrasslabsCertificateRotator 的 AWS IoT Greengrass 组件,负责设备的合同部分,以及一个基于 AWS 云开发工具包 (CDK) 的云后端堆栈。云后端主要由三个 Lambda 函数、三个 AWS IoT Core 规则、一个名为 AWSLabsCertificateRotator 的 AWS IoT 自定义作业模板,以及一个 Amazon Simple Notification Service (SNS) 主题组成。证书由 AWS IoT Core 或 AWS 私有证书颁发机构 (CA) 颁发。

正如所述,证书轮换器组件与云后端通过 MQTT 进行通信。一个 AWS IoT 作业 定义了一组可以发送到一个或多个设备并在其上运行的远程操作。云应用程序通过使用自定义作业模板创建 AWS IoT 作业来启动证书和私钥的轮换。作业创建的调用条件和业务逻辑由客户或应用开发者决定。换句话说,该解决方案提供了轮换设备证书和私钥的手段,但不限制何时或为何进行轮换。示例调用条件包括 AWS IoT 设备防御审计检查 或 检测异常、一定的周期性,或新的合规要求要求使用不同的私钥算法。

SNS 主题用于通知用户任何证书轮换失败的情况。客户可以利用 SNS 订阅 的灵活性,实施适合其业务的失败处理和恢复。

解决方案的主要特性包括:

能够轮换存储在磁盘上的文件或作为 PKCS#11 对象在硬件安全模块 (HSM) 中的凭证。您应选择适合您安全策略的存储类型,AWS 推荐使用 HSM 来保护这些凭证。云后端可以使用 AWS IoT Core 或 AWS 私有 CA 来颁发设备证书,这一选择在解决方案部署期间由 CDK 上下文变量 确定。选择 AWS 私有 CA 可以让您使用自己的 CA,并控制证书的过期日期。证书轮换过程封装在一个 AWS IoT 作业 中,该作业是根据提供的作业模板创建的。这意味着您可以利用作业的高级能力,例如 作业配置 和处理 intermittent 连通性的设备,以规模管理您的设备队伍上的凭证。该组件可部署到运行 Linux 或 Windows 的核心设备。唯一的限制是该组件假设 AWS IoT Greengrass 作为系统服务安装。您可以根据用例、风险评估和安全策略灵活决定何时轮换证书,轮换可以自动进行,以减少因手动轮换而导致的潜在访问中断。该解决方案对扰动具有韧性,并通过 SNS 为用户提供 通知。

解决方案部署

详细的 部署说明 和 先决条件 包含在 证书轮换器存储库 中,以及 “AWS IoT Greengrass 的证书轮换器”视频。您需要在每个运行 IoT/IIoT 工作负载的 AWS 账户和/或区域中部署该解决方案。部署分为两部分:部署云后端 CDK 应用程序,以及构建、发布和部署 AWS IoT Greengrass 组件。

轮换设备证书

一旦组件和云后端部署完成,只需使用 AWSLabsCertificateRotator 作业模板创建一个作业即可执行证书轮换。作业的创建可以通过多种方式实现,包括:

surfshark大陆版AWS IoT 控制台AWS CLIAWS IoT 设备管理的 Fleet Hub

如何管理 AWS IoT Greengrass 核心设备证书 官方博客  物联网

解决方案自定义与可测试性

尽管解决方案以可部署形式提供,但您可能希望对其进行修改,以适应您的用例。组件和云后端提供了:

广泛的 单元测试套件,具备 100 行和分支覆盖率。广泛的 自动化集成测试套件,对根据用户定义的 AWS IoT Greengrass 核心设备的事物组进行证书轮换测试。CI/CD 管道,用于开发环境,自动化构建、发布和部署组件及云后端,并运行完整的单元和集成测试以进行自动化回归测试。

结论

AWS 推荐采用多层次的安全策略来保护 IoT 解决方案,包括使用强身份、最少特权访问、监控设备健康与异常、安全连接以修复问题、以及应用更新以保持设备的最新与健康。当您使用 X509 证书进行数字身份和认证时,可能需要根据设备健康和业务环境轮换证书和私钥。

您可以使用 AWS IoT 设备防御 来审计设备证书何时过期,检查设备证书密钥质量和其他证书最佳实践,这些都可以作为轮换 IoT 边缘设备证书和私钥的调用条件。尽管较短的证书有效期需要更多关注,但有了这个 AWS IoT Greengrass 证书轮换器组件,AWS IoT 使得 IoT 边缘设备证书和私钥的轮换变得更加简易,同时增强了 IoT 系统的安全性。

进一步了解

关于作者

Greg Breen 是亚马逊网络服务的资深 IoT 解决方案架构师。他位于澳大利亚,帮助亚太地区的客户构建他们的 IoT 解决方案。凭借在嵌入式系统方面的深厚经验,他特别关注帮助产品开发团队将设备推向市场。

Ryan Dsouza 是 AWS 的 IoT 首席解决方案架构师,位于纽约市。他帮助客户设计、开发和运营更安全、可扩展和创新的解决方案,利用 AWS 的广泛和深厚能力实现可衡量的业务成果。Ryan 拥有超过 25 年的数字平台、智能制造、能源管理、建筑和工业自动化与 OT/IIoT 安全等各领域的经验。在加入 AWS 之前,Ryan 曾在埃森哲、西门子、通用电气、IBM 和 AECOM 工作,服务于客户的数字化转型项目。

在基于GPU的边缘设备上使用AWS IoT Greengrass 部署和基准测试 YOLOv8 官方
< 上一篇
通过 Morphia ODM 和 Amazon DocumentDB 加速应用程序开发 数据库博客
下一篇 >

评论