Device Defender コネクタ - AWS IoT Greengrass

AWS IoT Greengrass Version 1 は、2023 年 6 月 30 日に延長ライフフェーズに入りました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き運用され、クラウドに接続されます。への移行 AWS IoT Greengrass Version 2を強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォーム がサポートされます

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Device Defender コネクタ

Device Defender コネクタは、Greengrass Core デバイスの状態の変化を管理者に通知します。これは、侵害されたデバイスを示す可能性のある異常な動作を特定するのに役立ちます。

このコネクタは、コアデバイスの /proc ディレクトリからシステムメトリクスを読み取り、そのメトリクスを AWS IoT Device Defender に発行します。メトリクスレポートの詳細については、「AWS IoT デベロッパーガイド」の「デバイスメトリクスドキュメントの仕様」を参照してください。

このコネクタには、次のバージョンがあります。

Version

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」を参照してください。

要件

このコネクタには以下の要件があります。

Version 3
  • AWS IoT Greengrass Core ソフトウェア v1.9.3 以降。

  • Python バージョン 3.7 または 3.8 が Core デバイスにインストールされ、PATH 環境変数に追加されている。

    注記

    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 要件を満たすようにデバイスが設定されます。

  • 検出機能を使用して違反を追跡するように設定された AWS IoT Device Defender。詳細については、「AWS IoT デベロッパーガイド」の「検出」を参照してください。

  • /proc ディレクトリを参照する Greengrass グループのローカルボリュームリソース。リソースは以下のプロパティを使用する必要があります。

    • ソースパス: /proc

    • ターゲットパス: /host_proc (または有効なパターンと一致する値)

    • AutoAddGroupOwner: true

  • Greengrass コアにインストールされた psutil ライブラリ。バージョン 5.7.0 は、コネクタで動作することが確認された最新バージョンです。

  • Greengrass コアにインストールされた cbor ライブラリ。バージョン 1.0.0 は、コネクタで動作することが確認された最新バージョンです。

Versions 1 - 2
  • AWS IoT Greengrass Core ソフトウェア v1.7 以降。

  • Python バージョン 2.7 が Core デバイスにインストールされ、PATH 環境変数に追加されている。

  • 検出機能を使用して違反を追跡するように設定された AWS IoT Device Defender。詳細については、「AWS IoT デベロッパーガイド」の「検出」を参照してください。

  • /proc ディレクトリを参照する Greengrass グループのローカルボリュームリソース。リソースは以下のプロパティを使用する必要があります。

    • ソースパス: /proc

    • ターゲットパス: /host_proc (または有効なパターンと一致する値)

    • AutoAddGroupOwner: true

  • Greengrass コアにインストールされた psutil ライブラリ。

  • Greengrass コアにインストールされた cbor ライブラリ。

コネクタパラメータ

このコネクタには、以下のパラメータが用意されています。

SampleIntervalSeconds

メトリクスの収集およびレポートの各サイクル間の秒数。最小値は 300 秒 (5 分) です。

AWS IoT コンソールでの表示名: [Metrics reporting interval] (メトリクスレポート間隔)

必須: 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 コンソールでの表示名: [Resource for /proc directory] (/proc ディレクトリのリソース)

必須: true

タイプ: string

有効なパターン: [a-zA-Z0-9_-]+

ProcDestinationPath

/proc ボリュームリソースのターゲットパス。

AWS IoT コンソールでの表示名: [Destination path of /proc resource] (/proc リソースの送信先パス)

必須: true

タイプ: string

有効なパターン: \/[a-zA-Z0-9_-]+

サンプルコネクタを作成する (AWS CLI)

以下の CLI コマンドは、Device Defender コネクタを含む初期バージョンで ConnectorDefinition を作成します。

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 関数には存続期間の長いライフサイクルがあります。

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 Core ソフトウェアライセンス契約に従ってリリースされます。

Changelog

次の表に、コネクタの各バージョンにおける変更点を示します。

Version

変更

3

Lambda ランタイムを Python 3.7 にアップグレードしたことで、ランタイム要件が変更。

2

過剰なログ記録を減らすための修正。

1

初回リリース。

Greengrass グループには、一度に 1 つのバージョンのコネクタしか含めることができません。コネクタのバージョンのアップグレードについては、「コネクタのバージョンのアップグレード」を参照してください。

以下も参照してください。