AWS IoT Device Defender - AWS IoT Greengrass

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

AWS IoT Device Defender

AWS IoT Device Defender コンポーネント (aws.greengrass.DeviceDefender) は、Greengrass コアデバイスの状態の変化を管理者に通知します。これは、侵害されたデバイスを示す可能性のある異常な動作を特定するのに役立ちます。詳細については、「AWS IoT Core デベロッパーガイド」の 「AWS IoT Device Defender」を参照してください。

このコンポーネントは、コアデバイスのシステムメトリクスを読み込みます。その後、そのメトリクスを AWS IoT Device Defender にパブリッシュします。このコンポーネントが報告するメトリクスを読み取り、解釈する方法の詳細については、「AWS IoT Core デベロッパーガイド」の「デバイスメトリクスドキュメントの仕様」を参照してください。

注記

このコンポーネントは、 の Device Defender コネクタと同様の機能を提供します AWS IoT Greengrass V1。詳細については、「AWS IoT Greengrass V1 デベロッパーガイド」の「Device Defender コネクタ」を参照してください。

バージョン

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

  • 3.1.x

  • 3.0.x

  • 2.0.x

コンポーネントの各バージョンに対する変更については、「変更ログ」を参照してください。

タイプ

v3.x

このコンポーネントはジェネリックコンポーネント (aws.greengrass.generic) です。Greengrass nucleus は、コンポーネントのライフサイクルスクリプトを実行します。

v2.x

このコンポーネントは Lambda コンポーネントです (aws.greengrass.lambda)。Greengrass nucleus は、Lambda ランチャーコンポーネントを使用してこのコンポーネントの Lambda 関数を実行します。

詳細については、「コンポーネントタイプ」を参照してください。

オペレーティングシステム

v3.x

このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。

  • Linux

  • Windows

v2.x

このコンポーネントは、Linux コアデバイスにのみインストールできます。

要件

このコンポーネントには次の要件があります。

v3.x
  • Python バージョン 3.7 がコアデバイスにインストールされ、PATH 環境変数に追加されています。

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

v2.x
  • コアデバイスは、Lambda 関数を実行するための要件を満たしている必要があります。コアデバイスが、コンテナ化された Lambda 関数を実行させる場合、そのデバイスは要件を満たす必要があります。詳細については、「Lambda 関数の要件」を参照してください。

  • Python バージョン 3.7 がコアデバイスにインストールされ、PATH 環境変数に追加されています。

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

  • コアデバイスにインストールされた psutil ライブラリ。このコンポーネントの動作が確認された最新のバージョンはバージョン 5.7.0 です。

  • コアデバイスにインストールされた cbor ライブラリ。このコンポーネントの動作が確認された最新のバージョンはバージョン 1.0.0 です。

  • このコンポーネントから出力データを受信するには、このコンポーネントをデプロイするときに、次の設定更新プログラムをレガシーサブスクリプションルーターのコンポーネント (aws.greengrass.LegacySubscriptionRouter) のためにマージする必要があります。この設定は、このコンポーネントがレスポンスを公開するトピックを指定します。

    Legacy subscription router v2.1.xLegacy subscription router v2.0.x
    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" } } }
    • region AWS リージョン は、使用する に置き換えます。

    • バージョンを、このコンポーネントが実行する Lambda 関数のバージョンに置き換えます。Lambda 関数のバージョンを確認するには、デプロイするこのコンポーネントのバージョンの recipe を確認する必要があります。AWS IoT Greengrass コンソールで、このコンポーネントの詳細ページを開き、[Lambda function] (Lambda 関数) の key-value ペアを見つけます。このキー値のペアには、Lambda 関数の名前とバージョンが含まれます。

    重要

    このコンポーネントをデプロイするたびに、レガシーサブスクリプションルーターの Lambda 関数のバージョンを更新する必要があります。これにより、デプロイするコンポーネントバージョンに正しい Lambda 関数のバージョンが使用されることが保証されます。

    詳細については、「デプロイの作成」を参照してください。

依存関係

コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソールでも確認できます。コンポーネントの詳細ページで [Dependencies] (依存関係) リストを確認します。

3.1.1

次の表に、このコンポーネントのバージョン 3.1.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <3.0.0 ソフト
トークン交換サービス >=0.0.0 ハード
3.0.0 - 3.0.2

次の表に、このコンポーネントのバージョン 3.0.0 から 3.0.2 までの依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <3.0.0 ソフト
トークン交換サービス >=0.0.0 ハード
2.0.10 and 2.0.11

次の表に、このコンポーネントのバージョン 2.0.10 および 2.0.11 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.8.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.9

次の表に、このコンポーネントのバージョン 2.0.9 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.7.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.8

次の表に、このコンポーネントのバージョン 2.0.8 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.6.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.7

次の表に、このコンポーネントのバージョン 2.0.7 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.5.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.6

次の表に、このコンポーネントのバージョン 2.0.6 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.4.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.5

次の表に、このコンポーネントのバージョン 2.0.5 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.3.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.4

次の表に、このコンポーネントのバージョン 2.0.4 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.2.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.3

次の表に、このコンポーネントのバージョン 2.0.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.3 <2.1.0 ハード
Lambda ランチャー >=1.0.0 ハード
Lambda ランタイム >=1.0.0 ソフト
トークン交換サービス >=1.0.0 ハード

コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。

構成

このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。

v3.x
PublishRetryCount

パブリッシュが再試行される回数。この機能は、バージョン 3.1.1 で使用できます。

最小値は 0 です。

最大数は 72 です。

デフォルト: 5

SampleIntervalSeconds

(オプション) コンポーネントがメトリクスを収集してレポートする各サイクルの間隔 (秒単位)。

最小値は 300 秒 (5 分) です。

デフォルト: 300 秒

UseInstaller

(オプション) このコンポーネントの依存関係をインストールするために、このコンポーネントでインストーラスクリプトを使用するかどうかを定義するブール値。

依存関係のインストールにカスタムスクリプトを使用する場合、またはビルド済みの Linux イメージにランタイムの依存関係を含める場合は、この値を false に設定します。このコンポーネントを使用するには、依存関係を含む次のライブラリをインストールし、デフォルトの Greengrass システムユーザーを利用できるようにする必要があります。

  • AWS IoT Device SDK v2 for Python

  • cbor ライブラリ。このコンポーネントの動作が確認された最新のバージョンはバージョン 1.0.0 です。

  • psutil ライブラリ。このコンポーネントの動作が確認された最新のバージョンはバージョン 5.7.0 です。

注記

HTTPS プロキシを使用するように設定したコアデバイスで、このコンポーネントのバージョン 3.0.0 または 3.0.1 を使用する場合は、この値を false に設定する必要があります。インストーラスクリプトは、このコンポーネントのこれらのバージョンでは HTTPS プロキシの背後からの操作をサポートしていません。

デフォルト: true

v2.x
注記

このコンポーネントのデフォルト設定には、Lambda 関数のパラメータが含まれます。デバイスにこのコンポーネントを設定するには、次のパラメータのみを編集することをお勧めします。

lambdaParams

このコンポーネントの Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。

EnvironmentVariables

Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。

PROCFS_PATH

(オプション) /proc フォルダへのパス。

  • コンテナでこのコンポーネントを実行するには、デフォルト値の /host-proc を使用します。このコンポーネントは、デフォルトでコンテナ内で実行されます。

  • このコンポーネントをコンテナなしモードで実行するには、このパラメータに /proc を指定します。

デフォルト: /host-proc。これは、このコンポーネントがコンテナ内に /proc フォルダをマウントするためのデフォルトのパスです。

注記

このコンポーネントは、このフォルダに対して読み取り専用のアクセス許可を有します。

SAMPLE_INTERVAL_SECONDS

(オプション) コンポーネントがメトリクスを収集してレポートする各サイクルの間隔 (秒単位)。

最小値は 300 秒 (5 分) です。

デフォルト: 300 秒

containerMode

(オプション) このコンポーネントのコンテナ化モード。次のオプションから選択します。

  • GreengrassContainer – コンポーネントは、 AWS IoT Greengrass コンテナ内の分離されたランタイム環境で実行されます。

  • NoContainer - コンポーネントは、分離されたランタイム環境では実行されません。

    このオプションを指定する場合は、PROCFS_PATH 環境変数パラメータに /proc を指定する必要があります。

デフォルト: GreengrassContainer

containerParams

(オプション) このコンポーネントのコンテナパラメータを含むオブジェクト。containerModeGreengrassContainer を指定した場合、コンポーネントはこれらのパラメータを使用します。

このオブジェクトには、次の情報が含まれます。

memorySize

(オプション) コンポーネントに割り当てるメモリ量 (KB 単位)。

デフォルトは 50,000 KB です。

pubsubTopics

(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピックを含むオブジェクト。各トピックと、コンポーネントが から MQTT トピックをサブスクライブするか、ローカルのパブリッシュ/サブスクライブトピックをサブスクライブ AWS IoT Core するかを指定できます。

このオブジェクトには、次の情報が含まれます。

0 - これは文字列としての配列インデックスです。

次の情報が含まれるオブジェクト。

type

(オプション) このコンポーネントがメッセージをサブスクライブするために使用するパブリッシュ/サブスクライブメッセージングのタイプ。次のオプションから選択します。

  • PUB_SUB - ローカルのパブリッシュ/サブスクライブメッセージをサブスクライブします。このオプションを選択した場合、トピックに MQTT ワイルドカードを含めることはできません。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。

  • IOT_CORE – AWS IoT Core MQTT メッセージをサブスクライブします。このオプションを選択した場合、トピックに MQTT ワイルドカードを含めることができます。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「AWS IoT Core MQTT メッセージをパブリッシュ/サブスクライブする」を参照してください。

デフォルト: PUB_SUB

topic

(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピック。typeIotCore を指定した場合、このトピックで 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 デベロッパーガイド」の「デバイスメトリクスドキュメントの仕様」を参照してください。

ローカルログファイル

このコンポーネントは次のログファイルを使用します。

Linux
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
このコンポーネントのログを確認するには
  • コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。/greengrass/v2 または C:\greengrass\v2 を AWS IoT Greengrass ルートフォルダへのパスに置き換えます。

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.DeviceDefender.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait

ライセンス

このコンポーネントは、Greengrass Core ソフトウェアライセンス契約に従ってリリースされています。

変更ログ

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

v3.x

バージョン

変更

3.1.1

バグ修正と機能向上
  • ネットワークの停止後に接続の回復に失敗した場合に、クライアント接続の再試行を追加します。

  • メトリクスを公開するための構成可能な再試行を追加します。

3.1.0

バグ修正と機能向上

3.0.1

コンポーネントがメトリクスのデルタ値を計算する方法で生じる問題を修正しました。

3.0.0

警告

このバージョンは現在利用できません。このバージョンの改善は、このコンポーネントのそれ以降のバージョンで利用できます。

当初のバージョン

v2.x

バージョン

変更

2.0.11

Greengrass nucleus バージョン 2.11.0 のリリース用にバージョンが更新されました。

2.0.10

Greengrass nucleus バージョン 2.7.0 のリリース用にバージョンが更新されました。

2.0.9

Greengrass nucleus バージョン 2.6.0 のリリース用にバージョンが更新されました。

2.0.8

Greengrass nucleus バージョン 2.5.0 のリリース用にバージョンが更新されました。

2.0.7

Greengrass nucleus バージョン 2.4.0 のリリース用にバージョンが更新されました。

2.0.6

Greengrass nucleus バージョン 2.3.0 のリリース用にバージョンが更新されました。

2.0.5

Greengrass nucleus バージョン 2.2.0 のリリース用にバージョンが更新されました。

2.0.4

Greengrass nucleus バージョン 2.1.0 のリリース用にバージョンが更新されました。

2.0.3

当初のバージョン