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

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

Device Defender 连接器

Device Defender 连接器向管理员通知 Greengrass 核心设备状态的变化。这有助于识别可能指示受损设备的异常行为。

此连接器从核心设备上的 /proc 目录中读取系统指标,然后将这些指标发布到 AWS IoT Device Defender。有关指标报告详细信息,请参阅 AWS IoT 开发人员指南 中的设备指标文档规范

此连接器具有以下版本。

版本

ARN

3

arn:aws:greengrass:区域::/connectors/DeviceDefender/versions/3

2

arn:aws:greengrass:区域::/connectors/DeviceDefender/versions/2

1

arn:aws:greengrass:区域::/connectors/DeviceDefender/versions/1

有关版本更改的信息,请参阅更改日志

要求

此连接器具有以下要求:

Version 3
  • AWS IoT Greengrass Core 软件 v1.9.3 版或更高版本。

  • Python 版本 3.7 已安装在核心设备上并且已添加到 PATH 环境变量。

  • AWS IoT Device Defender 配置为使用检测功能来跟踪冲突。有关更多信息,请参阅 https://docs.amazonaws.cn/iot/latest/developerguide/device-defender-detect.html 中的检测AWS IoT 开发人员指南。

  • Greengrass 组中一个指向 /proc 目录的 本地卷资源。该资源必须使用以下属性:

    • 源路径:/proc

    • 目标路径: /host_proc(或与有效模式匹配的值)

    • AutoAddGroupOwner: true

  • 安装在 Greengrass 核心上的 psutil 库。版本 5.7.0 是经验证可与连接器一起使用的最新版本。

  • 安装在 Greengrass 核心上的 cbor 库。版本 1.0.0 是经验证可与连接器一起使用的最新版本。

Versions 1 - 2
  • AWS IoT Greengrass Core 软件 v1.7 or later。

  • Python 版本 2.7 已安装在核心设备上并且已添加到 PATH 环境变量。

  • AWS IoT Device Defender 配置为使用检测功能来跟踪冲突。有关更多信息,请参阅 https://docs.amazonaws.cn/iot/latest/developerguide/device-defender-detect.html 中的检测AWS IoT 开发人员指南。

  • Greengrass 组中一个指向 /proc 目录的 本地卷资源。该资源必须使用以下属性:

    • 源路径:/proc

    • 目标路径: /host_proc(或与有效模式匹配的值)

    • AutoAddGroupOwner: true

  • 安装在 Greengrass 核心上的 psutil 库。

  • 安装在 Greengrass 核心上的 cbor 库。

连接器参数

该连接器提供以下参数:

SampleIntervalSeconds

收集和报告指标的每个周期之间的秒数。最小值为 300 秒 (5 分钟)。

在 AWS IoT 控制台中显示名称:度量报告间隔

必需:true

类型:string

有效模式:^[0-9]*(?:3[0-9][0-9]|[4-9][0-9]{2}|[1-9][0-9]{3,})$

ProcDestinationPath-ResourceId

/proc 卷资源的 ID。

注意

此连接器被授予对该资源的只读访问权限。

在 AWS IoT 控制台中显示名称:/proc 目录的资源

必需:true

类型:string

有效模式:[a-zA-Z0-9_-]+

ProcDestinationPath

/proc 卷资源的目标路径。

在 AWS IoT 控制台中显示名称:/proc 资源的目标路径

必需:true

类型:string

有效模式:\/[a-zA-Z0-9_-]+

创建连接器示例 (AWS CLI)

以下 CLI 命令创建一个 ConnectorDefinition,其初始版本包含 Device Defender连接器。

aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyDeviceDefenderConnector", "ConnectorArn": "arn:aws:greengrass:区域::/connectors/DeviceDefender/versions/3", "Parameters": { "SampleIntervalSeconds": "600", "ProcDestinationPath": "/host_proc", "ProcDestinationPath-ResourceId": "my-proc-resource" } } ] }'
注意

该连接器中的 Lambda 函数具有很长的生命周期。

在 AWS IoT Greengrass 控制台 中,您可以从该组的 Connectors (连接器)页面添加一个连接器。有关更多信息,请参阅 Greengrass 连接器入门(控制台)

输入数据

该连接器不接受 MQTT 消息作为输入数据。

输出数据

此连接器将安全指标作为输出数据发布到 AWS IoT Device Defender。

订阅中的主题筛选条件

$aws/things/+/defender/metrics/json

注意

这是 AWS IoT Device Defender 预期的主题语法。连接器将 + 通配符替换为设备名称(例如,$aws/things/thing-name/defender/metrics/json)。

输出示例

有关指标报告详细信息,请参阅 AWS IoT 开发人员指南 中的设备指标文档规范

{ "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 } } } }

许可证

此连接器按照 Greengrass 核心软件许可协议发布。

Changelog

下表描述了连接器每个版本中所做的更改。

版本

更改

3

已将 Lambda 运行时升级到 Python 3.7,这会更改运行时要求。

2

进行了修复,以减少过多的日志记录。

1

首次发布。

Greengrass 组一次只能包含一个版本的连接器。有关升级连接器版本的信息,请参阅升级连接器版本

另请参阅