Device Defender - AWS IoT Greengrass
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Device Defender

设备防护器组件 (aws.greengrass.DeviceDefender) 向管理员通知 Greengrass 核心设备状态的变化。这有助于识别可能指示受损设备的异常行为。有关更多信息,请参阅 。AWS IoT Device Defender中的AWS IoT Core 开发人员指南

此组件从/proc目录。然后,它会将指标发布到 AWS IoT Device Defender。有关如何阅读和解释此组件报告的指标的更多信息,请参阅设备指标文档规范中的AWS IoT Core 开发人员指南

注意

此组件提供与 AWS IoT Greengrass V1 中的设备防护连接器类似的功能。有关更多信息,请参阅 。Device Defender 连接器中的AWS IoT Greengrass V1 开发人员指南

Versions

此组件具有以下版本:

  • 2.0.x

Requirements

要部署组件,必须满足组件及其dependencies。此组件具有以下要求:

  • 您的核心设备必须满足运行 Lambda 功能的要求。如果您希望核心设备运行容器化 Lambda 功能,设备必须满足要求才能执行此操作。有关更多信息,请参阅 运行 Lambda 函数的要求

  • Python版本 3.7,并添加到核心设备上的 PATH 环境变量中。

  • 配置为使用检测功能来跟踪冲突的 AWS IoT Device Defender。有关更多信息,请参阅 。Detect中的AWS IoT Core 开发人员指南

  • 这些区域有:普苏蒂尔核心设备上安装的库。版本 5.7.0 是经验证可与组件一起使用的最新版本。

  • 这些区域有:cbor核心设备上安装的库。版本 1.0.0 是经验证可与组件一起使用的最新版本。

  • 若要从此组件接收输出数据,您必须合并旧版订阅路由器组件(aws.greengrass.LegacySubscriptionRouter),当您部署此组件时。此配置指定此组件发布响应的主题。

    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "component:aws.greengrass.DeviceDefender", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    • Replace region 与您使用的 AWS 区域一起使用。

    • Replace version 使用此组件运行的 Lambda 函数版本。要查找 Lambda 函数版本,必须查看要部署的此组件版本的配方。打开此组件的详细信息页面,在AWS IoT Greengrass 控制台,并查找Lambda 函数键值对。此键值对包含 Lambda 函数的名称和版本。

    重要

    每次部署此组件时,必须更新旧订阅路由器上的 Lambda 函数版本。这可确保您为部署的组件版本使用正确的 Lambda 函数版本。

    有关更多信息,请参阅 创建部署

Dependencies

当您部署组件时,AWS IoT Greengrass 还会部署其依赖关系的兼容版本。您必须满足组件及其所有依赖关系的要求才能成功部署组件。本部分列出了发布版本以及定义每个依赖关系的组件版本的语义版本约束。您也可以在组件的中查看组件的依赖关系。AWS IoT Greengrass 控制台。在组件详细信息页面上,查找附属物列表。

>=2.0.4

下表列出版本 2.0.4 及更高版本的此组件版本 2.0.4 及更高版本的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核心 >=2.0.0 <2.2.0 硬性
Lambda 启动器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
令牌交换服务 ^2.0.0 硬性
2.0.3

下表列出了此组件 2.0.3 版的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核心 > 2.0.3 <2.1.0 硬性
Lambda 启动器 > 1.0.0 硬性
Lambda 运行时 > 1.0.0 软性
令牌交换服务 > 1.0.0 硬性

有关组件依赖项的更多信息,请参阅。组件配方参考

Configuration

此组件提供了以下配置参数,您可以在部署组件时自定义这些参数。

注意

此组件的默认配置包括 Lambda 函数参数。我们建议您仅编辑以下参数,以便在设备上配置此组件。

lambdaParams

包含此组件的 Lambda 函数参数的对象。此对象包含以下信息:

EnvironmentVariables

包含 Lambda 函数参数的对象。此对象包含以下信息:

PROCFS_PATH

(可选)/procfolder。

  • 要在容器中运行此组件,请使用默认值/host-proc。默认情况下,组件在容器中运行。

  • 要在无容器模式下运行此组件,请指定/proc对于该参数。

默认值:/host-proc。这是默认路径,此组件在其中挂载/proc文件夹中。

注意

此组件具有对该文件夹的只读访问权限。

SAMPLE_INTERVAL_SECONDS

(可选)组件收集和报告度量的每个周期之间的时间(以秒为单位)。

最小值为 300 秒 (5 分钟)。

默认值:300 秒

containerMode

(可选)此组件的容器化模式。从以下选项中进行选择:

  • GreengrassContainer— 组件在 AWS IoT Greengrass 容器内的隔离运行时环境中运行。

  • NoContainer— 组件不在隔离的运行时环境中运行。

    如果您指定了此选项,则必须指定/proc对于PROCFS_PATH环境变量参数。

默认值:GreengrassContainer

containerParams

(可选)包含此组件的容器参数的对象。组件将使用这些参数,如果您指定GreengrassContainer对于 来说为containerMode

此对象包含以下信息:

memorySize

(可选)要分配给组件的内存量(以 KB 为单位)。

默认值为 50,000 KB。

pubsubTopics

(可选)包含组件预订接收消息的主题的对象。您可以指定每个主题,以及组件是订阅 AWS IoT Core 还是本地发布/订阅主题中的 MQTT 主题。

此对象包含以下信息:

0— 这是一个字符串形式的数组索引。

包含以下信息的对象:

type

(可选)此组件用于订阅消息的发布/订阅消息的类型。从以下选项中进行选择:

  • Pubsub – 订阅本地发布/订阅消息。如果选择此选项,则主题不能包含 MQTT 通配符。有关如何在指定此选项时从自定义组件发送消息的更多信息,请参阅发布/订阅本地消息

  • IotCore – 订阅 AWS IoT Core MQTT 消息。如果选择此选项,则主题可以包含 MQTT 通配符。有关如何在指定此选项时从自定义组件发送消息的更多信息,请参阅发布/订阅 AWS IoT Core MQTT 消息

默认值:Pubsub

topic

(可选)组件订阅以接收消息的主题。如果您指定IotCore对于 来说为type,您可以使用 MQTT 通配符(+#)。

例如:配置合并更新(容器模式)

{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }

例如:配置合并更新(无容器模式)

{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }

输入数据

此组件不接受消息作为输入数据。

输出数据

此组件将安全指标发布到以下 AWS IoT Device Defender 的保留主题。此组件将替换为 coreDeviceName 替换为核心设备发布指标时的名称。

主题(AWS IoT Core MQTT): $aws/things/coreDeviceName/defender/metrics/json

例 输出示例

{ "header": { "report_id": 1529963534, "version": "1.0" }, "metrics": { "listening_tcp_ports": { "ports": [ { "interface": "eth0", "port": 24800 }, { "interface": "eth0", "port": 22 }, { "interface": "eth0", "port": 53 } ], "total": 3 }, "listening_udp_ports": { "ports": [ { "interface": "eth0", "port": 5353 }, { "interface": "eth0", "port": 67 } ], "total": 2 }, "network_stats": { "bytes_in": 1157864729406, "bytes_out": 1170821865, "packets_in": 693092175031, "packets_out": 738917180 }, "tcp_connections": { "established_connections":{ "connections": [ { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" }, { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" } ], "total": 2 } } } }

有关此组件报告的指标的更多信息,请参阅设备指标文档规范中的AWS IoT Core 开发人员指南

Licenses

此组件在Greengrass 核心软件许可协议

Changelog

下表描述了代码示例目录的更改。

Version

更改

2.0.4

版本更新了 Greengrass 核版本 2.1.0。

2.0.3

初始版本。