

支援終止通知：2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後，您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊，請造訪[從 遷移 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Device Defender 連接器
<a name="device-defender-connector"></a>

Device Defender [連接器](connectors.md)會通知管理員 Greengrass 核心裝置狀態的變更。這可協助識別可能會表示裝置受損的不尋常行為。

此連接器會從核心裝置上的 `/proc`目錄讀取系統指標，然後將指標發佈至 AWS IoT Device Defender。如需指標報告詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的[裝置指標文件規格](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html#DetectMetricsMessagesSpec)。

此連接器具有下列版本。


| 版本 | 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` | 

如需版本變更的詳細資訊，請參閱 [Changelog](#device-defender-connector-changelog)。

## 要求
<a name="device-defender-connector-req"></a>

此連接器有下列要求：

------
#### [ Version 3 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass 核心軟體 v1.9.3 或更新版本。
+ <a name="conn-req-py-3.7-and-3.8"></a>安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 3.7 或 3.8 版。
**注意**  <a name="use-runtime-py3.8"></a>
若要使用 Python 3.8，請執行下列命令，以建立從預設 Python 3.7 安裝資料夾到已安裝 Python 3.8 二進位檔的符號連結。  

  ```
  sudo ln -s {{path-to-python-3.8}}/python3.8 /usr/bin/python3.7
  ```
這會設定您的裝置以符合 AWS IoT Greengrass的 Python 需求。
+ <a name="conn-device-defender-req-itdd-config"></a>AWS IoT Device Defender 設定為使用 Detect 功能來追蹤違規。如需詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的[偵測](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html)。
+ <a name="conn-device-defender-req-proc-dir-resource"></a>Greengrass 群組中指向`/proc`目錄的[本機磁碟區資源](access-local-resources.md)。資源必須使用下列屬性：
  + 來源路徑：`/proc`
  + 目的地路徑：`/host_proc` (或符合[有效模式](#param-ProcDestinationPath)的值)
  + AutoAddGroupOwner：`true`
+ <a name="conn-device-defender-req-psutil-v3"></a>安裝在 Greengrass 核心上的 [psutil](https://pypi.org/project/psutil/) 程式庫。5.7.0 版是經過驗證，可與連接器搭配使用的最新版本。
+ <a name="conn-device-defender-req-cbor-v3"></a>安裝在 Greengrass 核心上的 [cbor](https://pypi.org/project/cbor/) 程式庫。1.0.0 版是經過驗證，可與連接器搭配使用的最新版本。

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass 核心軟體 1.7 版或更新版本。
+ 安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 2.7 版。
+ <a name="conn-device-defender-req-itdd-config"></a>AWS IoT Device Defender 設定為使用 Detect 功能來追蹤違規。如需詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的[偵測](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html)。
+ <a name="conn-device-defender-req-proc-dir-resource"></a>Greengrass 群組中指向`/proc`目錄的[本機磁碟區資源](access-local-resources.md)。資源必須使用下列屬性：
  + 來源路徑：`/proc`
  + 目的地路徑：`/host_proc` (或符合[有效模式](#param-ProcDestinationPath)的值)
  + AutoAddGroupOwner：`true`
+ <a name="conn-device-defender-req-psutil"></a>安裝在 Greengrass 核心上的 [psutil](https://pypi.org/project/psutil/) 程式庫。
+ <a name="conn-device-defender-req-cbor"></a>安裝在 Greengrass 核心上的 [cbor](https://pypi.org/project/cbor/) 程式庫。

------

## 連接器參數
<a name="device-defender-connector-param"></a>

此連接器提供下列參數：

`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`  <a name="param-ProcDestinationPath"></a>
`/proc` 磁碟區資源的目的地路徑。  
 AWS IoT 主控台中的顯示名稱：**/proc 資源的目的地路徑**  
必要：`true`  
類型：`string`  
有效模式： `\/[a-zA-Z0-9_-]+`

### 建立範例連接器 (AWS CLI)
<a name="device-defender-connector-create"></a>

下列 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 函數具有[長期生命週期](lambda-functions.md#lambda-lifecycle)。

在 AWS IoT Greengrass 主控台中，您可以從群組的連接器頁面新增**連接器**。如需詳細資訊，請參閱[Greengrass 連接器入門 (主控台)](connectors-console.md)。

## 輸入資料
<a name="device-defender-connector-data-input"></a>

此連接器不接受 MQTT 訊息做為輸入資料。

## 輸出資料
<a name="device-defender-connector-data-output"></a>

此連接器會將安全指標發佈至 AWS IoT Device Defender ，做為輸出資料。

<a name="topic-filter"></a>**訂閱中的主題篩選條件**  
`$aws/things/+/defender/metrics/json`  
這是 AWS IoT Device Defender 預期的主題語法。連接器會將 `+` 萬用字元換成裝置名稱 (例如，`$aws/things/{{thing-name}}/defender/metrics/json`)。

**範例輸出**  
如需指標報告詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的[裝置指標文件規格](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html#DetectMetricsMessagesSpec)。  

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

## 授權
<a name="device-defender-connector-license"></a>

此連接器根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="device-defender-connector-changelog"></a>

下表說明每個版本連接器的變更。


| 版本 | 變更 | 
| --- | --- | 
| 3 | <a name="upgrade-runtime-py3.7"></a>將 Lambda 執行時間升級至 Python 3.7，這會變更執行時間需求。 | 
| 2 | 可減少過多記錄的修正。 | 
| 1 | 初始版本。 | 

<a name="one-conn-version"></a>Greengrass 群組一次只能包含一個版本的連接器。若要取得有關升級連接器版本的資訊，請參閱[升級連接器版本](connectors.md#upgrade-connector-versions)。

## 另請參閱
<a name="device-defender-connector-see-also"></a>
+ [使用 Greengrass 連接器來整合服務和通訊協定](connectors.md)
+ [Greengrass 連接器入門 (主控台)](connectors-console.md)
+ [Greengrass 連接器入門 (CLI)](connectors-cli.md)
+ 《 *AWS IoT 開發人員指南*》中的 [Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html) 