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

您正在查看Amazon IoT Greengrass Version 1.Amazon IoT Greengrass Version 2是最新的主要版本Amazon IoT Greengrass. 有关使用Amazon IoT Greengrass V2,请参阅Amazon IoT Greengrass Version 2开发人员指南.

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

Amazon IoT Greengrass 的安全最佳实践

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

授予可能的最低权限

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

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

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

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

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

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

不要记录敏感信息

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

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

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

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

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

    • 连接器

    • 核心

    • 设备

    • 函数

    • 日志记录程序

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

    • 订阅

创建目标订阅

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

使设备时钟保持同步

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

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

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

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

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

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

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

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

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

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

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

定期更新发现信息。

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

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

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

  2. 轮换组 CA 证书。在Amazon IoT控制台,您可以在组的设置页. 在 Amazon IoT Greengrass API 中,您可以使用 CreateGroupCertificateAuthority 操作。

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

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

另请参阅