Device Defender 连接器 - 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 V1 不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备 Amazon IoT Greengrass V1 不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 Amazon IoT Greengrass Version 2,这样可以添加重要的新功能支持其他平台

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

Device Defender 连接器

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

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

此连接器具有以下版本。

版本

ARN

3

arn:aws:greengrass:region::/connectors/DeviceDefender/versions/3

2

arn:aws:greengrass:region::/connectors/DeviceDefender/versions/2

1

arn:aws:greengrass:region::/connectors/DeviceDefender/versions/1

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

要求

此连接器具有以下要求:

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

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

    注意

    要使用 Python 3.8,请运行以下命令来创建从默认 Python 3.7 安装文件夹到已安装的 Python 3.8 二进制文件的符号链接。

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    这会将设备配置为满足 Amazon IoT Greengrass 的 Python 要求。

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

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

    • 源路径:/proc

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

    • AutoAddGroupOwner:true

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

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

Versions 1 - 2
  • Amazon IoT Greengrass Core 软件 v1.7 版或更高版本。

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

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

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

    • 源路径:/proc

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

    • AutoAddGroupOwner:true

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

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

连接器参数

该连接器提供以下参数:

SampleIntervalSeconds

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

Amazon IoT 控制台中的显示名称:指标报告间隔

必需:true

类型:string

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

ProcDestinationPath-ResourceId

/proc 卷资源的 ID。

注意

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

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

必需:true

类型:string

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

ProcDestinationPath

/proc 卷资源的目标路径。

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

必需:true

类型:string

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

创建连接器示例 (Amazon CLI)

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

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

此连接器中的 Lambda 函数的生命周期很长

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

输入数据

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

输出数据

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

订阅中的主题筛选条件

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

注意

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

输出示例

有关指标报告的详细信息,请参阅Amazon 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 Core 软件许可协议下发布。

更改日志

下表介绍每个版本连接器的更改。

版本

更改

3

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

2

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

1

首次发布。

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

另请参阅