Amazon IoT Greengrass 的安全最佳实践 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,将不再接收功能更新,并且将仅收到安全补丁和错误修复。有关更多信息,请参阅Amazon IoT Greengrass V1维护时段。我们强烈建议您迁移到Amazon IoT Greengrass Version 2,这增加了重要的新功能支持其他平台

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon IoT Greengrass 的安全最佳实践

本主题包含 Amazon IoT Greengrass 的安全最佳实践。

授予可能的最低权限

通过在 IAM 角色中使用最小权限集,遵循最低特权原则。限制使用*的通配符ActionResource您的 IAM 策略中的属性。而是在可能的情况下声明一组有限的操作和资源。有关最低权限和其他策略最佳实践的更多信息,请参阅 策略最佳实践

最低权限最佳实践也适用于Amazon IoT您附加到 Greengrass 核心设备和客户端设备的策略。

不要在 Lambda 函数中对凭证进行硬编码

不要在用户定义的 Lambda 函数中对凭证进行硬编码。为了更好地保护您的凭证:

  • 要与 Amazon 服务交互,请为 Greengrass 组角色中的特定操作和资源定义权限。

  • 使用本地密钥存储您的凭证。或者,如果该函数使用Amazon开发工具包,使用默认凭证提供程序链中的凭证。

不要记录敏感信息

您应该禁止记录凭证和其他个人身份信息 (PII)。我们建议您实施以下保护措施,即使是在对核心设备上的本地日志的访问需要根权限,对的访问权限的情况下 CloudWatch 日志需要 IAM 权限。

  • 不要在 MQTT 主题路径中使用敏感信息。

  • 不要在 Amazon IoT Core 注册表中的设备(事物)名称、类型和属性中使用敏感信息。

  • 不要在用户定义的 Lambda 函数中记录敏感信息。

  • 不要在 Greengrass 资源的名称和 ID 中使用敏感信息:

    • 连接器

    • 核心

    • 设备

    • 函数

    • 日志记录程序

    • 资源(本地、机器学习或密钥)

    • 订阅

创建目标订阅

订阅通过定义服务、设备和 Lambda 函数之间的消息交换方式来控制 Greengrass 组中的信息流。为了确保应用程序只能够按预期执行操作,您的订阅应该允许发布者仅向特定主题发送消息,并限制订阅者仅从其功能所需的主题接收消息。

使设备时钟保持同步

请务必确保您的设备上有准确的时间。X.509 证书具有到期日期和时间。设备上的时钟用于验证服务器证书是否仍有效。设备时钟可能会在一段时间后出现偏差,或者电池可能会放电。

有关更多信息,请参阅 。使设备的时钟保持同步中的最佳实践Amazon IoT Core开发人员指南.

使用 Greengrass 核心管理设备身份验证

客户端设备可以运行FreeRTOS或者使用Amazon IoT设备软件开发工具包要么Amazon IoT Greengrass发现 API,以获取用于连接和验证同一 Greengrass 组中核心的发现信息。发现信息包括:

  • 与客户端设备位于同一个 Greengrass 组的 Greengrass 核心的连接信息。此信息包括核心设备每个终端节点的主机地址和端口号。

  • 用于签署本地 MQTT 服务器证书的组 CA 证书。客户端设备使用组 CA 证书验证核心提供的 MQTT 服务器证书。

以下是客户端设备使用 Greengrass 核心管理双向身份验证的的最佳实践。如果您的核心设备遭到破坏,这些实践可以帮助您降低风险。

验证每个连接的本地 MQTT 服务器证书。

客户端设备应该在每次与核心建立连接时验证核心提供的 MQTT 服务器证书。这个验证是客户端设备核心设备与客户端设备之间进行双向身份验证的端。客户端设备必须能够检测故障并终止连接。

不要对发现信息进行硬编码。

客户端设备应该依靠发现操作来获取核心连接信息和组 CA 证书,即使核心使用静态 IP 地址的情况下。客户端设备不应该对此发现信息进行硬编码。

定期更新发现信息。

客户端设备应该定期运行发现,以更新核心连接信息和组 CA 证书。我们建议客户端设备在与核心建立连接之前更新此信息。由于发现操作之间较短的持续时间可以最大限度地减少潜在的暴露时间,因此我们建议客户端设备定期断开连接,然后重新连接来触发更新。

如果您失去了对 Greengrass 核心设备的控制,并且希望阻止客户端设备将数据传输到核心,请执行以下操作:

  1. 从 Greengrass 组中移除 Greengrass 核心。

  2. 轮换组 CA 证书。在Amazon IoT控制台上,您可以轮换组的 CA 证书设置页. 在Amazon IoT GreengrassAPI,您可以使用CreateGroupCertificateAuthorityaction.

    如果您的核心设备的硬盘驱动器容易被盗,我们还建议使用全磁盘加密。

有关更多信息,请参阅 Amazon IoT Greengrass 的设备身份验证和授权

另请参阅